You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SharpSVN中获取指定起始修订号至最新版本的日志?

解决SharpSVN获取指定起始到最新版本日志的问题

你现在的代码只设置了Start=128,但SharpSVN默认会从这个版本开始往更早的版本回溯,所以会返回整个仓库的所有历史日志。要实现从指定起始版本到最新版本的日志获取,只需要明确指定日志的范围即可,下面是具体的修改方案:

直接指定范围到最新版本(推荐)

利用SvnRevision.Head直接代表仓库的最新修订号,通过SvnRevisionRange来限定日志的起止范围,同时可以控制日志的输出顺序:

using(SvnClient client = new SvnClient())
{
    Collection<SvnLogEventArgs> list;
    // 你的起始修订号
    long targetStartRev = 128;
    
    // 创建日志参数,指定从targetStartRev到最新版本(HEAD)的范围
    SvnLogArgs logArgs = new SvnLogArgs(new SvnRevisionRange(targetStartRev, SvnRevision.Head))
    {
        // 设置为true,日志会按「旧版本到新版本」的顺序输出;默认是从新到旧
        Forward = true
    };
    
    // 调用GetLog获取指定范围的日志
    client.GetLog(new Uri("http://my/repository"), logArgs, out list);
    
    // 遍历输出日志详情
    foreach(SvnLogEventArgs logItem in list)
    {
        Console.WriteLine("=== r{0} : {1} ===", logItem.Revision, logItem.Author);
        Console.WriteLine(logItem.LogMessage);
        Console.WriteLine("------------------------");
    }
}

另一种方式:先获取最新修订号再设置范围

如果你需要先拿到最新修订号做其他处理,可以先调用GetInfo获取仓库信息,再指定范围:

using(SvnClient client = new SvnClient())
{
    Collection<SvnLogEventArgs> list;
    long targetStartRev = 128;
    
    // 获取仓库最新修订号
    SvnInfoEventArgs repoInfo;
    client.GetInfo(new Uri("http://my/repository"), out repoInfo);
    long latestRev = repoInfo.Revision;
    
    // 设置日志参数的起止版本
    SvnLogArgs logArgs = new SvnLogArgs
    {
        Start = targetStartRev,
        End = latestRev,
        Forward = true // 按旧到新顺序输出
    };
    
    client.GetLog(new Uri("http://my/repository"), logArgs, out list);
    
    // 输出日志
    foreach(SvnLogEventArgs logItem in list)
    {
        Console.WriteLine("=== r{0} : {1} ===", logItem.Revision, logItem.Author);
        Console.WriteLine(logItem.LogMessage);
        Console.WriteLine("------------------------");
    }
}

关键说明

  • SvnRevision.Head是SharpSVN提供的常量,直接指向仓库当前的最新修订号,无需手动获取,使用起来更简洁。
  • Forward属性控制日志的输出顺序:设为true时从起始版本到最新版本顺序输出,默认false是从最新到起始版本逆序输出,你可以根据需求调整。

内容的提问来源于stack exchange,提问作者sambhav jain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 08:27:47