threads / discuss / 8775

How do I label conflict blocks in merge-recursive output?

Subject: How do I label conflict blocks in merge-recursive output?

## tl;dr

2 messages between Jun 29, 2007 and Jun 29, 2007.

replies: 1people: 2as markdown or json

しらいしななこ· Jun 29, 2007, 14:28 UTC · lore
Hi, I am updating my 'git-save' script and have a question.  
When I play back the state previously recorded, I run:
   $ git-merge-recursive $base -- HEAD $stash

This is done after getting the $base (the state the stash was made from), and $stash (the state of the interrupted work recorded in the stash) in these variables. When there are conflicts, I see '<<<<<<<' and '>>>>>>>' markers in the merged file.

A trouble I am seeing is that there are large hexadecimal string after these markers, like this:

   <<<<<<< 13bd5d46b4a5d4ef44c53fab11e74801c18b16d0:A
   side
   revision
   =======
   local
   modification
   >>>>>>> 9aa4ad6a3bdf5340bed969f6e14abb4e07e794f7:A

I do not know what object these are, and I do not think it is useful to show them to the user. I want them to say something more useful.

In a real conflict after a 'git-pull', I think I saw nicer labels that are not hexadecimal strings after these markers.

How do I tell merge-recursive to do that? I tried to read the documentation for merge-recursive but there is no manual page.

TIA
-- 
Nanako Shiraishi
http://ivory.ap.teacup.com/nanako3/

----------------------------------------------------------------------
Find out how you can get spam free email.
http://www.bluebottle.com
Johannes Schindelin· Jun 29, 2007, 17:16 UTC · re: しらいしななこ · lore

Re: How do I label conflict blocks in merge-recursive output?

Hi,
On Fri, 29 Jun 2007, しらいしななこ wrote:
Show 18 quoted lines
> A trouble I am seeing is that there are large hexadecimal string after
> these markers, like this:
> 
>    <<<<<<< 13bd5d46b4a5d4ef44c53fab11e74801c18b16d0:A
>    side
>    revision
>    =======
>    local
>    modification
>    >>>>>>> 9aa4ad6a3bdf5340bed969f6e14abb4e07e794f7:A
> 
> I do not know what object these are, and I do not think it is useful to 
> show them to the user.  I want them to say something more useful.
>
> [...]
>
> How do I tell merge-recursive to do that?  I tried to read the 
> documentation for merge-recursive but there is no manual page.

Yes, it is unfortunately undocumented. To override the name for a given SHA-1 (which is the long hex string, and which you can obtain by "git-rev-parse <commit>"), set the environment variable

	GITHEAD_<sha1>="This is a much nicer message"
IOW If you would have done this (_before_ calling merge-recursive):
	export GITHEAD_9aa4ad6a3bdf5340bed969f6e14abb4e07e794f7=nanako
then the last conflict marker would have read
	>>>>>>> nanako:A

Hth, Dscho

← back to recent threads