blame confusion

Marc Strapetz marc.strapetz at syntevo.com
Thu Feb 28 04:57:47 CST 2013


When it comes to blaming merge revisions, I do not understand
Mercurial's behavior (version 2.4.2).

I've created a file with contents:

1
2
3

at r0 and immediately forked 'branch'. In 'branch', the file is modified to:

1
2x  (at r1)
3y  (at r7)

In 'default', many lines have been added to the beginning of the file,
and finally similar lines to "1","2","3" again:

1   (at r5)
2x  (at r6)
3y  (at r6)
.
.
.
1
2
3

Finally, 'branch' is merged to 'default' at r8, resulting in:

1
2x
3y
.
.
.
1
2x
3y

So, the last lines have been merged properly, as expected. However a "hg
blame" gives something like:

0: 1   <-- should be r5
1: 2x  <-- should be r6
7: 3y  <-- should be r6
.
.
.
0: 1
8: 2x  <-- yes, merged at r8, however here I'd expect to see "1"
8: 3y  <-- the same, here I'd expect to see "7"

Is this annotation expected? If so, what is the logic behind this
annotation? I can supply a test repository for this scenario.

-Marc




More information about the Mercurial-devel mailing list