如何使用sharpsvn获取修订列表

时间:2010-05-24 11:02:05

标签: c# sharpsvn

如何从sharpsvn

获取修订列表

4 个答案:

答案 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);

                }