# HG changeset patch # User Martin von Zweigbergk # Date 2019-04-29 21:38:54 # Node ID c83c08cf02b72737440abb0ff818d304ad36c797 # Parent e64d8d73a98d86bcd8ac81ab6cb4ac4829410fa3 tests: add test where copy source is deleted and added back This shows another difference between pathcopies() and mergecopies(): mergecopies() considers files that have been deleted and then added back as different files, but pathcopies() does not. Differential Revision: https://phab.mercurial-scm.org/D6330 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 @@ Check for issue3074 $ 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 ..