Wie erhalte ich eine Liste der Revisionen von sharpsvn
Antworten
Zu viele Anzeigen?Wenn Sie sich die Metadaten für SvnLogEventArgs
(die als Sammlung zurückgegeben wird von GetLog
) leitet sie sich ab von SvnLoggingEventArgs
mit den Eigenschaften Autor, Revision, Zeit und LogMessage (neben anderen)
Jede SvnLogEventArgs
Element hat eine Sammlung von ChangedPaths
die Eigenschaften für SvnChangeAction und Path haben.
Mit dieser Methode können Sie eine Liste aller Protokollinformationen abrufen:
var client = new SvnClient();
System.Collections.ObjectModel.Collection<SvnLogEventArgs> logEventArgs;
client.GetLog("targetPath", out logEventArgs);
Wenn Sie alle logEventArgs durchgehen, erhalten Sie einige nützliche Informationen - LogMessage, Author, etc.
Ich weiß nicht, was Sie tun, aber ich prüfe die neueste Version der Arbeitskopie mit SvnWorkingCopyClient:
var workingCopyClient = new SvnWorkingCopyClient();
SvnWorkingCopyVersion version;
workingCopyClient.GetVersion(workingFolder, out version);
Die neueste Version des lokalen Arbeitsspeichers ist dann verfügbar über
long localRev = version.End;
Für ein entferntes Repository, verwenden Sie
var client = new SvnClient();
SvnInfoEventArgs info;
client.GetInfo(targetUri, out info);
long remoteRev = info.Revision;
stattdessen.
Dies ist vergleichbar mit der Verwendung der svnversion
von der Befehlszeile aus. Ich hoffe, das hilft.
Wenn ich raten soll, worum es bei Ihrer Frage wirklich geht, ist die Antwort wahrscheinlich SvnClient.Log(), um eine Liste der Änderungen eines Pfades zu erhalten.
Eine andere Antwort wäre:
for (int i = 1; i < 101; i++)
yield return i;
um Ihnen die ersten 100 Revisionen eines Repositorys zu beschaffen ;-)
Siehe Verwendung von SharpSvn zum Abrufen von Protokolleinträgen innerhalb eines Datumsbereichs für einige Beispiele für die Verwendung von SvnClient.Log()
Dies ist die Codeform, mit der Sie alle Revisionsnummern in der Liste Revisionsnummern erhalten können. UriSCpath wird uri für svn Pfad sein.
SvnTarget tr = SvnTarget.FromUri(UriSCPath);
Collection<SvnLogEventArgs> logEventArgs;
List<Int64> revisionNumbers = new List<Int64>();
SvnLogArgs logArgs = new SvnLogArgs();
DPISVN_Clnt.GetLog(UriSCPath, logArgs, out logEventArgs);
Int64 latestReision = logEventArgs[0].Revision;
foreach (var item in logEventArgs)
{
revisionNumbers.Add(item.Revision);
}