Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在SharpSvn中检查文件是否受源代码管理?_C#_Svn_Sharpsvn - Fatal编程技术网

C# 如何在SharpSvn中检查文件是否受源代码管理?

C# 如何在SharpSvn中检查文件是否受源代码管理?,c#,svn,sharpsvn,C#,Svn,Sharpsvn,嗨,我使用C#和SharpSvn库。在使用SvnClient.Add添加文件之前,我想检查文件是否受源代码管理。当我对已经在SVN下的文件执行此操作时,我会得到一个错误:“已经在版本控制下”。这很好地演示了如何使用status执行此操作 using(SvnClient client = new SvnClient()) { SvnStatusArgs sa = new SvnStatusArgs(); sa.Depth = SvnDepth.Empty; // Adjust th

嗨,我使用C#和SharpSvn库。在使用SvnClient.Add添加文件之前,我想检查文件是否受源代码管理。当我对已经在SVN下的文件执行此操作时,我会得到一个错误:“已经在版本控制下”。

这很好地演示了如何使用status执行此操作

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));
}
使用(SvnClient client=new SvnClient())
{
SvnStatusArgs sa=新的SvnStatusArgs();
sa.Depth=SvnDepth.Empty;//调整此选项以检查直接文件或(递归)目录等
采集状态;
client.GetStatus(“c:\\somefile.txt”,sa,out status);
Assert.That(statuses.Count,Is.EqualTo(1));
Assert.That(SvnStatus.NotVersioned,Is.EqualTo(status[0].LocalContentStatus));
}

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

如果只需要知道文件是否受源代码管理,而不需要知道文件是否已修改,则使用.GetInfo()检查会稍微便宜一些(io方面)。
.Status()
将在文件可能已修改时进行文件比较,所以,最坏的情况是,如果只修改了2GB文件的最后一个字节,它可能会几乎读取2*2GB来确定这一点。使用
.Info()
可以确保这种情况永远不会发生。
.Status()
将在文件可能已被修改的情况下进行文件比较,因此在最坏的情况下,如果仅修改了2 GByte文件的最后一个字节,它可能会几乎读取2*2 GByte来确定这一点。使用
.Info()
您可以确保这种情况永远不会发生。