LibGit2Sharp 获取自 {Hash} 以来的所有提交



是否可以使用 LibGit2Sharp 获取自指定提交以来的所有提交?

我已经尝试了以下方法..但没有用:

using ( var repo = new Repository( repositoryDirectory ) )
{
    //Create commit filter.
    var filter = new CommitFilter
    {
        SortBy = CommitSortStrategies.Topological | CommitSortStrategies.Reverse,
        Since = repo.Refs
    };
    /*Not Working
    if (shaHashOfCommit.IsNotEmpty())
        filter.Since = shaHashOfCommit;
    */
    var commits = repo.Commits.QueryBy( filter );
}

下面的代码应该符合您的期望。

using (var repo = new Repository(repositoryDirectory))
{
    var c = repo.Lookup<Commit>(shaHashOfCommit);
    // Let's only consider the refs that lead to this commit...
    var refs = repo.Refs.ReachableFrom(new []{c});
   //...and create a filter that will retrieve all the commits...
    var cf = new CommitFilter
    {
        Since = refs,       // ...reachable from all those refs...
        Until = c           // ...until this commit is met
    };
    var cs = repo.Commits.QueryBy(cf);
    foreach (var co in cs)
    {
        Console.WriteLine("{0}: {1}", co.Id.ToString(7), co.MessageShort);
    }       
}

最新更新