Details
Details
Diff Detail
Diff Detail
- Repository
- rHG Mercurial
- Lint
Automatic diff as part of commit; lint not applicable. - Unit
Automatic diff as part of commit; unit tests not applicable.
Automatic diff as part of commit; lint not applicable. |
Automatic diff as part of commit; unit tests not applicable. |
Path | Packages | |||
---|---|---|---|---|
M | mercurial/copies.py (29 lines) | |||
M | tests/test-copy-move-merge.t (5 lines) | |||
M | tests/test-double-merge.t (3 lines) | |||
M | tests/test-graft.t (14 lines) | |||
M | tests/test-issue672.t (9 lines) | |||
M | tests/test-merge-criss-cross.t (3 lines) | |||
M | tests/test-rename-dir-merge.t (10 lines) | |||
M | tests/test-rename-merge1.t (16 lines) | |||
M | tests/test-rename-merge2.t (81 lines) |
Status | Author | Revision | |
---|---|---|---|
Closed | martinvonz | ||
Closed | martinvonz | ||
Closed | martinvonz | ||
Closed | martinvonz | ||
Closed | martinvonz | ||
Closed | martinvonz | ||
Closed | martinvonz | ||
Closed | martinvonz | ||
Closed | martinvonz | ||
Closed | martinvonz |
u2 = sorted(addedinm2 - addedinm1) | u2 = sorted(addedinm2 - addedinm1) | ||||
header = b" unmatched files in %s" | header = b" unmatched files in %s" | ||||
if u1: | if u1: | ||||
repo.ui.debug(b"%s:\n %s\n" % (header % b'local', b"\n ".join(u1))) | repo.ui.debug(b"%s:\n %s\n" % (header % b'local', b"\n ".join(u1))) | ||||
if u2: | if u2: | ||||
repo.ui.debug(b"%s:\n %s\n" % (header % b'other', b"\n ".join(u2))) | repo.ui.debug(b"%s:\n %s\n" % (header % b'other', b"\n ".join(u2))) | ||||
fullcopy = copies1.copy() | |||||
fullcopy.update(copies2) | |||||
if repo.ui.debugflag: | if repo.ui.debugflag: | ||||
renamedeleteset = set() | renamedeleteset = set() | ||||
divergeset = set() | divergeset = set() | ||||
for dsts in diverge.values(): | for dsts in diverge.values(): | ||||
divergeset.update(dsts) | divergeset.update(dsts) | ||||
for dsts in renamedelete1.values(): | for dsts in renamedelete1.values(): | ||||
renamedeleteset.update(dsts) | renamedeleteset.update(dsts) | ||||
for dsts in renamedelete2.values(): | for dsts in renamedelete2.values(): | ||||
renamedeleteset.update(dsts) | renamedeleteset.update(dsts) | ||||
repo.ui.debug( | repo.ui.debug( | ||||
b" all copies found (* = to merge, ! = divergent, " | b" all copies found (* = to merge, ! = divergent, " | ||||
b"% = renamed and deleted):\n" | b"% = renamed and deleted):\n" | ||||
) | ) | ||||
for f in sorted(fullcopy): | for side, copies in (("local", copies1), ("remote", copies2)): | ||||
if not copies: | |||||
continue | |||||
repo.ui.debug(b" on %s side:\n" % side) | |||||
for f in sorted(copies): | |||||
note = b"" | note = b"" | ||||
if f in copy1 or f in copy2: | if f in copy1 or f in copy2: | ||||
note += b"*" | note += b"*" | ||||
if f in divergeset: | if f in divergeset: | ||||
note += b"!" | note += b"!" | ||||
if f in renamedeleteset: | if f in renamedeleteset: | ||||
note += b"%" | note += b"%" | ||||
repo.ui.debug( | repo.ui.debug( | ||||
b" src: '%s' -> dst: '%s' %s\n" % (fullcopy[f], f, note) | b" src: '%s' -> dst: '%s' %s\n" % (copies[f], f, note) | ||||
) | ) | ||||
del renamedeleteset | del renamedeleteset | ||||
del divergeset | del divergeset | ||||
repo.ui.debug(b" checking for directory renames\n") | repo.ui.debug(b" checking for directory renames\n") | ||||
dirmove1, movewithdir2 = _dir_renames(repo, c1, copy1, copies1, u2) | dirmove1, movewithdir2 = _dir_renames(repo, c1, copy1, copies1, u2) | ||||
dirmove2, movewithdir1 = _dir_renames(repo, c2, copy2, copies2, u1) | dirmove2, movewithdir1 = _dir_renames(repo, c2, copy2, copies2, u1) | ||||
$ hg ci -qAm "other" | $ hg ci -qAm "other" | ||||
$ hg merge --debug | $ hg merge --debug | ||||
unmatched files in other: | unmatched files in other: | ||||
b | b | ||||
c | c | ||||
all copies found (* = to merge, ! = divergent, % = renamed and deleted): | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||||
on remote side: | |||||
src: 'a' -> dst: 'b' * | src: 'a' -> dst: 'b' * | ||||
src: 'a' -> dst: 'c' * | src: 'a' -> dst: 'c' * | ||||
checking for directory renames | checking for directory renames | ||||
resolving manifests | resolving manifests | ||||
branchmerge: True, force: False, partial: False | branchmerge: True, force: False, partial: False | ||||
ancestor: b8bf91eeebbc, local: add3f11052fa+, remote: 17c05bb7fcb6 | ancestor: b8bf91eeebbc, local: add3f11052fa+, remote: 17c05bb7fcb6 | ||||
preserving a for resolve of b | preserving a for resolve of b | ||||
preserving a for resolve of c | preserving a for resolve of c | ||||
removing a | removing a | ||||
starting 4 threads for background file closing (?) | starting 4 threads for background file closing (?) |
user: test | user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: cp foo bar; change both | summary: cp foo bar; change both | ||||
$ hg merge --debug | $ hg merge --debug | ||||
unmatched files in other: | unmatched files in other: | ||||
bar | bar | ||||
all copies found (* = to merge, ! = divergent, % = renamed and deleted): | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||||
on remote side: | |||||
src: 'foo' -> dst: 'bar' * | src: 'foo' -> dst: 'bar' * | ||||
checking for directory renames | checking for directory renames | ||||
resolving manifests | resolving manifests | ||||
branchmerge: True, force: False, partial: False | branchmerge: True, force: False, partial: False | ||||
ancestor: e6dc8efe11cc, local: 6a0df1dad128+, remote: 484bf6903104 | ancestor: e6dc8efe11cc, local: 6a0df1dad128+, remote: 484bf6903104 | ||||
preserving foo for resolve of bar | preserving foo for resolve of bar | ||||
preserving foo for resolve of foo | preserving foo for resolve of foo | ||||
starting 4 threads for background file closing (?) | starting 4 threads for background file closing (?) | ||||
bar: remote copied from foo -> m (premerge) | bar: remote copied from foo -> m (premerge) |
$ HGEDITOR=cat hg graft 1 5 'merge()' 2 --debug | $ HGEDITOR=cat hg graft 1 5 'merge()' 2 --debug | ||||
skipping ungraftable merge revision 6 | skipping ungraftable merge revision 6 | ||||
scanning for duplicate grafts | scanning for duplicate grafts | ||||
skipping revision 2:5c095ad7e90f (already grafted to 7:ef0ef43d49e7) | skipping revision 2:5c095ad7e90f (already grafted to 7:ef0ef43d49e7) | ||||
grafting 1:5d205f8b35b6 "1" | grafting 1:5d205f8b35b6 "1" | ||||
unmatched files in local: | unmatched files in local: | ||||
b | b | ||||
all copies found (* = to merge, ! = divergent, % = renamed and deleted): | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||||
on local side: | |||||
src: 'a' -> dst: 'b' * | src: 'a' -> dst: 'b' * | ||||
checking for directory renames | checking for directory renames | ||||
resolving manifests | resolving manifests | ||||
branchmerge: True, force: True, partial: False | branchmerge: True, force: True, partial: False | ||||
ancestor: 68795b066622, local: ef0ef43d49e7+, remote: 5d205f8b35b6 | ancestor: 68795b066622, local: ef0ef43d49e7+, remote: 5d205f8b35b6 | ||||
preserving b for resolve of b | preserving b for resolve of b | ||||
starting 4 threads for background file closing (?) | starting 4 threads for background file closing (?) | ||||
b: local copied/moved from a -> m (premerge) | b: local copied/moved from a -> m (premerge) | ||||
picked tool ':merge' for b (binary False symlink False changedelete False) | picked tool ':merge' for b (binary False symlink False changedelete False) | ||||
merging b and a to b | merging b and a to b | ||||
my b@ef0ef43d49e7+ other a@5d205f8b35b6 ancestor a@68795b066622 | my b@ef0ef43d49e7+ other a@5d205f8b35b6 ancestor a@68795b066622 | ||||
premerge successful | premerge successful | ||||
committing files: | committing files: | ||||
b | b | ||||
committing manifest | committing manifest | ||||
committing changelog | committing changelog | ||||
updating the branch cache | updating the branch cache | ||||
grafting 5:97f8bfe72746 "5" | grafting 5:97f8bfe72746 "5" | ||||
all copies found (* = to merge, ! = divergent, % = renamed and deleted): | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||||
on local side: | |||||
src: 'c' -> dst: 'b' | src: 'c' -> dst: 'b' | ||||
checking for directory renames | checking for directory renames | ||||
resolving manifests | resolving manifests | ||||
branchmerge: True, force: True, partial: False | branchmerge: True, force: True, partial: False | ||||
ancestor: 4c60f11aa304, local: 6b9e5368ca4e+, remote: 97f8bfe72746 | ancestor: 4c60f11aa304, local: 6b9e5368ca4e+, remote: 97f8bfe72746 | ||||
e: remote is newer -> g | e: remote is newer -> g | ||||
getting e | getting e | ||||
committing files: | committing files: | ||||
e | e | ||||
committing manifest | committing manifest | ||||
committing changelog | committing changelog | ||||
updating the branch cache | updating the branch cache | ||||
$ HGEDITOR=cat hg graft 4 3 --log --debug | $ HGEDITOR=cat hg graft 4 3 --log --debug | ||||
scanning for duplicate grafts | scanning for duplicate grafts | ||||
grafting 4:9c233e8e184d "4" | grafting 4:9c233e8e184d "4" | ||||
all copies found (* = to merge, ! = divergent, % = renamed and deleted): | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||||
on local side: | |||||
src: 'c' -> dst: 'b' | src: 'c' -> dst: 'b' | ||||
checking for directory renames | checking for directory renames | ||||
resolving manifests | resolving manifests | ||||
branchmerge: True, force: True, partial: False | branchmerge: True, force: True, partial: False | ||||
ancestor: 4c60f11aa304, local: 1905859650ec+, remote: 9c233e8e184d | ancestor: 4c60f11aa304, local: 1905859650ec+, remote: 9c233e8e184d | ||||
preserving e for resolve of e | preserving e for resolve of e | ||||
d: remote is newer -> g | d: remote is newer -> g | ||||
getting d | getting d | ||||
e: versions differ -> m (premerge) | e: versions differ -> m (premerge) | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: 2 | summary: 2 | ||||
... grafts of grafts unfortunately can't | ... grafts of grafts unfortunately can't | ||||
$ hg graft -q 13 --debug | $ hg graft -q 13 --debug | ||||
scanning for duplicate grafts | scanning for duplicate grafts | ||||
grafting 13:7a4785234d87 "2" | grafting 13:7a4785234d87 "2" | ||||
all copies found (* = to merge, ! = divergent, % = renamed and deleted): | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||||
on local side: | |||||
src: 'a' -> dst: 'b' * | |||||
on remote side: | |||||
src: 'a' -> dst: 'b' * | src: 'a' -> dst: 'b' * | ||||
checking for directory renames | checking for directory renames | ||||
resolving manifests | resolving manifests | ||||
branchmerge: True, force: True, partial: False | branchmerge: True, force: True, partial: False | ||||
ancestor: b592ea63bb0c, local: 7e61b508e709+, remote: 7a4785234d87 | ancestor: b592ea63bb0c, local: 7e61b508e709+, remote: 7a4785234d87 | ||||
starting 4 threads for background file closing (?) | starting 4 threads for background file closing (?) | ||||
note: graft of 13:7a4785234d87 created no changes to commit | note: graft of 13:7a4785234d87 created no changes to commit | ||||
$ hg log -r 'destination(13)' | $ hg log -r 'destination(13)' | ||||
All copies of a cset | All copies of a cset |
$ echo unrelated >> 2 | $ echo unrelated >> 2 | ||||
$ hg ci -m unrelated1 # 2 | $ hg ci -m unrelated1 # 2 | ||||
created new head | created new head | ||||
$ hg merge --debug 1 | $ hg merge --debug 1 | ||||
unmatched files in other: | unmatched files in other: | ||||
1a | 1a | ||||
all copies found (* = to merge, ! = divergent, % = renamed and deleted): | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||||
on remote side: | |||||
src: '1' -> dst: '1a' | src: '1' -> dst: '1a' | ||||
checking for directory renames | checking for directory renames | ||||
resolving manifests | resolving manifests | ||||
branchmerge: True, force: False, partial: False | branchmerge: True, force: False, partial: False | ||||
ancestor: 81f4b099af3d, local: c64f439569a9+, remote: c12dcd37c90a | ancestor: 81f4b099af3d, local: c64f439569a9+, remote: c12dcd37c90a | ||||
1: other deleted -> r | 1: other deleted -> r | ||||
removing 1 | removing 1 | ||||
1a: remote created -> g | 1a: remote created -> g | ||||
getting 1a | getting 1a | ||||
$ hg co -C 3 | $ hg co -C 3 | ||||
1 files updated, 0 files merged, 1 files removed, 0 files unresolved | 1 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||||
$ hg merge -y --debug 4 | $ hg merge -y --debug 4 | ||||
unmatched files in local: | unmatched files in local: | ||||
1a | 1a | ||||
all copies found (* = to merge, ! = divergent, % = renamed and deleted): | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||||
on local side: | |||||
src: '1' -> dst: '1a' * | src: '1' -> dst: '1a' * | ||||
checking for directory renames | checking for directory renames | ||||
resolving manifests | resolving manifests | ||||
branchmerge: True, force: False, partial: False | branchmerge: True, force: False, partial: False | ||||
ancestor: c64f439569a9, local: f4a9cff3cd0b+, remote: 746e9549ea96 | ancestor: c64f439569a9, local: f4a9cff3cd0b+, remote: 746e9549ea96 | ||||
preserving 1a for resolve of 1a | preserving 1a for resolve of 1a | ||||
starting 4 threads for background file closing (?) | starting 4 threads for background file closing (?) | ||||
1a: local copied/moved from 1 -> m (premerge) | 1a: local copied/moved from 1 -> m (premerge) | ||||
picked tool ':merge' for 1a (binary False symlink False changedelete False) | picked tool ':merge' for 1a (binary False symlink False changedelete False) | ||||
merging 1a and 1 to 1a | merging 1a and 1 to 1a | ||||
my 1a@f4a9cff3cd0b+ other 1@746e9549ea96 ancestor 1@c64f439569a9 | my 1a@f4a9cff3cd0b+ other 1@746e9549ea96 ancestor 1@c64f439569a9 | ||||
premerge successful | premerge successful | ||||
0 files updated, 1 files merged, 0 files removed, 0 files unresolved | 0 files updated, 1 files merged, 0 files removed, 0 files unresolved | ||||
(branch merge, don't forget to commit) | (branch merge, don't forget to commit) | ||||
$ hg co -C 4 | $ hg co -C 4 | ||||
1 files updated, 0 files merged, 1 files removed, 0 files unresolved | 1 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||||
$ hg merge -y --debug 3 | $ hg merge -y --debug 3 | ||||
unmatched files in other: | unmatched files in other: | ||||
1a | 1a | ||||
all copies found (* = to merge, ! = divergent, % = renamed and deleted): | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||||
on remote side: | |||||
src: '1' -> dst: '1a' * | src: '1' -> dst: '1a' * | ||||
checking for directory renames | checking for directory renames | ||||
resolving manifests | resolving manifests | ||||
branchmerge: True, force: False, partial: False | branchmerge: True, force: False, partial: False | ||||
ancestor: c64f439569a9, local: 746e9549ea96+, remote: f4a9cff3cd0b | ancestor: c64f439569a9, local: 746e9549ea96+, remote: f4a9cff3cd0b | ||||
preserving 1 for resolve of 1a | preserving 1 for resolve of 1a | ||||
removing 1 | removing 1 | ||||
starting 4 threads for background file closing (?) | starting 4 threads for background file closing (?) | ||||
1a: remote moved from 1 -> m (premerge) | 1a: remote moved from 1 -> m (premerge) | ||||
picked tool ':merge' for 1a (binary False symlink False changedelete False) | picked tool ':merge' for 1a (binary False symlink False changedelete False) | ||||
merging 1 and 1a to 1a | merging 1 and 1a to 1a | ||||
my 1a@746e9549ea96+ other 1a@f4a9cff3cd0b ancestor 1@c64f439569a9 | my 1a@746e9549ea96+ other 1a@f4a9cff3cd0b ancestor 1@c64f439569a9 | ||||
premerge successful | premerge successful | ||||
0 files updated, 1 files merged, 0 files removed, 0 files unresolved | 0 files updated, 1 files merged, 0 files removed, 0 files unresolved | ||||
(branch merge, don't forget to commit) | (branch merge, don't forget to commit) | ||||
branchmerge: True, force: False, partial: False | branchmerge: True, force: False, partial: False | ||||
ancestor: 11b5b303e36c, local: c0ef19750a22+, remote: 6ca01f7342b9 | ancestor: 11b5b303e36c, local: c0ef19750a22+, remote: 6ca01f7342b9 | ||||
d2/b: remote created -> g | d2/b: remote created -> g | ||||
calculating bids for ancestor 154e6000f54e | calculating bids for ancestor 154e6000f54e | ||||
unmatched files in other: | unmatched files in other: | ||||
d2/b | d2/b | ||||
all copies found (* = to merge, ! = divergent, % = renamed and deleted): | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||||
on remote side: | |||||
src: 'd1/b' -> dst: 'd2/b' | src: 'd1/b' -> dst: 'd2/b' | ||||
checking for directory renames | checking for directory renames | ||||
discovered dir src: 'd1/' -> dst: 'd2/' | discovered dir src: 'd1/' -> dst: 'd2/' | ||||
resolving manifests | resolving manifests | ||||
branchmerge: True, force: False, partial: False | branchmerge: True, force: False, partial: False | ||||
ancestor: 154e6000f54e, local: c0ef19750a22+, remote: 6ca01f7342b9 | ancestor: 154e6000f54e, local: c0ef19750a22+, remote: 6ca01f7342b9 | ||||
d1/a: other deleted -> r | d1/a: other deleted -> r | ||||
d1/b: other deleted -> r | d1/b: other deleted -> r | ||||
d2/b: remote created -> g | d2/b: remote created -> g |
$ hg merge --debug 1 | $ hg merge --debug 1 | ||||
unmatched files in local: | unmatched files in local: | ||||
a/c | a/c | ||||
unmatched files in other: | unmatched files in other: | ||||
b/a | b/a | ||||
b/b | b/b | ||||
all copies found (* = to merge, ! = divergent, % = renamed and deleted): | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||||
on remote side: | |||||
src: 'a/a' -> dst: 'b/a' | src: 'a/a' -> dst: 'b/a' | ||||
src: 'a/b' -> dst: 'b/b' | src: 'a/b' -> dst: 'b/b' | ||||
checking for directory renames | checking for directory renames | ||||
discovered dir src: 'a/' -> dst: 'b/' | discovered dir src: 'a/' -> dst: 'b/' | ||||
pending file src: 'a/c' -> dst: 'b/c' | pending file src: 'a/c' -> dst: 'b/c' | ||||
resolving manifests | resolving manifests | ||||
branchmerge: True, force: False, partial: False | branchmerge: True, force: False, partial: False | ||||
ancestor: f9b20c0d4c51, local: ce36d17b18fb+, remote: 397f8b00a740 | ancestor: f9b20c0d4c51, local: ce36d17b18fb+, remote: 397f8b00a740 | ||||
a/a: other deleted -> r | a/a: other deleted -> r | ||||
removing a/a | removing a/a | ||||
0 files updated, 0 files merged, 1 files removed, 0 files unresolved | 0 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||||
$ hg merge --debug 2 | $ hg merge --debug 2 | ||||
unmatched files in local: | unmatched files in local: | ||||
b/a | b/a | ||||
b/b | b/b | ||||
unmatched files in other: | unmatched files in other: | ||||
a/c | a/c | ||||
all copies found (* = to merge, ! = divergent, % = renamed and deleted): | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||||
on local side: | |||||
src: 'a/a' -> dst: 'b/a' | src: 'a/a' -> dst: 'b/a' | ||||
src: 'a/b' -> dst: 'b/b' | src: 'a/b' -> dst: 'b/b' | ||||
checking for directory renames | checking for directory renames | ||||
discovered dir src: 'a/' -> dst: 'b/' | discovered dir src: 'a/' -> dst: 'b/' | ||||
pending file src: 'a/c' -> dst: 'b/c' | pending file src: 'a/c' -> dst: 'b/c' | ||||
resolving manifests | resolving manifests | ||||
branchmerge: True, force: False, partial: False | branchmerge: True, force: False, partial: False | ||||
ancestor: f9b20c0d4c51, local: 397f8b00a740+, remote: ce36d17b18fb | ancestor: f9b20c0d4c51, local: 397f8b00a740+, remote: ce36d17b18fb | ||||
starting 4 threads for background file closing (?) | starting 4 threads for background file closing (?) | ||||
b/c: local directory rename - get from a/c -> dg | b/c: local directory rename - get from a/c -> dg |
$ hg merge -y --debug | $ hg merge -y --debug | ||||
unmatched files in local: | unmatched files in local: | ||||
c2 | c2 | ||||
unmatched files in other: | unmatched files in other: | ||||
b | b | ||||
b2 | b2 | ||||
all copies found (* = to merge, ! = divergent, % = renamed and deleted): | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||||
on local side: | |||||
src: 'a2' -> dst: 'c2' ! | |||||
on remote side: | |||||
src: 'a' -> dst: 'b' * | src: 'a' -> dst: 'b' * | ||||
src: 'a2' -> dst: 'b2' ! | src: 'a2' -> dst: 'b2' ! | ||||
src: 'a2' -> dst: 'c2' ! | |||||
checking for directory renames | checking for directory renames | ||||
resolving manifests | resolving manifests | ||||
branchmerge: True, force: False, partial: False | branchmerge: True, force: False, partial: False | ||||
ancestor: af1939970a1c, local: 044f8520aeeb+, remote: 85c198ef2f6c | ancestor: af1939970a1c, local: 044f8520aeeb+, remote: 85c198ef2f6c | ||||
note: possible conflict - a2 was renamed multiple times to: | note: possible conflict - a2 was renamed multiple times to: | ||||
b2 | b2 | ||||
c2 | c2 | ||||
preserving a for resolve of b | preserving a for resolve of b | ||||
1 files updated, 0 files merged, 1 files removed, 0 files unresolved | 1 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||||
$ hg rm file | $ hg rm file | ||||
$ hg commit -m "deleted file" | $ hg commit -m "deleted file" | ||||
created new head | created new head | ||||
$ hg merge --debug | $ hg merge --debug | ||||
unmatched files in other: | unmatched files in other: | ||||
newfile | newfile | ||||
all copies found (* = to merge, ! = divergent, % = renamed and deleted): | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||||
on remote side: | |||||
src: 'file' -> dst: 'newfile' % | src: 'file' -> dst: 'newfile' % | ||||
checking for directory renames | checking for directory renames | ||||
resolving manifests | resolving manifests | ||||
branchmerge: True, force: False, partial: False | branchmerge: True, force: False, partial: False | ||||
ancestor: 19d7f95df299, local: 0084274f6b67+, remote: 5d32493049f0 | ancestor: 19d7f95df299, local: 0084274f6b67+, remote: 5d32493049f0 | ||||
note: possible conflict - file was deleted and renamed to: | note: possible conflict - file was deleted and renamed to: | ||||
newfile | newfile | ||||
newfile: remote created -> g | newfile: remote created -> g | ||||
getting newfile | getting newfile | ||||
$ hg ci -qm 'modify x, rename y to z' | $ hg ci -qm 'modify x, rename y to z' | ||||
# We should probably tell the user about the conflicting rename sources. | # We should probably tell the user about the conflicting rename sources. | ||||
# Depending on which side they pick, we should take that rename and get | # Depending on which side they pick, we should take that rename and get | ||||
# the changes to the source from the other side. The unchanged file should | # the changes to the source from the other side. The unchanged file should | ||||
# remain. | # remain. | ||||
# we should not get the prompts about modify/delete conflicts | # we should not get the prompts about modify/delete conflicts | ||||
$ hg merge --debug 1 -t :merge3 | $ hg merge --debug 1 -t :merge3 | ||||
all copies found (* = to merge, ! = divergent, % = renamed and deleted): | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||||
on local side: | |||||
src: 'y' -> dst: 'z' | |||||
on remote side: | |||||
src: 'x' -> dst: 'z' | src: 'x' -> dst: 'z' | ||||
checking for directory renames | checking for directory renames | ||||
resolving manifests | resolving manifests | ||||
branchmerge: True, force: False, partial: False | branchmerge: True, force: False, partial: False | ||||
ancestor: 5151c134577e, local: 07fcbc9a74ed+, remote: f21419739508 | ancestor: 5151c134577e, local: 07fcbc9a74ed+, remote: f21419739508 | ||||
preserving x for resolve of x | preserving x for resolve of x | ||||
preserving z for resolve of z | preserving z for resolve of z | ||||
starting 4 threads for background file closing (?) | starting 4 threads for background file closing (?) | ||||
x: prompt changed/deleted -> m (premerge) | x: prompt changed/deleted -> m (premerge) |
$ tm "up a " "nc a b" " " "1 get local a to b" | $ tm "up a " "nc a b" " " "1 get local a to b" | ||||
created new head | created new head | ||||
-------------- | -------------- | ||||
test L:up a R:nc a b W: - 1 get local a to b | test L:up a R:nc a b W: - 1 get local a to b | ||||
-------------- | -------------- | ||||
unmatched files in other: | unmatched files in other: | ||||
b | b | ||||
all copies found (* = to merge, ! = divergent, % = renamed and deleted): | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||||
on remote side: | |||||
src: 'a' -> dst: 'b' * | src: 'a' -> dst: 'b' * | ||||
checking for directory renames | checking for directory renames | ||||
resolving manifests | resolving manifests | ||||
branchmerge: True, force: False, partial: False | branchmerge: True, force: False, partial: False | ||||
ancestor: 924404dff337, local: e300d1c794ec+, remote: 4ce40f5aca24 | ancestor: 924404dff337, local: e300d1c794ec+, remote: 4ce40f5aca24 | ||||
preserving a for resolve of b | preserving a for resolve of b | ||||
preserving rev for resolve of rev | preserving rev for resolve of rev | ||||
starting 4 threads for background file closing (?) | starting 4 threads for background file closing (?) | ||||
b: remote copied from a -> m (premerge) | b: remote copied from a -> m (premerge) | ||||
$ tm "nc a b" "up a " " " "2 get rem change to a and b" | $ tm "nc a b" "up a " " " "2 get rem change to a and b" | ||||
created new head | created new head | ||||
-------------- | -------------- | ||||
test L:nc a b R:up a W: - 2 get rem change to a and b | test L:nc a b R:up a W: - 2 get rem change to a and b | ||||
-------------- | -------------- | ||||
unmatched files in local: | unmatched files in local: | ||||
b | b | ||||
all copies found (* = to merge, ! = divergent, % = renamed and deleted): | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||||
on local side: | |||||
src: 'a' -> dst: 'b' * | src: 'a' -> dst: 'b' * | ||||
checking for directory renames | checking for directory renames | ||||
resolving manifests | resolving manifests | ||||
branchmerge: True, force: False, partial: False | branchmerge: True, force: False, partial: False | ||||
ancestor: 924404dff337, local: 86a2aa42fc76+, remote: f4db7e329e71 | ancestor: 924404dff337, local: 86a2aa42fc76+, remote: f4db7e329e71 | ||||
preserving b for resolve of b | preserving b for resolve of b | ||||
preserving rev for resolve of rev | preserving rev for resolve of rev | ||||
a: remote is newer -> g | a: remote is newer -> g | ||||
getting a | getting a | ||||
$ tm "up a " "nm a b" " " "3 get local a change to b, remove a" | $ tm "up a " "nm a b" " " "3 get local a change to b, remove a" | ||||
created new head | created new head | ||||
-------------- | -------------- | ||||
test L:up a R:nm a b W: - 3 get local a change to b, remove a | test L:up a R:nm a b W: - 3 get local a change to b, remove a | ||||
-------------- | -------------- | ||||
unmatched files in other: | unmatched files in other: | ||||
b | b | ||||
all copies found (* = to merge, ! = divergent, % = renamed and deleted): | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||||
on remote side: | |||||
src: 'a' -> dst: 'b' * | src: 'a' -> dst: 'b' * | ||||
checking for directory renames | checking for directory renames | ||||
resolving manifests | resolving manifests | ||||
branchmerge: True, force: False, partial: False | branchmerge: True, force: False, partial: False | ||||
ancestor: 924404dff337, local: e300d1c794ec+, remote: bdb19105162a | ancestor: 924404dff337, local: e300d1c794ec+, remote: bdb19105162a | ||||
preserving a for resolve of b | preserving a for resolve of b | ||||
preserving rev for resolve of rev | preserving rev for resolve of rev | ||||
removing a | removing a | ||||
starting 4 threads for background file closing (?) | starting 4 threads for background file closing (?) | ||||
$ tm "nm a b" "up a " " " "4 get remote change to b" | $ tm "nm a b" "up a " " " "4 get remote change to b" | ||||
created new head | created new head | ||||
-------------- | -------------- | ||||
test L:nm a b R:up a W: - 4 get remote change to b | test L:nm a b R:up a W: - 4 get remote change to b | ||||
-------------- | -------------- | ||||
unmatched files in local: | unmatched files in local: | ||||
b | b | ||||
all copies found (* = to merge, ! = divergent, % = renamed and deleted): | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||||
on local side: | |||||
src: 'a' -> dst: 'b' * | src: 'a' -> dst: 'b' * | ||||
checking for directory renames | checking for directory renames | ||||
resolving manifests | resolving manifests | ||||
branchmerge: True, force: False, partial: False | branchmerge: True, force: False, partial: False | ||||
ancestor: 924404dff337, local: 02963e448370+, remote: f4db7e329e71 | ancestor: 924404dff337, local: 02963e448370+, remote: f4db7e329e71 | ||||
preserving b for resolve of b | preserving b for resolve of b | ||||
preserving rev for resolve of rev | preserving rev for resolve of rev | ||||
starting 4 threads for background file closing (?) | starting 4 threads for background file closing (?) | ||||
b: local copied/moved from a -> m (premerge) | b: local copied/moved from a -> m (premerge) | ||||
$ tm " " "nc a b" " " "5 get b" | $ tm " " "nc a b" " " "5 get b" | ||||
created new head | created new head | ||||
-------------- | -------------- | ||||
test L: R:nc a b W: - 5 get b | test L: R:nc a b W: - 5 get b | ||||
-------------- | -------------- | ||||
unmatched files in other: | unmatched files in other: | ||||
b | b | ||||
all copies found (* = to merge, ! = divergent, % = renamed and deleted): | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||||
on remote side: | |||||
src: 'a' -> dst: 'b' | src: 'a' -> dst: 'b' | ||||
checking for directory renames | checking for directory renames | ||||
resolving manifests | resolving manifests | ||||
branchmerge: True, force: False, partial: False | branchmerge: True, force: False, partial: False | ||||
ancestor: 924404dff337, local: 94b33a1b7f2d+, remote: 4ce40f5aca24 | ancestor: 924404dff337, local: 94b33a1b7f2d+, remote: 4ce40f5aca24 | ||||
preserving rev for resolve of rev | preserving rev for resolve of rev | ||||
b: remote created -> g | b: remote created -> g | ||||
getting b | getting b | ||||
rev: versions differ -> m (premerge) | rev: versions differ -> m (premerge) | ||||
$ tm "nc a b" " " " " "6 nothing" | $ tm "nc a b" " " " " "6 nothing" | ||||
created new head | created new head | ||||
-------------- | -------------- | ||||
test L:nc a b R: W: - 6 nothing | test L:nc a b R: W: - 6 nothing | ||||
-------------- | -------------- | ||||
unmatched files in local: | unmatched files in local: | ||||
b | b | ||||
all copies found (* = to merge, ! = divergent, % = renamed and deleted): | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||||
on local side: | |||||
src: 'a' -> dst: 'b' | src: 'a' -> dst: 'b' | ||||
checking for directory renames | checking for directory renames | ||||
resolving manifests | resolving manifests | ||||
branchmerge: True, force: False, partial: False | branchmerge: True, force: False, partial: False | ||||
ancestor: 924404dff337, local: 86a2aa42fc76+, remote: 97c705ade336 | ancestor: 924404dff337, local: 86a2aa42fc76+, remote: 97c705ade336 | ||||
preserving rev for resolve of rev | preserving rev for resolve of rev | ||||
starting 4 threads for background file closing (?) | starting 4 threads for background file closing (?) | ||||
rev: versions differ -> m (premerge) | rev: versions differ -> m (premerge) | ||||
picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | ||||
$ tm " " "nm a b" " " "7 get b" | $ tm " " "nm a b" " " "7 get b" | ||||
created new head | created new head | ||||
-------------- | -------------- | ||||
test L: R:nm a b W: - 7 get b | test L: R:nm a b W: - 7 get b | ||||
-------------- | -------------- | ||||
unmatched files in other: | unmatched files in other: | ||||
b | b | ||||
all copies found (* = to merge, ! = divergent, % = renamed and deleted): | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||||
on remote side: | |||||
src: 'a' -> dst: 'b' | src: 'a' -> dst: 'b' | ||||
checking for directory renames | checking for directory renames | ||||
resolving manifests | resolving manifests | ||||
branchmerge: True, force: False, partial: False | branchmerge: True, force: False, partial: False | ||||
ancestor: 924404dff337, local: 94b33a1b7f2d+, remote: bdb19105162a | ancestor: 924404dff337, local: 94b33a1b7f2d+, remote: bdb19105162a | ||||
preserving rev for resolve of rev | preserving rev for resolve of rev | ||||
a: other deleted -> r | a: other deleted -> r | ||||
removing a | removing a | ||||
b: remote created -> g | b: remote created -> g | ||||
$ tm "nm a b" " " " " "8 nothing" | $ tm "nm a b" " " " " "8 nothing" | ||||
created new head | created new head | ||||
-------------- | -------------- | ||||
test L:nm a b R: W: - 8 nothing | test L:nm a b R: W: - 8 nothing | ||||
-------------- | -------------- | ||||
unmatched files in local: | unmatched files in local: | ||||
b | b | ||||
all copies found (* = to merge, ! = divergent, % = renamed and deleted): | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||||
on local side: | |||||
src: 'a' -> dst: 'b' | src: 'a' -> dst: 'b' | ||||
checking for directory renames | checking for directory renames | ||||
resolving manifests | resolving manifests | ||||
branchmerge: True, force: False, partial: False | branchmerge: True, force: False, partial: False | ||||
ancestor: 924404dff337, local: 02963e448370+, remote: 97c705ade336 | ancestor: 924404dff337, local: 02963e448370+, remote: 97c705ade336 | ||||
preserving rev for resolve of rev | preserving rev for resolve of rev | ||||
starting 4 threads for background file closing (?) | starting 4 threads for background file closing (?) | ||||
rev: versions differ -> m (premerge) | rev: versions differ -> m (premerge) | ||||
picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob) | ||||
-------------- | -------------- | ||||
$ tm "um a b" "um a b" " " "9 do merge with ancestor in a" | $ tm "um a b" "um a b" " " "9 do merge with ancestor in a" | ||||
created new head | created new head | ||||
-------------- | -------------- | ||||
test L:um a b R:um a b W: - 9 do merge with ancestor in a | test L:um a b R:um a b W: - 9 do merge with ancestor in a | ||||
-------------- | -------------- | ||||
all copies found (* = to merge, ! = divergent, % = renamed and deleted): | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||||
on local side: | |||||
src: 'a' -> dst: 'b' * | |||||
on remote side: | |||||
src: 'a' -> dst: 'b' * | src: 'a' -> dst: 'b' * | ||||
checking for directory renames | checking for directory renames | ||||
resolving manifests | resolving manifests | ||||
branchmerge: True, force: False, partial: False | branchmerge: True, force: False, partial: False | ||||
ancestor: 924404dff337, local: 62e7bf090eba+, remote: 49b6d8032493 | ancestor: 924404dff337, local: 62e7bf090eba+, remote: 49b6d8032493 | ||||
preserving b for resolve of b | preserving b for resolve of b | ||||
preserving rev for resolve of rev | preserving rev for resolve of rev | ||||
starting 4 threads for background file closing (?) | starting 4 threads for background file closing (?) | ||||
b: both renamed from a -> m (premerge) | b: both renamed from a -> m (premerge) | ||||
-------------- | -------------- | ||||
test L:nm a b R:nm a c W: - 11 get c, keep b | test L:nm a b R:nm a c W: - 11 get c, keep b | ||||
-------------- | -------------- | ||||
unmatched files in local: | unmatched files in local: | ||||
b | b | ||||
unmatched files in other: | unmatched files in other: | ||||
c | c | ||||
all copies found (* = to merge, ! = divergent, % = renamed and deleted): | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||||
on local side: | |||||
src: 'a' -> dst: 'b' ! | src: 'a' -> dst: 'b' ! | ||||
on remote side: | |||||
src: 'a' -> dst: 'c' ! | src: 'a' -> dst: 'c' ! | ||||
checking for directory renames | checking for directory renames | ||||
resolving manifests | resolving manifests | ||||
branchmerge: True, force: False, partial: False | branchmerge: True, force: False, partial: False | ||||
ancestor: 924404dff337, local: 02963e448370+, remote: fe905ef2c33e | ancestor: 924404dff337, local: 02963e448370+, remote: fe905ef2c33e | ||||
note: possible conflict - a was renamed multiple times to: | note: possible conflict - a was renamed multiple times to: | ||||
b | b | ||||
c | c | ||||
preserving rev for resolve of rev | preserving rev for resolve of rev | ||||
-------------- | -------------- | ||||
$ tm "nc a b" "up b " " " "12 merge b no ancestor" | $ tm "nc a b" "up b " " " "12 merge b no ancestor" | ||||
created new head | created new head | ||||
-------------- | -------------- | ||||
test L:nc a b R:up b W: - 12 merge b no ancestor | test L:nc a b R:up b W: - 12 merge b no ancestor | ||||
-------------- | -------------- | ||||
all copies found (* = to merge, ! = divergent, % = renamed and deleted): | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||||
on local side: | |||||
src: 'a' -> dst: 'b' | src: 'a' -> dst: 'b' | ||||
checking for directory renames | checking for directory renames | ||||
resolving manifests | resolving manifests | ||||
branchmerge: True, force: False, partial: False | branchmerge: True, force: False, partial: False | ||||
ancestor: 924404dff337, local: 86a2aa42fc76+, remote: af30c7647fc7 | ancestor: 924404dff337, local: 86a2aa42fc76+, remote: af30c7647fc7 | ||||
preserving b for resolve of b | preserving b for resolve of b | ||||
preserving rev for resolve of rev | preserving rev for resolve of rev | ||||
starting 4 threads for background file closing (?) | starting 4 threads for background file closing (?) | ||||
b: both created -> m (premerge) | b: both created -> m (premerge) | ||||
-------------- | -------------- | ||||
$ tm "up b " "nm a b" " " "13 merge b no ancestor" | $ tm "up b " "nm a b" " " "13 merge b no ancestor" | ||||
created new head | created new head | ||||
-------------- | -------------- | ||||
test L:up b R:nm a b W: - 13 merge b no ancestor | test L:up b R:nm a b W: - 13 merge b no ancestor | ||||
-------------- | -------------- | ||||
all copies found (* = to merge, ! = divergent, % = renamed and deleted): | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||||
on remote side: | |||||
src: 'a' -> dst: 'b' | src: 'a' -> dst: 'b' | ||||
checking for directory renames | checking for directory renames | ||||
resolving manifests | resolving manifests | ||||
branchmerge: True, force: False, partial: False | branchmerge: True, force: False, partial: False | ||||
ancestor: 924404dff337, local: 59318016310c+, remote: bdb19105162a | ancestor: 924404dff337, local: 59318016310c+, remote: bdb19105162a | ||||
preserving b for resolve of b | preserving b for resolve of b | ||||
preserving rev for resolve of rev | preserving rev for resolve of rev | ||||
a: other deleted -> r | a: other deleted -> r | ||||
removing a | removing a | ||||
-------------- | -------------- | ||||
$ tm "nc a b" "up a b" " " "14 merge b no ancestor" | $ tm "nc a b" "up a b" " " "14 merge b no ancestor" | ||||
created new head | created new head | ||||
-------------- | -------------- | ||||
test L:nc a b R:up a b W: - 14 merge b no ancestor | test L:nc a b R:up a b W: - 14 merge b no ancestor | ||||
-------------- | -------------- | ||||
all copies found (* = to merge, ! = divergent, % = renamed and deleted): | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||||
on local side: | |||||
src: 'a' -> dst: 'b' | src: 'a' -> dst: 'b' | ||||
checking for directory renames | checking for directory renames | ||||
resolving manifests | resolving manifests | ||||
branchmerge: True, force: False, partial: False | branchmerge: True, force: False, partial: False | ||||
ancestor: 924404dff337, local: 86a2aa42fc76+, remote: 8dbce441892a | ancestor: 924404dff337, local: 86a2aa42fc76+, remote: 8dbce441892a | ||||
preserving b for resolve of b | preserving b for resolve of b | ||||
preserving rev for resolve of rev | preserving rev for resolve of rev | ||||
a: remote is newer -> g | a: remote is newer -> g | ||||
getting a | getting a | ||||
-------------- | -------------- | ||||
$ tm "up b " "nm a b" " " "15 merge b no ancestor, remove a" | $ tm "up b " "nm a b" " " "15 merge b no ancestor, remove a" | ||||
created new head | created new head | ||||
-------------- | -------------- | ||||
test L:up b R:nm a b W: - 15 merge b no ancestor, remove a | test L:up b R:nm a b W: - 15 merge b no ancestor, remove a | ||||
-------------- | -------------- | ||||
all copies found (* = to merge, ! = divergent, % = renamed and deleted): | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||||
on remote side: | |||||
src: 'a' -> dst: 'b' | src: 'a' -> dst: 'b' | ||||
checking for directory renames | checking for directory renames | ||||
resolving manifests | resolving manifests | ||||
branchmerge: True, force: False, partial: False | branchmerge: True, force: False, partial: False | ||||
ancestor: 924404dff337, local: 59318016310c+, remote: bdb19105162a | ancestor: 924404dff337, local: 59318016310c+, remote: bdb19105162a | ||||
preserving b for resolve of b | preserving b for resolve of b | ||||
preserving rev for resolve of rev | preserving rev for resolve of rev | ||||
a: other deleted -> r | a: other deleted -> r | ||||
removing a | removing a | ||||
-------------- | -------------- | ||||
$ tm "nc a b" "up a b" " " "16 get a, merge b no ancestor" | $ tm "nc a b" "up a b" " " "16 get a, merge b no ancestor" | ||||
created new head | created new head | ||||
-------------- | -------------- | ||||
test L:nc a b R:up a b W: - 16 get a, merge b no ancestor | test L:nc a b R:up a b W: - 16 get a, merge b no ancestor | ||||
-------------- | -------------- | ||||
all copies found (* = to merge, ! = divergent, % = renamed and deleted): | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||||
on local side: | |||||
src: 'a' -> dst: 'b' | src: 'a' -> dst: 'b' | ||||
checking for directory renames | checking for directory renames | ||||
resolving manifests | resolving manifests | ||||
branchmerge: True, force: False, partial: False | branchmerge: True, force: False, partial: False | ||||
ancestor: 924404dff337, local: 86a2aa42fc76+, remote: 8dbce441892a | ancestor: 924404dff337, local: 86a2aa42fc76+, remote: 8dbce441892a | ||||
preserving b for resolve of b | preserving b for resolve of b | ||||
preserving rev for resolve of rev | preserving rev for resolve of rev | ||||
a: remote is newer -> g | a: remote is newer -> g | ||||
getting a | getting a | ||||
-------------- | -------------- | ||||
$ tm "up a b" "nc a b" " " "17 keep a, merge b no ancestor" | $ tm "up a b" "nc a b" " " "17 keep a, merge b no ancestor" | ||||
created new head | created new head | ||||
-------------- | -------------- | ||||
test L:up a b R:nc a b W: - 17 keep a, merge b no ancestor | test L:up a b R:nc a b W: - 17 keep a, merge b no ancestor | ||||
-------------- | -------------- | ||||
all copies found (* = to merge, ! = divergent, % = renamed and deleted): | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||||
on remote side: | |||||
src: 'a' -> dst: 'b' | src: 'a' -> dst: 'b' | ||||
checking for directory renames | checking for directory renames | ||||
resolving manifests | resolving manifests | ||||
branchmerge: True, force: False, partial: False | branchmerge: True, force: False, partial: False | ||||
ancestor: 924404dff337, local: 0b76e65c8289+, remote: 4ce40f5aca24 | ancestor: 924404dff337, local: 0b76e65c8289+, remote: 4ce40f5aca24 | ||||
preserving b for resolve of b | preserving b for resolve of b | ||||
preserving rev for resolve of rev | preserving rev for resolve of rev | ||||
starting 4 threads for background file closing (?) | starting 4 threads for background file closing (?) | ||||
b: both created -> m (premerge) | b: both created -> m (premerge) | ||||
-------------- | -------------- | ||||
$ tm "nm a b" "up a b" " " "18 merge b no ancestor" | $ tm "nm a b" "up a b" " " "18 merge b no ancestor" | ||||
created new head | created new head | ||||
-------------- | -------------- | ||||
test L:nm a b R:up a b W: - 18 merge b no ancestor | test L:nm a b R:up a b W: - 18 merge b no ancestor | ||||
-------------- | -------------- | ||||
all copies found (* = to merge, ! = divergent, % = renamed and deleted): | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||||
on local side: | |||||
src: 'a' -> dst: 'b' | src: 'a' -> dst: 'b' | ||||
checking for directory renames | checking for directory renames | ||||
resolving manifests | resolving manifests | ||||
branchmerge: True, force: False, partial: False | branchmerge: True, force: False, partial: False | ||||
ancestor: 924404dff337, local: 02963e448370+, remote: 8dbce441892a | ancestor: 924404dff337, local: 02963e448370+, remote: 8dbce441892a | ||||
preserving b for resolve of b | preserving b for resolve of b | ||||
preserving rev for resolve of rev | preserving rev for resolve of rev | ||||
starting 4 threads for background file closing (?) | starting 4 threads for background file closing (?) | ||||
a: prompt deleted/changed -> m (premerge) | a: prompt deleted/changed -> m (premerge) | ||||
-------------- | -------------- | ||||
$ tm "up a b" "nm a b" " " "19 merge b no ancestor, prompt remove a" | $ tm "up a b" "nm a b" " " "19 merge b no ancestor, prompt remove a" | ||||
created new head | created new head | ||||
-------------- | -------------- | ||||
test L:up a b R:nm a b W: - 19 merge b no ancestor, prompt remove a | test L:up a b R:nm a b W: - 19 merge b no ancestor, prompt remove a | ||||
-------------- | -------------- | ||||
all copies found (* = to merge, ! = divergent, % = renamed and deleted): | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||||
on remote side: | |||||
src: 'a' -> dst: 'b' | src: 'a' -> dst: 'b' | ||||
checking for directory renames | checking for directory renames | ||||
resolving manifests | resolving manifests | ||||
branchmerge: True, force: False, partial: False | branchmerge: True, force: False, partial: False | ||||
ancestor: 924404dff337, local: 0b76e65c8289+, remote: bdb19105162a | ancestor: 924404dff337, local: 0b76e65c8289+, remote: bdb19105162a | ||||
preserving a for resolve of a | preserving a for resolve of a | ||||
preserving b for resolve of b | preserving b for resolve of b | ||||
preserving rev for resolve of rev | preserving rev for resolve of rev | ||||
starting 4 threads for background file closing (?) | starting 4 threads for background file closing (?) | ||||
$ tm "up a " "um a b" " " "20 merge a and b to b, remove a" | $ tm "up a " "um a b" " " "20 merge a and b to b, remove a" | ||||
created new head | created new head | ||||
-------------- | -------------- | ||||
test L:up a R:um a b W: - 20 merge a and b to b, remove a | test L:up a R:um a b W: - 20 merge a and b to b, remove a | ||||
-------------- | -------------- | ||||
unmatched files in other: | unmatched files in other: | ||||
b | b | ||||
all copies found (* = to merge, ! = divergent, % = renamed and deleted): | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||||
on remote side: | |||||
src: 'a' -> dst: 'b' * | src: 'a' -> dst: 'b' * | ||||
checking for directory renames | checking for directory renames | ||||
resolving manifests | resolving manifests | ||||
branchmerge: True, force: False, partial: False | branchmerge: True, force: False, partial: False | ||||
ancestor: 924404dff337, local: e300d1c794ec+, remote: 49b6d8032493 | ancestor: 924404dff337, local: e300d1c794ec+, remote: 49b6d8032493 | ||||
preserving a for resolve of b | preserving a for resolve of b | ||||
preserving rev for resolve of rev | preserving rev for resolve of rev | ||||
removing a | removing a | ||||
starting 4 threads for background file closing (?) | starting 4 threads for background file closing (?) | ||||
$ tm "um a b" "up a " " " "21 merge a and b to b" | $ tm "um a b" "up a " " " "21 merge a and b to b" | ||||
created new head | created new head | ||||
-------------- | -------------- | ||||
test L:um a b R:up a W: - 21 merge a and b to b | test L:um a b R:up a W: - 21 merge a and b to b | ||||
-------------- | -------------- | ||||
unmatched files in local: | unmatched files in local: | ||||
b | b | ||||
all copies found (* = to merge, ! = divergent, % = renamed and deleted): | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||||
on local side: | |||||
src: 'a' -> dst: 'b' * | src: 'a' -> dst: 'b' * | ||||
checking for directory renames | checking for directory renames | ||||
resolving manifests | resolving manifests | ||||
branchmerge: True, force: False, partial: False | branchmerge: True, force: False, partial: False | ||||
ancestor: 924404dff337, local: 62e7bf090eba+, remote: f4db7e329e71 | ancestor: 924404dff337, local: 62e7bf090eba+, remote: f4db7e329e71 | ||||
preserving b for resolve of b | preserving b for resolve of b | ||||
preserving rev for resolve of rev | preserving rev for resolve of rev | ||||
starting 4 threads for background file closing (?) | starting 4 threads for background file closing (?) | ||||
b: local copied/moved from a -> m (premerge) | b: local copied/moved from a -> m (premerge) | ||||
-------------- | -------------- | ||||
test L:nm a b R:up a c W: - 23 get c, keep b | test L:nm a b R:up a c W: - 23 get c, keep b | ||||
-------------- | -------------- | ||||
unmatched files in local: | unmatched files in local: | ||||
b | b | ||||
unmatched files in other: | unmatched files in other: | ||||
c | c | ||||
all copies found (* = to merge, ! = divergent, % = renamed and deleted): | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||||
on local side: | |||||
src: 'a' -> dst: 'b' * | src: 'a' -> dst: 'b' * | ||||
checking for directory renames | checking for directory renames | ||||
resolving manifests | resolving manifests | ||||
branchmerge: True, force: False, partial: False | branchmerge: True, force: False, partial: False | ||||
ancestor: 924404dff337, local: 02963e448370+, remote: 2b958612230f | ancestor: 924404dff337, local: 02963e448370+, remote: 2b958612230f | ||||
preserving b for resolve of b | preserving b for resolve of b | ||||
preserving rev for resolve of rev | preserving rev for resolve of rev | ||||
c: remote created -> g | c: remote created -> g | ||||
getting c | getting c | ||||
unmatched files in local: | unmatched files in local: | ||||
5/g | 5/g | ||||
6/g | 6/g | ||||
unmatched files in other: | unmatched files in other: | ||||
3/g | 3/g | ||||
4/g | 4/g | ||||
7/f | 7/f | ||||
all copies found (* = to merge, ! = divergent, % = renamed and deleted): | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||||
on local side: | |||||
src: '1/f' -> dst: '1/g' * | src: '1/f' -> dst: '1/g' * | ||||
src: '3/f' -> dst: '3/g' * | |||||
src: '4/f' -> dst: '4/g' * | |||||
src: '5/f' -> dst: '5/g' * | src: '5/f' -> dst: '5/g' * | ||||
src: '6/f' -> dst: '6/g' * | src: '6/f' -> dst: '6/g' * | ||||
on remote side: | |||||
src: '1/f' -> dst: '1/g' * | |||||
src: '3/f' -> dst: '3/g' * | |||||
src: '4/f' -> dst: '4/g' * | |||||
checking for directory renames | checking for directory renames | ||||
$ hg mani | $ hg mani | ||||
0/f | 0/f | ||||
1/g | 1/g | ||||
2/f | 2/f | ||||
3/f | 3/f | ||||
4/f | 4/f | ||||
5/f | 5/f |