【问题标题】:How to get a list of revision using sharpsvn如何使用sharpsvn获取修订列表
【发布时间】:2013-12-26 17:48:04
【问题描述】:

如何从 sharpsvn 获取修订列表

【问题讨论】:

    标签: c# sharpsvn


    【解决方案1】:

    如果您查看 SvnLogEventArgs 的元数据(作为 GetLog 的集合返回),它派生自 SvnLoggingEventArgs,它具有 Author、Revision、Time 和 LogMessage(以及其他)属性

    每个SvnLogEventArgs 项目都有一个ChangedPaths 的集合,这些集合具有SvnChangeAction 和Path 的属性。

    【讨论】:

      【解决方案2】:

      您可以通过此方法获取所有日志信息的列表:

      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 工具。希望这会有所帮助。

      【讨论】:

      • 谢谢!它帮助了我很多,并准确地回答了我想要的。
      【解决方案3】:

      猜测你的问题到底是什么,最有可能是 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

      【讨论】:

      • 大声笑,很公平。我猜我想要的是修订的元数据、提交评论、更改了哪些文件等
      【解决方案4】:

      这是您可以在列表修订号中获取所有修订号的代码形式。 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);
      
                      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-22
        相关资源
        最近更新 更多