从c#确定SVN工作副本修订
本文关键字:副本 工作 SVN 确定 | 更新日期: 2023-09-27 18:08:34
我正在用c#编写一个小的控制台工具,它需要知道SVN工作副本目录的修订号,以便使用该编号处理其他数据。通过直接读取所有. SVN目录中的条目文件,我已经支持了SVN 1.4到1.6。但是SVN 1.7改变了这一点,使用一个带有SQLite数据库的。SVN目录。
确定工作目录的修订号的最佳方法是什么?
我刚刚尝试使用SharpSVN,但它基本上没有文档,我不知道如何使用它。它也非常大,有5mb,可能还有几个dll。
我找不到一个可以免费下载的简单的SVN命令行客户端。而且,上次我看到的时候,它非常大,包含了大量的文件,不适合移植。(如果我的工具只有一个。exe文件,那就太好了。)
另一个选择是使用SQLite库(作为一个单独的DLL提供)并自己挖掘数据库。我已经做了基本的研究,但我不知道如何检测未提交的修改。
TortoiseSVN,可能已经安装在将要使用我的工具的机器上,不能使用,因为它包含了一个GUI应用程序中的所有内容,没有我可以重用的dll。
如果你不希望SharpSVN和工作副本,那么在99%的主机可能有SVN的CLI-tools。
检查svnversion
的可调用性,称其为svnversion <PATH-TO-WC>
,截取输出
我使用turtle SVN的命令行工具SubWCRev来实现这个目的(http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-subwcrev.html)。它允许确定最新的修订,提交日期和更多…该解决方案的缺点是该工具使用文件,因此您需要定义模板文件并解析工具的输出文件。