Как получить все ветки репозитория с SharpSvn? - PullRequest
3 голосов
/ 21 апреля 2010

Я пытаюсь получить все ветви репозитория с помощью SharpSvn, но я не могу найти какой-либо способ сделать это.

Можно ли получить все ветви с помощью SharpSvn?

Ответы [ 3 ]

2 голосов
/ 23 декабря 2015

Я думаю, что Matt Z был на правильном пути, но этот код не компилируется. Вот скорректированная версия, которая должна работать с последней версией SharpSVN (по состоянию на декабрь 2015 года).

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;
}
0 голосов
/ 15 апреля 2011

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

0 голосов
/ 21 апреля 2010

Я ничего не знаю о SharpSVN, но ветви в Subversion - это просто деревья каталогов - в них нет ничего особенного.

Если ваш репозиторий имеет типичную компоновку с тремя каталогами верхнего уровня (trunk / branch / tags /), вы можете просто проверить каталог / branch, чтобы получить все ветки рядом.

...