是否可以使用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 );
}
答案 0 :(得分:6)
以下代码应符合您的期望。
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);
}
}