gitlibgit2libgit2sharpgit-rev-list

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


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.


Solution

  • 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");
          }
    }