【问题标题】:Using SharpSvn to retrieve log entries within a date range使用 SharpSvn 检索日期范围内的日志条目
【发布时间】:2010-11-02 14:34:41
【问题描述】:

我正在使用SharpSvn 通过 C# 代码与我的 svn 存储库进行交互。我正在使用此代码来检索 svn 日志条目:

Collection<SvnLogEventArgs> logitems;
var uri = new Uri("http://myserver/svn/foo/bar.txt");
client.GetLog(uri, out logitems);
foreach (var logentry in logitems)
{
    string author = logentry.Author;
    string message = logentry.LogMessage;
    DateTime checkindate = logentry.Time;
}

这很好用,但现在我想按修订日期限制返回的日志条目。这可以通过 svn 命令行来完成,例如

svn log "http://myserver/svn/foo/bar.txt" --revision {2008-01-01}:{2008-12-31}

我似乎无法在 SharpSvn 中找到并行功能。有人能指出我正确的方向吗?

【问题讨论】:

    标签: svn sharpsvn


    【解决方案1】:

    认为您也许可以使用带有SharpSvn.SvnLogArgs 参数的GetLog 函数之一来做到这一点。

    public bool GetLog(System.Uri target, SharpSvn.SvnLogArgs args,
            out System.Collections.ObjectModel.Collection logItems)
    

    该类具有Start/End,它们是SharpSvn.SvnRevision 对象,看起来它们可以接受“时间”参数。

    我只做了一点点,但这就是你可以开始寻找的地方。

    【讨论】:

      【解决方案2】:

      你可以这样试试:

      DateTime startDateTime = // ...;
      DateTime endDateTime = // ...;
      SvnRevisionRange range = new SvnRevisionRange(new SvnRevision(startDateTime), new SvnRevision(endDateTime));
      client.GetLog(uri, new SvnLogArgs(range), out logitems);
      

      【讨论】:

      • 谢谢!我错过了 SvnRevision 可以在其构造函数中使用 DateTime 的事实。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-04
      • 2014-01-07
      • 1970-01-01
      • 1970-01-01
      • 2010-12-17
      • 1970-01-01
      相关资源
      最近更新 更多