Как программно получить описание версии SVN и автора в С#?

Как программно получить описание ревизии и автора с сервера SVN в С#?

Ответ 1

Использование SharpSvn:

using(SvnClient client = new SvnClient())
{
    Collection<SvnLogEventArgs> list;

    // When not using cached credentials
    // c.Authentication.DefaultCredentials = new NetworkCredential("user", "pass")l

    SvnLogArgs la = new SvnLogArgs { Start = 128, End = 132 };
    client.GetLog(new Uri("http://my/repository"), la, out list);

    foreach(SvnLogEventArgs a in list)
    {
       Console.WriteLine("=== r{0} : {1} ====", a.Revision, a.Author);
       Console.WriteLine(a.LogMessage);
    }
}

Ответ 2

Вам нужно будет найти API С# SVN для использования. Быстрый поиск в Google SharpSVN.

Чтобы получить сообщение и автора для конкретной версии

SvnClient client = new SvnClient();
SvnUriTarget uri = new SvnUriTarget("url", REV_NUM);

string message, author;
client.GetRevisionProperty(uri, "svn:log", out message);
client.GetRevisionProperty(uri, "svn:author", out author);

Ответ 3

Я сделал что-то похожее на это некоторое время назад, нам нужно было сообщить о некоторых фиксациях репозитория.

В итоге я использовал SubversionNotify. Вы можете посмотреть код там и посмотреть, что вы можете использовать.

Я считаю, что SubversionNotify захватывает выходные данные из svnlook. Svnlook имеет довольно много аргументов, которые могут получить то, что вы ищете.

Если вы знаете номер версии и репозиторий:

svnlook info -r [rev#] /path/to/repo

Будет отображаться пользовательская, временная метка, длина сообщения журнала и само сообщение журнала:

bob
2009-03-25 11:10:49 -0600 (Wed, 25 Mar 2009)
19
Did stuff with things.