如何从 sharpsvn 获取修订列表
问问题
8783 次
4 回答
7
如果您查看元数据SvnLogEventArgs
(作为集合返回GetLog
),它派生自SvnLoggingEventArgs
,它具有 Author、Revision、Time 和 LogMessage(以及其他)的属性
每个SvnLogEventArgs
项目都有一个集合ChangedPaths
,它具有 SvnChangeAction 和 Path 的属性。
于 2010-05-29T11:43:28.910 回答
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
从命令行使用该工具。希望这可以帮助。
于 2010-08-31T12:42:37.133 回答
2
猜测您的问题到底是什么,很可能是 SvnClient.Log(),以获取路径更改的列表。
另一个答案是:
for (int i = 1; i < 101; i++)
yield return i;
为您提供存储库的前 100 次修订;-)
有关如何使用 SvnClient.Log() 的一些示例,请参阅使用 SharpSvn 检索日期范围内的日志条目
于 2010-05-25T13:40:26.267 回答
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);
}
于 2013-12-26T09:48:04.067 回答