获取 SVN 代码库版本号

7
有没有一些svnsvnadmin命令可以显示本地库的版本?我想能够编写一个Windows批处理或PowerShell脚本,让我压缩库并以版本号命名以便发送电子邮件。
目前我只能找到[reporoot]\db\revs\0中最高的文件,但这似乎有些笨拙,而且我不知道它是否可靠。
6个回答

25

7
(编辑)svnversion 不太好用,因为它与工作副本相关,而不是与存储库相关。 svn info 也与工作副本相关。
所以应该使用 svnlook youngest REPOS_PATH。请参阅svn红皮书

2
svn info命令有一个TARGET参数。 TARGET可以是工作副本路径或仓库URL。 - Be.St.

4

您需要的命令是svnversion。运行svnversion --help以获取输出说明。


这个链接应该会有帮助:http://svnbook.red-bean.com/en/1.5/svn.ref.svnversion.re.html。 - hexium

4
你还可以使用svn info,它的优点是你不需要在工作副本内运行它(或提供工作副本的路径)-- 你可以传递一个仓库的URL给它,并且它会显示有关仓库的各种信息,包括最新的修订号。相比之下,svnversion会显示工作副本的最后一个修订号,但这不需要与仓库的修订号完全相同。
此外,svn info显示有关仓库的更多详细信息,这可能是优点也可能是缺点,具体取决于您的使用情况。

2

0
之前的回复可能不适用于所有版本的Subversion,不确定旧版本的Subversion是否支持XML解析输出。可以将“Revision”替换为其他信息属性。
#this do an info split by new line split by : then get the second parameter where first parameter is equal to Revision
$svnRevision = (svn info "somedirectoryorurl" ) | %{$_ -split '#'} | Where-Object {($_ -split ":")[0] -eq "Revision"} | %{($_ -split ":")[1].Trim()}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接