SVN:列出存储库中所有项目的所有分支
问题描述:
我有SVN存储库设置,它有大约15个不同的项目。每个项目都具有类似的结构,即SVN:列出存储库中所有项目的所有分支
ProjectOne/
tags/
branches/
trunk/
现在,我想要做的就是以某种方式列出所有的分支在库中的所有项目。 有没有一个命令或我可以用来做到这一点?或以编程方式是唯一的选择吗?
答
有svn list
命令。既然您已经知道您的存储库和项目的URL,只需像这样运行它svn info https://svn.example.com/MyProject1/branches
。
您可以使用PowerShell将其自动化。这里有两个粗略的例子。
-
使用
foreach
loop自动运行svn list
:$repos = "MyProject1", "MyProject2", "MyProject3", "MyProject4", "MyProject5" $rootURL = "https://svn.example.com/" foreach ($repo in $repos) { Write-Host -ForegroundColor Cyan "Repository: $rootURL/$repo `nBranches:" svn list $rootURL/$repo/branches }
-
使用xml'ed output of
svn list
与Select-XML
解析输出。您可以自定义命令获取最新版本,作者和日期&时间。$repos = "MyProject1", "MyProject2", "MyProject3", "MyProject4", "MyProject5" $rootURL = "https://svn.example.com/" foreach ($repo in $repos) { Write-Host -ForegroundColor Cyan "Repository: $rootURL/$repo `nBranches:" ([xml](svn list $rootURL/$repo/branches --xml)).SelectNodes("//lists/list/entry").Name }
注意,这两个脚本样本将只显示存在于HEAD(即最新的)版本的分支。
答
我相信这是你要找的答案:
svn ls URL-OF-REPO
,并找到REPO URL(如果你不知道它的话),你可以使用:
svn info .
“当前”SVN目录中的
。
或者,更复杂,你可以CLI-程序的输出,以正则表达式的URL也一样,在另一个帖子提示:
svn info | grep URL | sed 's/URL: //g'
看到这些其他的StackOverflow职位的详细信息。希望这可以帮助!