如何在SharpSvn中检查文件是否受源代码控制?

Tom*_*ski 11 c# svn sharpsvn

嗨,我使用C#和SharpSvn库.我想在使用SvnClient.Add添加文件之前检查文件是否处于源代码管理之下.当我在已经在SVN下的文件上执行它而不是我得到错误:"已经在版本控制下".

San*_*ken 10

这很好地演示了如何使用状态来完成它

using(SvnClient client = new SvnClient())
{
    SvnStatusArgs sa = new SvnStatusArgs();
    sa.Depth = SvnDepth.Empty; // Adjust this to check direct files, or (recursive) directories etc

    Collection<SvnStatusEventArgs> statuses;
    client.GetStatus("c:\\somefile.txt", sa, out statuses); 

    Assert.That(statuses.Count, Is.EqualTo(1));
    Assert.That(SvnStatus.NotVersioned, Is.EqualTo(statuses[0].LocalContentStatus));
}
Run Code Online (Sandbox Code Playgroud)

  • 如果你只需要知道文件是否在源代码控制下而不是文件是否被修改,那么使用.GetInfo()检查会更便宜(io-wise). (4认同)

Ber*_*ben 6

如果您只想知道文件是否在源代码管理下,您可以使用.Info()/ .GetInfo().该方法通常更快,因为它不必检查文件自签出后是否已更改.