List commits que son alcanzables siguiendo los enlaces padre de la confirmación dada (como `git rev-list`)

¿Hay alguna manera de enumerar todas las confirmaciones que se pueden libgit2sharp desde HEAD utilizando la biblioteca libgit2sharp como git rev-list HEAD do?

Hay una function ReferenceCollectionException.ReachableFrom , pero devuelve la list de references apuntadas a una confirmación particular:

 let repo = new Repository("C:\path\to\repo") let c = repo.Lookup<Commit>("HEAD") let commits = repo.Refs.ReachableFrom([c]) 

Y commits contiene solo 4 elementos:

 [ refs/heads/vNext => "63f8d6d90f06f4578604b57502f2c6b8aabf4479" , refs/remotes/origin/HEAD => refs/remotes/origin/vNext => "63f8d6d90f06f4578604b57502f2c6b8aabf4479" , refs/remotes/origin/ntk/issue_953 => "d5ced8c64e5ea9f6ba2135a72d59da2208215c6c" , refs/remotes/origin/vNext => "63f8d6d90f06f4578604b57502f2c6b8aabf4479" ] 

Pero hay muchos más padres nesteds que se comprometen con HEAD :

 >> git rev-list HEAD | wc -l 1730 

El siguiente fragment de código debería ayudarte a lograr lo que buscas

 var filter = new CommitFilter { Since = repo.Head }; foreach (var commit in repo.Commits.QueryBy(filter)) { Console.WriteLine(commit.Sha); } 
    Intereting Posts