Windows SVN:列出响应中所有项目的所有分支

Windows SVN:列出响应中所有项目的所有分支,windows,svn,branch,Windows,Svn,Branch,我有SVN存储库设置,它有大约15个不同的项目。每个项目都有类似的结构,即 ProjectOne/ tags/ branches/ trunk/ 现在,我想做的是以某种方式列出存储库中所有项目的所有分支。 有没有一个命令或什么我可以用来做这件事?还是以编程方式进行是这里唯一的选择 没有命令。因为您已经知道存储库和项目的URL,所以只需像下面的svn info那样运行它https://svn.example.com/MyProject1

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

ProjectOne/
          tags/
          branches/
          trunk/
现在,我想做的是以某种方式列出存储库中所有项目的所有分支。 有没有一个命令或什么我可以用来做这件事?还是以编程方式进行是这里唯一的选择

没有命令。因为您已经知道存储库和项目的URL,所以只需像下面的
svn info那样运行它https://svn.example.com/MyProject1/branches

您可以使用PowerShell将其自动化。这里有两个粗略的例子

  • 用于自动运行
    svn列表

    $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
    }
    
  • 使用并解析输出。您可以自定义命令以获取最新版本、作者以及日期和时间

    $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
要查找回购URL(如果您还不知道),可以使用:

svn info .
在“当前”SVN目录中

或者,更复杂的是,您也可以通过CLI将输出编程为regex URL,如另一篇文章中所建议的:

svn info | grep URL | sed  's/URL: //g'

有关更多信息,请参阅这些其他StackOverflow帖子。希望这有帮助