Использование SharpSvn для извлечения записей журнала в диапазоне дат

Я использую SharpSvn для взаимодействия с моим svn-репозиторием через код С#. Я использую этот код для извлечения записей журнала 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 я не могу найти параллельную возможность. Может ли кто-нибудь указать мне в правильном направлении?

Ответ 1

Вы можете попробовать это следующим образом:

DateTime startDateTime = // ...;
DateTime endDateTime = // ...;
SvnRevisionRange range = new SvnRevisionRange(new SvnRevision(startDateTime), new SvnRevision(endDateTime));
client.GetLog(uri, new SvnLogArgs(range), out logitems);

Ответ 2

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

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

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

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