test-rename-dir-merge.t
192 lines
| 4.5 KiB
| text/troff
|
Tads3Lexer
/ tests / test-rename-dir-merge.t
|
r13956 | $ hg init t | ||
|
r12114 | $ cd t | ||
$ mkdir a | ||||
$ echo foo > a/a | ||||
$ echo bar > a/b | ||||
$ hg ci -Am "0" | ||||
adding a/a | ||||
adding a/b | ||||
$ hg co -C 0 | ||||
0 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ hg mv a b | ||||
|
r15447 | moving a/a to b/a (glob) | ||
moving a/b to b/b (glob) | ||||
|
r12114 | $ hg ci -m "1 mv a/ b/" | ||
$ hg co -C 0 | ||||
2 files updated, 0 files merged, 2 files removed, 0 files unresolved | ||||
$ echo baz > a/c | ||||
$ echo quux > a/d | ||||
$ hg add a/c | ||||
$ hg ci -m "2 add a/c" | ||||
created new head | ||||
$ hg merge --debug 1 | ||||
searching for copies back to rev 1 | ||||
unmatched files in local: | ||||
a/c | ||||
unmatched files in other: | ||||
b/a | ||||
b/b | ||||
|
r16795 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||
|
r18135 | src: 'a/a' -> dst: 'b/a' | ||
src: 'a/b' -> dst: 'b/b' | ||||
|
r12114 | checking for directory renames | ||
|
r18135 | discovered dir src: 'a/' -> dst: 'b/' | ||
pending file src: 'a/c' -> dst: 'b/c' | ||||
|
r12114 | resolving manifests | ||
|
r18605 | branchmerge: True, force: False, partial: False | ||
|
r15625 | ancestor: f9b20c0d4c51, local: ce36d17b18fb+, remote: 397f8b00a740 | ||
|
r18360 | a/a: other deleted -> r | ||
|
r21391 | removing a/a | ||
|
r12114 | a/b: other deleted -> r | ||
removing a/b | ||||
|
r19095 | updating: a/b 2/5 files (40.00%) | ||
|
r21391 | b/a: remote created -> g | ||
|
r18631 | getting b/a | ||
|
r21391 | b/b: remote created -> g | ||
|
r18631 | getting b/b | ||
updating: b/b 4/5 files (80.00%) | ||||
|
r21391 | b/c: remote directory rename - move from a/c -> dm | ||
|
r20944 | updating: b/c 5/5 files (100.00%) | ||
|
r19133 | moving a/c to b/c (glob) | ||
|
r16094 | 3 files updated, 0 files merged, 2 files removed, 0 files unresolved | ||
|
r12114 | (branch merge, don't forget to commit) | ||
$ echo a/* b/* | ||||
|
r16094 | a/d b/a b/b b/c | ||
|
r12114 | $ hg st -C | ||
M b/a | ||||
M b/b | ||||
A b/c | ||||
a/c | ||||
R a/a | ||||
R a/b | ||||
R a/c | ||||
|
r16094 | ? a/d | ||
|
r12114 | $ hg ci -m "3 merge 2+1" | ||
$ hg debugrename b/c | ||||
|
r15447 | b/c renamed from a/c:354ae8da6e890359ef49ade27b68bbc361f3ca88 (glob) | ||
|
r12114 | |||
$ hg co -C 1 | ||||
0 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||||
$ hg merge --debug 2 | ||||
searching for copies back to rev 1 | ||||
unmatched files in local: | ||||
b/a | ||||
b/b | ||||
unmatched files in other: | ||||
a/c | ||||
|
r16795 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||
|
r18135 | src: 'a/a' -> dst: 'b/a' | ||
src: 'a/b' -> dst: 'b/b' | ||||
|
r12114 | checking for directory renames | ||
|
r18135 | discovered dir src: 'a/' -> dst: 'b/' | ||
pending file src: 'a/c' -> dst: 'b/c' | ||||
|
r12114 | resolving manifests | ||
|
r18605 | branchmerge: True, force: False, partial: False | ||
|
r15625 | ancestor: f9b20c0d4c51, local: 397f8b00a740+, remote: ce36d17b18fb | ||
|
r20944 | b/c: local directory rename - get from a/c -> dg | ||
updating: b/c 1/1 files (100.00%) | ||||
|
r12114 | getting a/c to b/c | ||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
(branch merge, don't forget to commit) | ||||
$ echo a/* b/* | ||||
|
r16094 | a/d b/a b/b b/c | ||
|
r12114 | $ hg st -C | ||
A b/c | ||||
a/c | ||||
|
r16094 | ? a/d | ||
|
r12114 | $ hg ci -m "4 merge 1+2" | ||
created new head | ||||
$ hg debugrename b/c | ||||
|
r15447 | b/c renamed from a/c:354ae8da6e890359ef49ade27b68bbc361f3ca88 (glob) | ||
|
r12114 | |||
|
r23444 | Local directory rename with conflicting file added in remote source directory | ||
and untracked in local target directory. | ||||
BROKEN: the uncommitted file is overwritten; we should abort | ||||
$ hg co -qC 1 | ||||
$ echo local > b/c | ||||
$ hg merge 2 | ||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
(branch merge, don't forget to commit) | ||||
$ hg st -C | ||||
A b/c | ||||
a/c | ||||
? a/d | ||||
$ cat b/c | ||||
baz | ||||
Local directory rename with conflicting file added in remote source directory | ||||
and committed in local target directory. | ||||
BROKEN: the local file is overwritten; it should be merged | ||||
$ hg co -qC 1 | ||||
$ echo local > b/c | ||||
$ hg add b/c | ||||
$ hg commit -qm 'new file in target directory' | ||||
$ hg merge 2 | ||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
(branch merge, don't forget to commit) | ||||
$ hg st -C | ||||
A b/c | ||||
a/c | ||||
? a/d | ||||
$ cat b/c | ||||
baz | ||||
|
r12114 | |||
Second scenario with two repos: | ||||
$ cd .. | ||||
|
r13956 | $ hg init r1 | ||
|
r12114 | $ cd r1 | ||
$ mkdir a | ||||
$ echo foo > a/f | ||||
$ hg add a | ||||
|
r15447 | adding a/f (glob) | ||
|
r12114 | $ hg ci -m "a/f == foo" | ||
$ cd .. | ||||
$ hg clone r1 r2 | ||||
updating to branch default | ||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ cd r2 | ||||
$ hg mv a b | ||||
|
r15447 | moving a/f to b/f (glob) | ||
|
r12114 | $ echo foo1 > b/f | ||
$ hg ci -m" a -> b, b/f == foo1" | ||||
$ cd .. | ||||
$ cd r1 | ||||
$ mkdir a/aa | ||||
$ echo bar > a/aa/g | ||||
$ hg add a/aa | ||||
|
r15447 | adding a/aa/g (glob) | ||
|
r12114 | $ hg ci -m "a/aa/g" | ||
$ hg pull ../r2 | ||||
pulling from ../r2 | ||||
searching for changes | ||||
adding changesets | ||||
adding manifests | ||||
adding file changes | ||||
added 1 changesets with 1 changes to 1 files (+1 heads) | ||||
(run 'hg heads' to see heads, 'hg merge' to merge) | ||||
$ hg merge | ||||
2 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||||
(branch merge, don't forget to commit) | ||||
$ hg st -C | ||||
M b/f | ||||
A b/aa/g | ||||
a/aa/g | ||||
R a/aa/g | ||||
R a/f | ||||
|
r16913 | |||
$ cd .. | ||||