【问题标题】:SharpSvn get changes between revisions by date, with start -1/ Svn diff --summarize /SharpSvn 按日期获取修订之间的更改,开始 -1/ Svn diff --summarize /
【发布时间】:2016-03-02 13:24:08
【问题描述】:

我正在尝试通过日期在锐利的 svn 中进行 diff --summarize。 但是开始修订不应该是开始日期之后的第一个修订(至少那是我对带有日期作为标志的 diff 命令的理解) 但在开始日期之前的第一次修订。

getdiffsummary 的语法(sharpsvn 等价于 diff --summarize) qoutesource

using (var client = new SvnClient())
{
   var location = new Uri("http://my.example/repos/trunk");
   client.DiffSummary(new SvnUriTarget(location, 12), new SvnUriTarget(location, SvnRevision.Head),
                      delegate(object sender, SvnDiffSummaryEventArgs e)
                      {
                        // TODO: Handle result
                      });
}

问题是,我不知道如何在给定日期之前获得修订。

Objectbrowser 给了我:

SharpSvn.SvnUriTarget.SvnUriTarget(System.Uri, System.DateTime)

问题是,与修订对象不同,我可以只执行“修订 b - 1” 日期会改变。

有什么想法吗?

【问题讨论】:

  • 哦,对不起,我想明白了。您希望您正在查看的当前版本回到该点的前一个版本,而不是从头后退 1 版本。我不知道,特别是因为使用 SvnRevision.Previous 似乎对 DiffSummary 根本不起作用。
  • 我目前正在通过责备对其进行测试,-> 在日期之后获得修订,返回 1 个修订并使用该修订。

标签: c# date svn diff sharpsvn


【解决方案1】:

到目前为止,这是我的解决方案。忘记发了=)

        private static SharpSvn.SvnRevision TimeToPreRevision(DateTime date, Uri link, SharpSvn.SvnClient client)
    {
        SvnRevision retr = new SvnRevision();
        DateTime retr_date = new DateTime();
        SvnLogArgs args = new SvnLogArgs { Start = date};
        client.Log(link, args, delegate (object sender3, SvnLogEventArgs e)
         {
             if (e.Time.Date < date.Date)
             {
                 if(retr.Time < e.Time)
                 {
                     retr = e.Revision;
                     retr_date = e.Time;
                 }
             }
         });
        return retr;
    }

【讨论】:

    猜你喜欢
    • 2012-04-02
    • 2016-12-24
    • 2023-03-13
    • 1970-01-01
    • 2010-10-12
    • 1970-01-01
    • 2016-07-08
    • 2019-05-30
    • 1970-01-01
    相关资源
    最近更新 更多