C# SvnClient.GetStatus(路径、参数、状态)是否为版本化文件返回0?

C# SvnClient.GetStatus(路径、参数、状态)是否为版本化文件返回0?,c#,.net,svn,sharpsvn,C#,.net,Svn,Sharpsvn,我已经编写了一个简单的C#应用程序,使用SharpSVN在尝试添加之前查询文件的状态。我在不同地方看到的用于此目的的示例包括调用SvnClient的GetStatus方法,将完整路径和out参数传递给SvnStatusEventArgs集合 我的理解是,对于一个文件,GetStatus应该返回一个SvnStatusEventArgs集合,该集合的计数正好为1,状态为NotVersioned、Missing、Normal等等 在我的应用程序中,我对源代码管理下的文件的GetStatus调用返回的集

我已经编写了一个简单的C#应用程序,使用SharpSVN在尝试添加之前查询文件的状态。我在不同地方看到的用于此目的的示例包括调用SvnClient的GetStatus方法,将完整路径和out参数传递给SvnStatusEventArgs集合

我的理解是,对于一个文件,GetStatus应该返回一个SvnStatusEventArgs集合,该集合的计数正好为1,状态为NotVersioned、Missing、Normal等等

在我的应用程序中,我对源代码管理下的文件的GetStatus调用返回的集合计数为零

SvnClient foo=new SvnClient();
采集状态;
GetStatus(“C:\\Temp\\svnu\\Program.cs”,新的SvnStatusArgs{Depth=SvnDepth.Empty},输出状态);
statuses.Count的值为零,而我期望状态为[0]的值为1。LocalContentStatus的值为Normal。这个期望是错误的吗?对于引用不在源代码管理中的文件的路径调用,该调用的状态为[0]。LocalContentStatus值为NotVersioned

该路径已验证为工作副本,并且文件Program.cs实际上已登记在Subversion中。我正在运行SharpSVN版本1.7005.2163.13448和VS2010

首先非常感谢您消除了我明显的困惑


编辑更多信息:修改但未提交Program.cs后,此代码段现在返回一个状态值,LocalContentStatus为“Modified”。提交文件后,返回原始行为(无返回的状态值)

根据伯特·休伊本的反馈,对延迟发布答案表示歉意。我把答案贴在这里,仅供大家参考

修改原始GetStatus调用以设置SvnStatusArgs对象的
RetrieveAllEntries
属性实际上解决了此问题,并导致文件的本地(但无趣:)副本的返回状态计数为1,.LocalContentStatus按需为“Normal”

foo.GetStatus("C:\\Temp\\svnu\\Program.cs", new SvnStatusArgs {Depth = SvnDepth.Empty,
                                                               RetrieveAllEntries = true}, out statuses);

非常感谢。

.Status()和.GetStatus()只返回“感兴趣的”状态节点。您可以通过设置args对象上的.RetrieveAllEntries使其返回所有节点。这是一个很好的信息,Bert。我会尝试一下,并在下一次机会提供建议。你是说
检索Allentries
foo.GetStatus("C:\\Temp\\svnu\\Program.cs", new SvnStatusArgs {Depth = SvnDepth.Empty,
                                                               RetrieveAllEntries = true}, out statuses);