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 для получения информации о каждом элементе, включая ли это каталог или файл, когда он был последним изменен и т.д.