Using SharpSvn to retrieve log entries within a date range

こ雲淡風輕ζ 提交于 2019-12-18 19:11:14

问题


I'm using SharpSvn to interact with my svn repository via C# code. I am using this code to retrieve svn log entries:

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;
}

This works well, but now I want to restrict the returned log entries by revision date. This is something that can be done via the svn command line with something like

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

I can't seem to figure out a parallel capability within SharpSvn. Can someone point me in the right direction?


回答1:


You can try it like this:

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



回答2:


I think you might be able to do it using one of the GetLog function that takes a SharpSvn.SvnLogArgs parameter.

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

That class has Start/End that are SharpSvn.SvnRevision objects which look like they can take a "time" parameter.

I've only done a little bit with it, but that would be where you could start looking.



来源:https://stackoverflow.com/questions/989034/using-sharpsvn-to-retrieve-log-entries-within-a-date-range

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!