我有SVN存储库设置,它有大约15个不同的项目。每个项目都有类似的结构,即
ProjectOne/
tags/
branches/
trunk/
现在,我想要做的是以某种方式列出存储库中所有项目的所有分支。 是否有命令或我可以用来做这件事的东西?或以编程方式进行是唯一的选择吗?
答案 0 :(得分:0)
有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(即最新版本)修订版中存在的分支。
答案 1 :(得分:0)
我相信这是您正在寻找的答案:
svn ls URL-OF-REPO
并找到REPO网址(如果您还不知道),可以使用:
svn info .
在"当前" SVN目录。
或者,更复杂的是,您也可以将输出CLI编程为regex URL,如另一个帖子所示:
svn info | grep URL | sed 's/URL: //g'
有关详细信息,请参阅其他StackOverflow帖子。希望这有帮助!