diff --git a/tests/test-rename-merge1.t b/tests/test-rename-merge1.t --- a/tests/test-rename-merge1.t +++ b/tests/test-rename-merge1.t @@ -184,3 +184,52 @@ $ hg status M newfile $ cd .. + +Check that file is considered unrelated when deleted and recreated + + $ hg init unrelated + $ cd unrelated + $ echo foo > file + $ hg add file + $ hg commit -m "added file" + $ hg cp file newfile + $ hg commit -m "copy file" + $ hg update 0 + 0 files updated, 0 files merged, 1 files removed, 0 files unresolved + $ hg rm file + $ hg commit -m "deleted file" + created new head + $ echo bar > file + $ hg add file + $ hg ci -m 'recreate file' + $ hg log -G -T '{rev} {desc}\n' + @ 3 recreate file + | + o 2 deleted file + | + | o 1 copy file + |/ + o 0 added file + +BROKEN: this is inconsistent with `hg merge` (below), which doesn't consider +'file' renamed same since it was deleted for a while + $ hg st --copies --rev 3 --rev 1 + M file + A newfile + file + $ hg merge --debug 1 + unmatched files in other: + newfile + all copies found (* = to merge, ! = divergent, % = renamed and deleted): + src: 'file' -> dst: 'newfile' + checking for directory renames + resolving manifests + branchmerge: True, force: False, partial: False + ancestor: 19d7f95df299, local: 4e4a42b1cbdf+, remote: 45b14aae7432 + newfile: remote created -> g + getting newfile + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + (branch merge, don't forget to commit) + $ hg status + M newfile + $ cd ..