如何从sharpsvn
获取修订列表答案 0 :(得分:7)
如果查看SvnLogEventArgs
的元数据(作为GetLog
的集合返回),它派生自SvnLoggingEventArgs
,其属性为Author,Revision,Time和LogMessage(除其他外)
每个SvnLogEventArgs
项都有ChangedPaths
的集合,其中包含SvnChangeAction和Path的属性。
答案 1 :(得分:4)
您可以通过此方法获取所有日志信息的列表:
var client = new SvnClient();
System.Collections.ObjectModel.Collection<SvnLogEventArgs> logEventArgs;
client.GetLog("targetPath", out logEventArgs);
遍历所有logEventArgs将为您提供一些有用的信息 - LogMessage,Author等。
我不知道你在做什么,但我正在使用SvnWorkingCopyClient检查最新版本的工作副本:
var workingCopyClient = new SvnWorkingCopyClient();
SvnWorkingCopyVersion version;
workingCopyClient.GetVersion(workingFolder, out version);
然后可以通过
获得最新版本的本地工作存储库long localRev = version.End;
对于远程存储库,请使用
var client = new SvnClient();
SvnInfoEventArgs info;
client.GetInfo(targetUri, out info);
long remoteRev = info.Revision;
代替。
这类似于使用命令行中的svnversion
工具。希望这会有所帮助。
答案 2 :(得分:2)
猜测你的问题究竟是什么答案很可能是SvnClient.Log(),以获取路径变化列表。
另一个问题是:
for (int i = 1; i < 101; i++)
yield return i;
为您提供存储库的前100次修改; - )
有关如何使用SvnClient.Log()
的一些示例,请参阅Using SharpSvn to retrieve log entries within a date range答案 3 :(得分:0)
这是您可以在列表修订号中获得所有修订版的代码表单。 UriSCpath将是svn路径的uri。
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);
}