Monday, March 2, 2015

git relation

Two different branches in a git repository can be related in one of the following two ways:
  1. Branch A is ahead of branch B
  2. Branch A and branch B diverged.
But, I always wondered how to get more information about that relationship. For example, if A is ahead of B -- by how many commits? Or if they diverged -- how many commits ago (from A, and from B). And what exactly commits are those?

So, I just wrote a simple python script which will find the response.

Examples:

$ git relation master test-branch
master is AHEAD of test-branch

Commits from test-branch to master:
  2176e45 Tomo Krajina git-multi in README, 18 hours ago
  50b2f79 Tomo Krajina + README, 18 hours ago
...or...

$ git relation branch-1 branch-2
branch-1 and branch-2 DIVERGED, common point is 7e0bb439dd2aef4ff0262afec0a98461489becae

Commits from 7e0bb439dd2aef4ff0262afec0a98461489becae to branch-1:
  3d0246b Tomo Krajina js namespace, 3 weeks ago
  60215aa Tomo Krajina Merge branch 'new-path-editor' into new-path-editor--js-namespace, 3 weeks ago
  1e76deb Tomo Krajina js namespace, 5 weeks ago

Commits from 7e0bb439dd2aef4ff0262afec0a98461489becae to branch-2:
  359eff6 Tomo Krajina form event functions, 5 hours ago
  a99b5f8 Tomo Krajina ..., 3 weeks ago
  1d3b97c Tomo Krajina Preparations for marker handler, 3 weeks ago
  9546769 Tomo Krajina Removed all subscription stuff, 3 months ago
Git relation is part of my git-plus repository: https://github.com/tkrajina/git-plus.