Annotate shows "wrong" history
Created originally on Bitbucket by rbu8 (Rainer Bauer)
Hello,
we were struggling today with an unexpected behaviour: mercurial does not show the correct history when annotating a file. There were two identical changes made in two different named branches (let's call them Foo and Bar). And these two branches had never been merged.
When Branch Foo was active, TortoiseHg showed that the file was last modified in branch Bar. This can clearly not be the case, since the branches have not been merged!
We tracked it down to the behaviour of the "hg log" command. This also shows the wrong history when branch Foo is active.
However, when specifying the "--removed" option, "hg log" shows the correct result.
This is what the man page says:
For performance reasons, log FILE may omit duplicate changes made on branches and will not show removals or mode changes. To see all such changes, use the --removed switch.
Note: When starting the Annotate command via TortoiseHg, the console output window of TortoiseHg shows that the revision option is specified with a revision of branch Bar. So I assume that TortoiseHg is somehow using "hg log".
I know that this is not a bug, but I wonder if it were possible to allow the user to configure the behaviour of TortoiseHg. I.e. add an option so that the "--removed" option is used with hg log. It might be slower, but shows the correct result!
Regards,
Rainer