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 listSelect-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职位的详细信息。希望这可以帮助!

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