Dav*_*d W 5 .net c# svn sharpsvn
我编写了一个简单的C#应用程序,使用SharpSVN在尝试添加之前查询文件的状态.我在各个地方为此目的看到的示例涉及调用SvnClient的GetStatus方法,将完整路径和out参数传递给SvnStatusEventArgs的集合.
我的理解是,对于一个文件,GetStatus应该返回一个SvnStatusEventArgs集合,其集合只有一个,其状态包括NotVersioned,Missing,Normal等.
在我的应用程序中,我将GetStatus调用到源代码管理下的文件时返回Collection计数为零.
SvnClient foo = new SvnClient();
Collection<SvnStatusEventArgs> statuses;
foo.GetStatus("C:\\Temp\\svnu\\Program.cs", new SvnStatusArgs {Depth = SvnDepth.Empty}, out statuses);
Run Code Online (Sandbox Code Playgroud)
statuses.Count的值为零,当我期望1具有状态[0] .LocalContentStatus值为Normal时.这种期望是不正确的?对于引用不在源代码管理中的文件的路径的调用,该调用使用状态[0] .LocalContentStatus值NotVersioned.
该路径被验证为工作副本,事实上,Program.cs文件已在Subversion中登记.我正在运行SharpSVN版本1.7005.2163.13448和VS2010.
非常感谢您清除我明显的困惑.
编辑更多信息:修改但不提交Program.cs后,这个相同的代码片段现在返回一个LocalContentStatus为"Modified"的状态值.提交文件后,返回原始行为(无返回状态值).
根据Bert Huijben的反馈意见,延迟获得答案.我在这里发布答案只是为了每个人的利益.
RetrieveAllEntries
实际上,修改原始GetStatus调用以设置SvnStatusArgs对象的属性确实解决了这个问题,并导致文件的本地(但无趣:))副本的返回状态计数为1,其中.LocalContentStatus为"正常" ," 如预期的.
foo.GetStatus("C:\\Temp\\svnu\\Program.cs", new SvnStatusArgs {Depth = SvnDepth.Empty,
RetrieveAllEntries = true}, out statuses);
Run Code Online (Sandbox Code Playgroud)
非常感谢.
归档时间: |
|
查看次数: |
2504 次 |
最近记录: |