How to obtain number of commits behind/ahead with libgit2sharp?

986 Views Asked by At

It's possible to obtain the number of commits behind/ahead using git rev-list command. I am trying to achieve the same thing using libgit2sharp library but the library is not fully documented so I couldn't find how to.

I'm looking for an example for obtaining behind/ahead commit numbers with libgit2sharp.

2

There are 2 best solutions below

0
Abdelilah El Aissaoui On BEST ANSWER

Completing the answer given by Jason Haslam... This is an example of how to use HistoryDivergence to get the number of commits ahead and behind of each branch:

using (var repo = new Repository("/path/to/repo"))
{
     foreach (Branch b in repo.Branches)
     {
               // if branch does not have a remote b.TrackingDetails.AheadBy and b.TrackingDetails.BehindBy will be both null
               var commitsAhead = b.TrackingDetails.AheadBy;
               var commitsBehind = b.TrackingDetails.BehindBy;
               Console.WriteLine($"Branch {b.FriendlyName} is {commitsAhead} ahead and {commitsBehind} behind");
      }
}
2
Jason Haslam On

Look at the HistoryDivergence class. It adapts the git_graph_ahead_behind function from libgit2.