Использование SharpSvn для получения записей журнала в диапазоне дат - PullRequest
12 голосов
/ 13 июня 2009

Я использую SharpSvn для взаимодействия с моим svn-репозиторием через код C #. Я использую этот код для получения записей журнала SVN:

Collection<SvnLogEventArgs> logitems;
var uri = new Uri("http://myserver/svn/foo/bar.txt");
client.GetLog(uri, out logitems);
foreach (var logentry in logitems)
{
    string author = logentry.Author;
    string message = logentry.LogMessage;
    DateTime checkindate = logentry.Time;
}

Это работает хорошо, но теперь я хочу ограничить возвращаемые записи журнала датой ревизии. Это то, что можно сделать через командную строку svn, например,

svn log "http://myserver/svn/foo/bar.txt" --revision {2008-01-01}:{2008-12-31}

Кажется, я не могу понять параллельные возможности в SharpSvn. Может ли кто-нибудь указать мне правильное направление?

Ответы [ 2 ]

25 голосов
/ 13 июня 2009

Вы можете попробовать это так:

DateTime startDateTime = // ...;
DateTime endDateTime = // ...;
SvnRevisionRange range = new SvnRevisionRange(new SvnRevision(startDateTime), new SvnRevision(endDateTime));
client.GetLog(uri, new SvnLogArgs(range), out logitems);
4 голосов
/ 13 июня 2009

I думаю вы можете сделать это, используя одну из функций GetLog, которая принимает параметр SharpSvn.SvnLogArgs.

public bool GetLog(System.Uri target, <b>SharpSvn.SvnLogArgs args,</b>
        out System.Collections.ObjectModel.Collection logItems)

Этот класс имеет Start / End, которые являются SharpSvn.SvnRevision объектами, которые выглядят так, как будто они могут принимать параметр "времени".

Я только немного покончил с этим, но это было бы то место, где вы могли бы начать искать.

...