Re: Find out on which branch a commit was originally made
- From
- Artur Skawina <art.08.09@gmail.com>
- Date
- Sep 18, 2010, 16:41 UTC
- Message-ID
- <4C94EBBC.4080201@gmail.com>
- In-Reply-To
- <1jp0xnn.1gyr9a31jn4r7cM%lists@haller-berlin.de>
On 09/18/10 17:26, Stefan Haller wrote:
> Ævar Arnfjör? Bjarmason <avarab@gmail.com> wrote: >> A---B---C topic >> / \ >> D---E---F---G---H master
The question is the same though: if I hit commit B while blaming, how do
> I know what topic it was a part of? For that, I need to find commit H > which will tell me, right? How do I do that?
git rev-list --ancestry-path --merges --reverse B..master --format=oneline
Show 6 quoted lines
> One concern that they are raising is that in Git there doesn't seem to > be an easy way to find out on which branch a given commit was originally > made, after the branch is merged back and deleted. They consider this a > show-stopper. In Mercurial, branch information is meta data attached to > each commit, so you can easily get this information even after a branch > is closed.
Don't do that, then. IOW if you know you could still need the old branch info, make an alias that doesn't actually delete the branch after merging, but moves the ref away, eg 'topic-name' -> "merged/topic-name" or just adds a "merged/topic-name" tag. Then simply checking from which "merged/*" branch/tag the offending commit is reachable would be enough. Deleting a merged branch does not do anything more than removing the reference (to 'C' in the above example), all the history stays around forever anyway...
artur