我正在尝试使用SharpSvn获取存储库的所有分支,但我找不到任何方法都可以做到。
是否可以使用SharpSvn获取所有分支?
答案 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对象获取有关每个项目的信息,包括它是目录还是文件,上次修改时间等等。