SVN:列出存储库中所有项目的所有分支

时间:2016-11-07 09:05:49

标签: windows svn branch

我有SVN存储库设置,它有大约15个不同的项目。每个项目都有类似的结构,即

ProjectOne/
          tags/
          branches/
          trunk/

现在,我想要做的是以某种方式列出存储库中所有项目的所有分支。 是否有命令或我可以用来做这件事的东西?或以编程方式进行是唯一的选择吗?

2 个答案:

答案 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帖子。希望这有帮助!

  1. How to list all files in a remote SVN repository?
  2. How to get svn remote repository URL?