# HG changeset patch # User Martin von Zweigbergk # Date 1558117968 25200 # Node ID 78530404d00b30610847c7be26a390149475e3f8 # Parent 832c59d1196e8088102500992ee0e0a32e49226e convert: demonstrate broken {files} list in merge commits with file flags When there is a merge in which the flags for a file from p2 is non-empty, `hg convert` will incorrectly include that in the changeset's files list. Differential Revision: https://phab.mercurial-scm.org/D6408 diff -r 832c59d1196e -r 78530404d00b tests/test-convert-hg-sink.t --- a/tests/test-convert-hg-sink.t Sat May 18 19:56:06 2019 -0400 +++ b/tests/test-convert-hg-sink.t Fri May 17 11:32:48 2019 -0700 @@ -573,3 +573,51 @@ M f A b-only R a-only + +Recorded {files} list does not get confused about flags on merge commits + +#if execbit + $ cd .. + $ hg init merge-flags-orig + $ cd merge-flags-orig + $ echo 0 > 0 + $ hg ci -Aqm 'add 0' + $ echo a > a + $ chmod +x a + $ hg ci -qAm 'add executable file' + $ hg co -q 0 + $ echo b > b + $ hg ci -qAm 'add file' + $ hg merge -q + $ hg ci -m 'merge' + $ hg log -G -T '{rev} {desc}\n' + @ 3 merge + |\ + | o 2 add file + | | + o | 1 add executable file + |/ + o 0 add 0 + + +# No files changed + $ hg log -r 3 -T '{files}\n' + + + $ cd .. + $ hg convert merge-flags-orig merge-flags-new -q + $ cd merge-flags-new + $ hg log -G -T '{rev} {desc}\n' + o 3 merge + |\ + | o 2 add file + | | + o | 1 add executable file + |/ + o 0 add 0 + +BROKEN: now 'a' appears changed + $ hg log -r 3 -T '{files}\n' + a + +#endif