【发布时间】:2011-02-22 09:58:27
【问题描述】:
我正在尝试将一个简单的存储库浏览器构建到一个 Web 应用程序中,并且一直在研究使用 SharpSvn 来提供帮助。
我可以找到所有常见的物理命令,例如更新、提交,它们实际上会对存储库或工作副本进行更改,但我正在努力寻找一种方法来查询存储库结构或内容。
有什么方法可以读取存储库的结构,以便在网页中显示一个简单的资源管理器之类的界面(即目录树视图和文件列表)?
【问题讨论】:
我正在尝试将一个简单的存储库浏览器构建到一个 Web 应用程序中,并且一直在研究使用 SharpSvn 来提供帮助。
我可以找到所有常见的物理命令,例如更新、提交,它们实际上会对存储库或工作副本进行更改,但我正在努力寻找一种方法来查询存储库结构或内容。
有什么方法可以读取存储库的结构,以便在网页中显示一个简单的资源管理器之类的界面(即目录树视图和文件列表)?
【问题讨论】:
SharpSvn.SvnClient 类有一个运行良好的GetList() 函数:
using (SvnClient svnClient = new SvnClient())
{
Collection<SvnListEventArgs> contents;
List<string> files = new List<string>();
if (svnClient.GetList(new Uri(svnUrl), out contents))
{
foreach(SvnListEventArgs item in contents)
{
files.Add(item.Path);
}
}
}
一旦你有了集合,你就可以得到每个项目在该位置的路径。您还可以使用 Entry 对象来获取有关每个项目的信息,包括它是目录还是文件、上次修改时间等。
【讨论】: