test-rename-merge1.t
256 lines
| 6.7 KiB
| text/troff
|
Tads3Lexer
/ tests / test-rename-merge1.t
|
r12298 | $ hg init | ||
$ echo "[merge]" >> .hg/hgrc | ||||
$ echo "followcopies = 1" >> .hg/hgrc | ||||
$ echo foo > a | ||||
$ echo foo > a2 | ||||
$ hg add a a2 | ||||
$ hg ci -m "start" | ||||
$ hg mv a b | ||||
$ hg mv a2 b2 | ||||
$ hg ci -m "rename" | ||||
$ hg co 0 | ||||
2 files updated, 0 files merged, 2 files removed, 0 files unresolved | ||||
$ echo blahblah > a | ||||
$ echo blahblah > a2 | ||||
$ hg mv a2 c2 | ||||
$ hg ci -m "modify" | ||||
created new head | ||||
$ hg merge -y --debug | ||||
unmatched files in local: | ||||
c2 | ||||
unmatched files in other: | ||||
b | ||||
b2 | ||||
|
r16795 | all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||
|
r18135 | src: 'a' -> dst: 'b' * | ||
src: 'a2' -> dst: 'b2' ! | ||||
|
r18362 | src: 'a2' -> dst: 'c2' ! | ||
|
r12298 | checking for directory renames | ||
resolving manifests | ||||
|
r18605 | branchmerge: True, force: False, partial: False | ||
|
r15625 | ancestor: af1939970a1c, local: 044f8520aeeb+, remote: 85c198ef2f6c | ||
|
r26957 | note: possible conflict - a2 was renamed multiple times to: | ||
|
r42279 | b2 | ||
|
r26957 | c2 | ||
|
r21391 | preserving a for resolve of b | ||
removing a | ||||
|
r21389 | b2: remote created -> g | ||
|
r18631 | getting b2 | ||
|
r26618 | b: remote moved from a -> m (premerge) | ||
|
r27161 | picked tool ':merge' for b (binary False symlink False changedelete False) | ||
|
r12298 | merging a and b to b | ||
my b@044f8520aeeb+ other b@85c198ef2f6c ancestor a@af1939970a1c | ||||
premerge successful | ||||
1 files updated, 1 files merged, 0 files removed, 0 files unresolved | ||||
(branch merge, don't forget to commit) | ||||
$ hg status -AC | ||||
M b | ||||
a | ||||
M b2 | ||||
R a | ||||
C c2 | ||||
$ cat b | ||||
blahblah | ||||
$ hg ci -m "merge" | ||||
|
r14182 | $ hg debugindex b | ||
|
r37301 | rev linkrev nodeid p1 p2 | ||
0 1 57eacc201a7f 000000000000 000000000000 | ||||
1 3 4727ba907962 000000000000 57eacc201a7f | ||||
|
r12298 | |||
$ hg debugrename b | ||||
b renamed from a:dd03b83622e78778b403775d0d074b9ac7387a66 | ||||
|
r12683 | This used to trigger a "divergent renames" warning, despite no renames | ||
$ hg cp b b3 | ||||
$ hg cp b b4 | ||||
$ hg ci -A -m 'copy b twice' | ||||
|
r42359 | $ hg up '.^' | ||
|
r12683 | 0 files updated, 0 files merged, 2 files removed, 0 files unresolved | ||
$ hg up | ||||
2 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ hg rm b3 b4 | ||||
$ hg ci -m 'clean up a bit of our mess' | ||||
We'd rather not warn on divergent renames done in the same changeset (issue2113) | ||||
$ hg cp b b3 | ||||
$ hg mv b b4 | ||||
$ hg ci -A -m 'divergent renames in same changeset' | ||||
|
r42359 | $ hg up '.^' | ||
|
r12683 | 1 files updated, 0 files merged, 2 files removed, 0 files unresolved | ||
$ hg up | ||||
2 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||||
|
r13468 | |||
Check for issue2642 | ||||
$ hg init t | ||||
$ cd t | ||||
$ echo c0 > f1 | ||||
$ hg ci -Aqm0 | ||||
$ hg up null -q | ||||
$ echo c1 > f1 # backport | ||||
$ hg ci -Aqm1 | ||||
$ hg mv f1 f2 | ||||
$ hg ci -qm2 | ||||
$ hg up 0 -q | ||||
$ hg merge 1 -q --tool internal:local | ||||
$ hg ci -qm3 | ||||
$ hg merge 2 | ||||
merging f1 and f2 to f2 | ||||
0 files updated, 1 files merged, 0 files removed, 0 files unresolved | ||||
(branch merge, don't forget to commit) | ||||
$ cat f2 | ||||
c0 | ||||
|
r13492 | |||
|
r16793 | $ cd .. | ||
|
r13492 | Check for issue2089 | ||
$ hg init repo2089 | ||||
$ cd repo2089 | ||||
|
r13537 | $ echo c0 > f1 | ||
$ hg ci -Aqm0 | ||||
|
r13492 | |||
|
r13537 | $ hg up null -q | ||
$ echo c1 > f1 | ||||
$ hg ci -Aqm1 | ||||
|
r13492 | |||
|
r13537 | $ hg up 0 -q | ||
|
r13492 | $ hg merge 1 -q --tool internal:local | ||
|
r13537 | $ echo c2 > f1 | ||
$ hg ci -qm2 | ||||
|
r13492 | |||
|
r13537 | $ hg up 1 -q | ||
$ hg mv f1 f2 | ||||
$ hg ci -Aqm3 | ||||
|
r13492 | |||
|
r13537 | $ hg up 2 -q | ||
|
r13492 | $ hg merge 3 | ||
|
r13537 | merging f1 and f2 to f2 | ||
|
r13492 | 0 files updated, 1 files merged, 0 files removed, 0 files unresolved | ||
(branch merge, don't forget to commit) | ||||
|
r13537 | $ cat f2 | ||
c2 | ||||
|
r16793 | |||
$ cd .. | ||||
|
r16794 | |||
Check for issue3074 | ||||
$ hg init repo3074 | ||||
$ cd repo3074 | ||||
$ echo foo > file | ||||
$ hg add file | ||||
$ hg commit -m "added file" | ||||
$ hg mv file newfile | ||||
$ hg commit -m "renamed file" | ||||
$ hg update 0 | ||||
1 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||||
$ hg rm file | ||||
$ hg commit -m "deleted file" | ||||
created new head | ||||
|
r16795 | $ hg merge --debug | ||
unmatched files in other: | ||||
newfile | ||||
all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||||
|
r18135 | src: 'file' -> dst: 'newfile' % | ||
|
r16795 | checking for directory renames | ||
resolving manifests | ||||
|
r18605 | branchmerge: True, force: False, partial: False | ||
|
r16795 | ancestor: 19d7f95df299, local: 0084274f6b67+, remote: 5d32493049f0 | ||
|
r26957 | note: possible conflict - file was deleted and renamed to: | ||
newfile | ||||
|
r21389 | newfile: remote created -> g | ||
|
r18631 | getting newfile | ||
|
r16794 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||
(branch merge, don't forget to commit) | ||||
$ hg status | ||||
M newfile | ||||
$ cd .. | ||||
|
r44621 | |||
Create x and y, then modify y and rename x to z on one side of merge, and | ||||
modify x and rename y to z on the other side. | ||||
$ hg init conflicting-target | ||||
$ cd conflicting-target | ||||
$ echo x > x | ||||
$ echo y > y | ||||
$ hg ci -Aqm 'add x and y' | ||||
$ hg mv x z | ||||
$ echo foo >> y | ||||
$ hg ci -qm 'modify y, rename x to z' | ||||
$ hg co -q 0 | ||||
$ hg mv y z | ||||
$ echo foo >> x | ||||
$ hg ci -qm 'modify x, rename y to z' | ||||
# We should probably tell the user about the conflicting rename sources. | ||||
# 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 | ||||
# remain. | ||||
# we should not get the prompts about modify/delete conflicts | ||||
$ hg merge --debug 1 -t :merge3 | ||||
all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||||
src: 'x' -> dst: 'z' | ||||
checking for directory renames | ||||
resolving manifests | ||||
branchmerge: True, force: False, partial: False | ||||
ancestor: 5151c134577e, local: 07fcbc9a74ed+, remote: f21419739508 | ||||
preserving x for resolve of x | ||||
preserving z for resolve of z | ||||
|
r44651 | starting 4 threads for background file closing (?) | ||
|
r44621 | x: prompt changed/deleted -> m (premerge) | ||
picked tool ':prompt' for x (binary False symlink False changedelete True) | ||||
file 'x' was deleted in other [merge rev] but was modified in local [working copy]. | ||||
You can use (c)hanged version, (d)elete, or leave (u)nresolved. | ||||
What do you want to do? u | ||||
y: prompt deleted/changed -> m (premerge) | ||||
picked tool ':prompt' for y (binary False symlink False changedelete True) | ||||
file 'y' was deleted in local [working copy] but was modified in other [merge rev]. | ||||
You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved. | ||||
What do you want to do? u | ||||
z: both created -> m (premerge) | ||||
picked tool ':merge3' for z (binary False symlink False changedelete False) | ||||
merging z | ||||
my z@07fcbc9a74ed+ other z@f21419739508 ancestor z@000000000000 | ||||
z: both created -> m (merge) | ||||
picked tool ':merge3' for z (binary False symlink False changedelete False) | ||||
my z@07fcbc9a74ed+ other z@f21419739508 ancestor z@000000000000 | ||||
warning: conflicts while merging z! (edit, then use 'hg resolve --mark') | ||||
0 files updated, 0 files merged, 0 files removed, 3 files unresolved | ||||
use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon | ||||
[1] | ||||
$ ls | ||||
x | ||||
y | ||||
z | ||||
z.orig | ||||
$ cat x | ||||
x | ||||
foo | ||||
$ cat y | ||||
y | ||||
foo | ||||
# 'z' should have had the added 'foo' line | ||||
$ cat z | ||||
<<<<<<< working copy: 07fcbc9a74ed - test: modify x, rename y to z | ||||
y | ||||
||||||| base | ||||
======= | ||||
x | ||||
>>>>>>> merge rev: f21419739508 - test: modify y, rename x to z | ||||