Search code examples
libgit2sharp

How to calculate ahead or behind branchs


Use libgit2sharp, how to calculate ahead or behind metrics. like this page https://github.com/libgit2/libgit2sharp/branches


Solution

  • How to calculate ahead or behind metrics

    Each Branch bears a TrackingDetails property. This property exposes AheadBy and BehindBy nullable values (null will be returned when the branch has no upstream configuration or if the upstream branch does not exist).

    Those values will represent the number of commits the local branch is ahead/behind compared to the upstream branch (ie. the remote branch being tracked).

    This outputs similar results than git status -sb

    like this page https://github.com/libgit2/libgit2sharp/branches

    This page actually compares each branch of the upstream (ie. the one hosted on GitHub) repository against the current tip of the remote HEAD. This feature (comparing two local branches) is not available in LibGit2Sharp.

    Provided you're interested with it, please feel free to open a feature request.

    Update

    A pull request (see #564) introducing a new method repo.ObjectDatabase.CalculateHistoryDivergence(Commit, Commit) is cooking up.

    This will allow the user to determine the ahead-by and behind-by counts, along with the merge-base that's been used to calculate those distances.