Finding a branch point in git
- From
Felipe Contreras <felipe.contreras@gmail.com>
- Date
- May 27, 2012, 12:37 UTC
- Message-ID
- <CAMP44s0f7AJPQSTDgvy0U7vx8nxzq2a3vMhSr2Tcc61fetFkJA@mail.gmail.com>
Hi,
When discussing git vs. mercurial, and what can mercurial do that git can't, I inevitably see somebody mention that mercurial branches can be used to find the branch point (the point at which a branch started; even if it's a long-lived one that has been merged to 'master' multiple times).
There have been a few solutions in stackoverflow[1], but none that work in all cases.
But I think I've found an ad-hoc one that uses the commit messages to find the first merge of a branch, and then the merge-base.
For reference, if somebody is interested:
---
[alias]
branch-point = !sh -c 'merge=$(git rev-list --min-parents=2
--grep="Merge.*$1" --all | tail -1) && git merge-base $merge^1
$merge^2'
---Cheers.
[1] http://stackoverflow.com/questions/1527234/finding-a-branch-point-with-git/
-- Felipe Contreras