2

如何从 sharpsvn 获取修订列表

4

4 回答 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 回答