[PATCH 0 of 2 STABLE] More consistent diff -S output

Renato Cunha renato at renatocunha.com
Wed Dec 14 14:31:39 UTC 2011


Hi!

This is an attempt at fixing issue 3153.

hg currently has inconsistent behavior when a subrepo is removed between two
revisions it is diffing against.

If a subrepo was removed after the first revision and before (or at) the second
revision, then mercurial would crash with a KeyError exception not being
caught[1]. But if the order of the specified revisions was swapped, then hg
would succeed in executing the diff.

[1] http://mercurial.selenic.com/bts/file1321/hg-diff-S-traceback.txt

This patch series tries to fix this by giving a more consistent behavior to hg:
just ignore the missing subrepo instead of crashing. A regression test is also
provided.

Thanks.


More information about the Mercurial-devel mailing list