从C#确定SVN工作副本修订

时间:2013-04-11 13:43:38

标签: c# svn

我正在C#中编写一个小型控制台工具,需要知道SVN工作副本目录的修订号,以处理具有此编号的其他数据。通过直接读取所有.svn目录中的条目文件,我已经支持SVN 1.4到1.6。但 SVN 1.7 已将其更改为使用单个.svn目录及其中的SQLite数据库。

确定工作目录的修订号的最佳方法是什么?

我刚刚尝试使用SharpSVN,但它基本上没有记录,我无法弄清楚如何使用它。它也非常庞大,有5 MB,可能还有几个DLL。

我找不到一个可以免费下载的简单SVN命令行客户端。另外,上次我看过一个,它很庞大,由许多不完全便携的文件组成。 (如果我的工具只能作为单个.exe文件出现,那就太棒了。)

另一种选择是使用SQLite库(作为单独的DLL提供)并自己深入数据库。我已经对此进行了基础研究,但我不确定如何检测未提交的修改。

TortoiseSVN可能已经安装在将使用我的工具的机器上,因为它包含单个GUI应用程序中的所有内容,没有我可以重复使用的DLL。

2 个答案:

答案 0 :(得分:1)

如果您不想使用SharpSVN并使用工作副本,则99%的主机可能拥有SVN CLI工具。

检查svnversion的可训练性并将其称为svnversion <PATH-TO-WC>,拦截输出

答案 1 :(得分:1)

我使用Tortoise SVN的命令行工具&#39; SubWCRev&#39;为此目的(http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-subwcrev.html)。它允许确定最新版本,提交日期等...此解决方案的缺点是此工具使用文件,因此您需要定义模板文件并解析工具的输出文件。这对我有用。