From: Junio C Hamano Date: Sun, 18 Aug 2013 19:40:26 GMT Subject: Re: "git fmt-merge-msg" usage Message-ID: <7vbo4uokid.fsf@alter.siamese.dyndns.org> In-Reply-To: <520E322F.4040509@alum.mit.edu> Michael Haggerty writes: > On 07/15/2013 11:43 PM, Junio C Hamano wrote: >> [...] >> This was a good exercise for git-imerge.[...] >> >> A few things I noticed: >> [...] >> >> - The final step "imerge finish" gave me this ugliness: >> >> Merge commit 93d9353... into commit cb5d2fc7 >> >> Perhaps you can at least use the initial branch name >> "nd/magic-pathspec" I gave you, and use "git fmt-merge-msg"? > > I tried to implement this but it is not obvious from the documentation > (to say the least) how to use "git fmt-merge-msg". It appears that this > program takes, on standard input, something like > > TAB TAB LF > TAB TAB LF > TAB TAB LF > ... > > (the two TABs are required!). Correct; fmt-merge-msg is designed to read FETCH_HEAD that can have 'not-for-merge' marker between these two HTs. are also expected to be in a specific format to explain where the object being merged described by the line came from. > But a bit of the magic of these merge messages is how the are > generated in the first place; e.g., > > refs/heads/foo -> "branch 'foo'" > refs/remotes/bar/baz -> "remote-tracking branch 'bar/baz'" > > Is this magic available via any Git commands, or do I have to replicate it? This is all internal to "fetch" and "git merge", which are the only things that need to know the specifics. store_updated_refs() is where entries in FETCH_HEAD are written.