是否有一些svn
或svnadmin
命令会显示本地仓库的修订版?我希望能够拥有一个Windows批处理或PowerShell脚本,它可以让我压缩回购并使用rev to email命名它。
我能想到的最好的方法就是找到[reporoot]\db\revs\0
中的最高档,但它看起来很笨重,我不知道它是否可靠。
答案 0 :(得分:20)
function Get-SvnRevision($dir)
{
([xml](svn info $dir --xml)).info.entry.revision
}
答案 1 :(得分:7)
(编辑)svnversion
不太好,因为它与工作副本有关,而与存储库无关。
svn info
也与工作副本有关。
=> svnlook youngest REPOS_PATH
应该这样做。另请参阅svn redbook.
答案 2 :(得分:4)
您还可以使用svn info
,其优势在于您无需在工作副本中的某个位置运行它(或提供工作副本的路径) - 您可以将URL传递给repo并显示有关存储库的各种信息,包括最新版本号。相反,svnversion
将显示工作副本的最后修订号,但这不需要与存储库的修订版相同。
此外,svn info
显示有关存储库的更多详细信息,而不是svnversion
。根据您的使用情况,这可能是专业人士或骗子。
答案 3 :(得分:3)
svnversion是你想要的命令。运行svnversion --help
以获取输出的说明。
答案 4 :(得分:2)
尝试使用VisualSVN Powershell命令:
Get-Command -Module VisualSVN
Get-SvnRepository将为您提供存储库列表和修订版号。引用位于https://www.visualsvn.com/support/topic/00088/
答案 5 :(得分: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()}