SharpSvn: получение структуры репозитория и отдельных файлов
Я пытаюсь встроить простой браузер хранилища в веб-приложение и пытаюсь использовать SharpSvn, чтобы помочь.
Я могу найти все обычные физические команды, такие как update, commit, которые на самом деле вносят изменения в хранилище или рабочую копию, но я пытаюсь найти способ запросить структуру или содержимое хранилища.
Можно ли как-то прочитать структуру хранилища, чтобы на веб-странице можно было отображать простой интерфейс, подобный интерфейсу проводника (т.е. древовидное представление каталогов и список файлов)?
1 ответ
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 для получения информации о каждом элементе, в том числе о том, является ли он каталогом или файлом, когда он был последний раз изменен и т. Д.