Mit SharpSvn Protokolleinträge in einem bestimmten Zeitraum abrufen
Frage
Ich bin mit SharpSvn zur Interaktion mit meine sVN-Repository über C # -Code. Ich verwende diesen Code zu svn Protokolleinträge abrufen:
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;
}
Das funktioniert gut, aber jetzt möchte ich die zurückgegebenen Protokolleinträge nach Änderungsdatum beschränken. Dies ist etwas, das über das SVN Kommandozeile mit so etwas wie
getan werden kann,svn log "http://myserver/svn/foo/bar.txt" --revision {2008-01-01}:{2008-12-31}
Ich kann nicht eine parallele Fähigkeit innerhalb SharpSvn scheinen, um herauszufinden. Kann jemand mich in die richtige Richtung?
Lösung
Sie können es so versuchen:
DateTime startDateTime = // ...;
DateTime endDateTime = // ...;
SvnRevisionRange range = new SvnRevisionRange(new SvnRevision(startDateTime), new SvnRevision(endDateTime));
client.GetLog(uri, new SvnLogArgs(range), out logitems);
Andere Tipps
I denkt Sie könnten in der Lage sein, es zu tun, eine der GetLog
-Funktion, die einen SharpSvn.SvnLogArgs
Parameter annimmt.
public bool GetLog(System.Uri target, SharpSvn.SvnLogArgs args,
out System.Collections.ObjectModel.Collection logItems)
Diese Klasse Start
/ End
hat die SharpSvn.SvnRevision
Objekte sind, die aussehen , wie sie einen Parameter "Zeit" erfolgen kann.
Ich habe nur ein wenig mit ihm getan, aber das wäre, wenn Sie auf der Suche beginnen können.