5

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

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

4

3 回答 3

3

我认为 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;
}
于 2015-12-23T20:07:45.223 回答
0

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 对象来获取有关每个项目的信息,包括它是目录还是文件,上次修改时间等。

于 2011-04-15T16:31:59.183 回答
0

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

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

于 2010-04-21T18:03:06.187 回答