如何使用SharpSvn获取存储库的所有分支?

时间:2010-04-21 17:55:38

标签: c# svn sharpsvn

我正在尝试使用SharpSvn获取存储库的所有分支,但我找不到任何方法都可以做到。

是否可以使用SharpSvn获取所有分支?

3 个答案:

答案 0 :(得分:2)

我认为Matt Z走在正确的轨道上,但那段代码并没有编译。这是一个调整后的版本,应该与最新版本的SharpSVN一起使用(截至2015年12月)。

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using SharpSvn;
....

private List<string> GetSVNPaths()
{
  List<string> files = new List<string>();
  using (SvnClient svnClient = new SvnClient())
  {
    Collection<SvnListEventArgs> contents;
    //you can get the url from the TortoiseSVN repo-browser if you aren't sure
    if (svnClient.GetList(new Uri(@"https://your-repository-url/"), out contents))
    {
      files.AddRange(contents.Select(item => item.Path));
    }
  }
  return files;
}

答案 1 :(得分:0)

我对SharpSVN一无所知,但Subversion中的分支只是目录树 - 没有什么特别之处。

如果您的存储库遵循它们具有三个顶级目录(trunk / branches / tags /)的典型布局,您可以查看/ branches目录以并排获取所有分支。

答案 2 :(得分:-1)

SharpSvn.SvnClient类有一个GetList()函数,效果非常好:

using (SvnClient svnClient = new SvnClient())
{
    Collection contents;
    List files = new List();
    if (svnClient.GetList(new Uri(svnUrl), out contents))
    {
        foreach(SvnListEventArgs item in contents) 
        {
            files.Add(item.Path);
        }
    }
}

收藏后,您可以获取该位置的每个项目的路径。您还可以使用Entry对象获取有关每个项目的信息,包括它是目录还是文件,上次修改时间等等。