C# LibGit2Sharp获取自{Hash}以来的所有提交
是否可以使用LibGit2Sharp获取指定提交之后的所有提交 我试过下列方法。。但它不起作用:C# LibGit2Sharp获取自{Hash}以来的所有提交,c#,git,logging,commit,libgit2sharp,C#,Git,Logging,Commit,Libgit2sharp,是否可以使用LibGit2Sharp获取指定提交之后的所有提交 我试过下列方法。。但它不起作用: using ( var repo = new Repository( repositoryDirectory ) ) { //Create commit filter. var filter = new CommitFilter { SortBy = CommitSortStrategies.Topological | CommitSortStrategies
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);
}
}
使用(var repo=new Repository(repositoryDirectory))
{
var c=回购查寻(shaHashOfCommit);
我们只考虑导致这一承诺的参考文献。
var refs=repo.refs.reachable from(new[]{c});
//…并创建一个将检索所有提交的筛选器。。。
var cf=新提交过滤器
{
因为=引用,//…可以从所有这些引用中访问。。。
直到=c/…直到满足此提交
};
var cs=repo.Commits.QueryBy(cf);
foreach(cs中的var co)
{
WriteLine(“{0}:{1}”,co.Id.ToString(7),co.MessageShort);
}
}