test-merge-changedelete.t
1140 lines
| 38.8 KiB
| text/troff
|
Tads3Lexer
/ tests / test-merge-changedelete.t
|
r27137 | Tests for change/delete conflicts, including: | ||
|
r26947 | b5605d88dc27: Make ui.prompt repeat on "unrecognized response" again | ||
(issue897) | ||||
840e2b315c1f: Fix misleading error and prompts during update/merge | ||||
(issue556) | ||||
Make sure HGMERGE doesn't interfere with the test | ||||
$ unset HGMERGE | ||||
$ status() { | ||||
> echo "--- status ---" | ||||
|
r27125 | > hg st -A file1 file2 file3 | ||
|
r27126 | > echo "--- resolve --list ---" | ||
> hg resolve --list file1 file2 file3 | ||||
|
r27136 | > echo "--- debugmergestate ---" | ||
> hg debugmergestate | ||||
|
r27125 | > for file in file1 file2 file3; do | ||
|
r26947 | > if [ -f $file ]; then | ||
> echo "--- $file ---" | ||||
> cat $file | ||||
> else | ||||
> echo "*** $file does not exist" | ||||
> fi | ||||
> done | ||||
> } | ||||
|
r27137 | $ hg init repo | ||
$ cd repo | ||||
|
r26947 | |||
$ echo 1 > file1 | ||||
$ echo 2 > file2 | ||||
|
r27125 | $ echo 3 > file3 | ||
$ hg ci -Am 'added files' | ||||
|
r26947 | adding file1 | ||
adding file2 | ||||
|
r27125 | adding file3 | ||
|
r26947 | |||
$ hg rm file1 | ||||
$ echo changed >> file2 | ||||
|
r27125 | $ echo changed1 >> file3 | ||
$ hg ci -m 'removed file1, changed file2, changed file3' | ||||
|
r26947 | |||
$ hg co 0 | ||||
|
r27125 | 3 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||
|
r26947 | |||
$ echo changed >> file1 | ||||
$ hg rm file2 | ||||
|
r27125 | $ echo changed2 >> file3 | ||
$ hg ci -m 'changed file1, removed file2, changed file3' | ||||
|
r26947 | created new head | ||
Non-interactive merge: | ||||
$ hg merge -y | ||||
|
r39321 | file 'file1' was deleted in other [merge rev] but was modified in local [working copy]. | ||
|
r42765 | You can use (c)hanged version, (d)elete, or leave (u)nresolved. | ||
What do you want to do? u | ||||
|
r39321 | file 'file2' was deleted in local [working copy] but was modified in other [merge rev]. | ||
|
r42765 | You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved. | ||
What do you want to do? u | ||||
|
r27125 | merging file3 | ||
warning: conflicts while merging file3! (edit, then use 'hg resolve --mark') | ||||
|
r27599 | 0 files updated, 0 files merged, 0 files removed, 3 files unresolved | ||
|
r35722 | use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon | ||
|
r27125 | [1] | ||
|
r26947 | |||
$ status | ||||
--- status --- | ||||
M file2 | ||||
|
r27125 | M file3 | ||
|
r26947 | C file1 | ||
|
r27126 | --- resolve --list --- | ||
|
r27599 | U file1 | ||
U file2 | ||||
|
r27126 | U file3 | ||
|
r27136 | --- debugmergestate --- | ||
* version 2 records | ||||
local: 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4 | ||||
other: 10f9a0a634e82080907e62f075ab119cbc565ea6 | ||||
|
r30062 | labels: | ||
local: working copy | ||||
other: merge rev | ||||
|
r28011 | file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff) | ||
|
r27599 | file: file1 (record type "C", state "u", hash 60b27f004e454aca81b0480209cce5081ec52390) | ||
|
r27137 | local path: file1 (flags "") | ||
ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be) | ||||
other path: file1 (node null) | ||||
|
r28011 | file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff) | ||
|
r27599 | file: file2 (record type "C", state "u", hash null) | ||
|
r27137 | local path: file2 (flags "") | ||
ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e) | ||||
other path: file2 (node e7c1328648519852e723de86c0c0525acd779257) | ||||
|
r28011 | file extras: file3 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff) | ||
|
r27136 | file: file3 (record type "F", state "u", hash d5b0a58bc47161b1b8a831084b366f757c4f0b11) | ||
local path: file3 (flags "") | ||||
ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4) | ||||
other path: file3 (node a2644c43e210356772c7772a8674544a62e06beb) | ||||
|
r26947 | --- file1 --- | ||
1 | ||||
changed | ||||
--- file2 --- | ||||
2 | ||||
changed | ||||
|
r27125 | --- file3 --- | ||
3 | ||||
|
r30062 | <<<<<<< working copy: 13910f48cf7b - test: changed file1, removed file2, chan... | ||
|
r27125 | changed2 | ||
======= | ||||
changed1 | ||||
|
r30460 | >>>>>>> merge rev: 10f9a0a634e8 - test: removed file1, changed file2, chan... | ||
|
r26947 | |||
Interactive merge: | ||||
$ hg co -C | ||||
|
r27125 | 1 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||
|
r32698 | updated to "13910f48cf7b: changed file1, removed file2, changed file3" | ||
|
r28029 | 1 other heads for branch "default" | ||
|
r26947 | |||
$ hg merge --config ui.interactive=true <<EOF | ||||
> c | ||||
> d | ||||
> EOF | ||||
|
r39321 | file 'file1' was deleted in other [merge rev] but was modified in local [working copy]. | ||
|
r42765 | You can use (c)hanged version, (d)elete, or leave (u)nresolved. | ||
What do you want to do? c | ||||
|
r39321 | file 'file2' was deleted in local [working copy] but was modified in other [merge rev]. | ||
|
r42765 | You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved. | ||
What do you want to do? d | ||||
|
r27125 | merging file3 | ||
warning: conflicts while merging file3! (edit, then use 'hg resolve --mark') | ||||
|
r27137 | 0 files updated, 2 files merged, 0 files removed, 1 files unresolved | ||
|
r35722 | use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon | ||
|
r27125 | [1] | ||
|
r26947 | |||
$ status | ||||
--- status --- | ||||
file2: * (glob) | ||||
|
r27125 | M file3 | ||
|
r26947 | C file1 | ||
|
r27126 | --- resolve --list --- | ||
|
r27137 | R file1 | ||
R file2 | ||||
|
r27126 | U file3 | ||
|
r27136 | --- debugmergestate --- | ||
* version 2 records | ||||
local: 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4 | ||||
other: 10f9a0a634e82080907e62f075ab119cbc565ea6 | ||||
|
r30062 | labels: | ||
local: working copy | ||||
other: merge rev | ||||
|
r28011 | file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff) | ||
|
r27137 | file: file1 (record type "C", state "r", hash 60b27f004e454aca81b0480209cce5081ec52390) | ||
local path: file1 (flags "") | ||||
ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be) | ||||
other path: file1 (node null) | ||||
|
r28011 | file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff) | ||
|
r27137 | file: file2 (record type "C", state "r", hash null) | ||
local path: file2 (flags "") | ||||
ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e) | ||||
other path: file2 (node e7c1328648519852e723de86c0c0525acd779257) | ||||
|
r28011 | file extras: file3 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff) | ||
|
r27136 | file: file3 (record type "F", state "u", hash d5b0a58bc47161b1b8a831084b366f757c4f0b11) | ||
local path: file3 (flags "") | ||||
ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4) | ||||
other path: file3 (node a2644c43e210356772c7772a8674544a62e06beb) | ||||
|
r26947 | --- file1 --- | ||
1 | ||||
changed | ||||
*** file2 does not exist | ||||
|
r27125 | --- file3 --- | ||
3 | ||||
|
r30062 | <<<<<<< working copy: 13910f48cf7b - test: changed file1, removed file2, chan... | ||
|
r27125 | changed2 | ||
======= | ||||
changed1 | ||||
|
r30460 | >>>>>>> merge rev: 10f9a0a634e8 - test: removed file1, changed file2, chan... | ||
|
r26947 | |||
Interactive merge with bad input: | ||||
$ hg co -C | ||||
|
r27125 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||
|
r32698 | updated to "13910f48cf7b: changed file1, removed file2, changed file3" | ||
|
r28029 | 1 other heads for branch "default" | ||
|
r26947 | |||
$ hg merge --config ui.interactive=true <<EOF | ||||
> foo | ||||
> bar | ||||
> d | ||||
> baz | ||||
> c | ||||
> EOF | ||||
|
r39321 | file 'file1' was deleted in other [merge rev] but was modified in local [working copy]. | ||
|
r42765 | You can use (c)hanged version, (d)elete, or leave (u)nresolved. | ||
What do you want to do? foo | ||||
|
r26947 | unrecognized response | ||
|
r39321 | file 'file1' was deleted in other [merge rev] but was modified in local [working copy]. | ||
|
r42765 | You can use (c)hanged version, (d)elete, or leave (u)nresolved. | ||
What do you want to do? bar | ||||
|
r26947 | unrecognized response | ||
|
r39321 | file 'file1' was deleted in other [merge rev] but was modified in local [working copy]. | ||
|
r42765 | You can use (c)hanged version, (d)elete, or leave (u)nresolved. | ||
What do you want to do? d | ||||
|
r39321 | file 'file2' was deleted in local [working copy] but was modified in other [merge rev]. | ||
|
r42765 | You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved. | ||
What do you want to do? baz | ||||
|
r26947 | unrecognized response | ||
|
r39321 | file 'file2' was deleted in local [working copy] but was modified in other [merge rev]. | ||
|
r42765 | You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved. | ||
What do you want to do? c | ||||
|
r27125 | merging file3 | ||
warning: conflicts while merging file3! (edit, then use 'hg resolve --mark') | ||||
|
r27137 | 0 files updated, 1 files merged, 1 files removed, 1 files unresolved | ||
|
r35722 | use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon | ||
|
r27125 | [1] | ||
|
r26947 | |||
$ status | ||||
--- status --- | ||||
M file2 | ||||
|
r27125 | M file3 | ||
|
r26947 | R file1 | ||
|
r27126 | --- resolve --list --- | ||
|
r27137 | R file1 | ||
R file2 | ||||
|
r27126 | U file3 | ||
|
r27136 | --- debugmergestate --- | ||
* version 2 records | ||||
local: 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4 | ||||
other: 10f9a0a634e82080907e62f075ab119cbc565ea6 | ||||
|
r30062 | labels: | ||
local: working copy | ||||
other: merge rev | ||||
|
r28011 | file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff) | ||
|
r27137 | file: file1 (record type "C", state "r", hash 60b27f004e454aca81b0480209cce5081ec52390) | ||
local path: file1 (flags "") | ||||
ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be) | ||||
other path: file1 (node null) | ||||
|
r28011 | file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff) | ||
|
r27137 | file: file2 (record type "C", state "r", hash null) | ||
local path: file2 (flags "") | ||||
ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e) | ||||
other path: file2 (node e7c1328648519852e723de86c0c0525acd779257) | ||||
|
r28011 | file extras: file3 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff) | ||
|
r27136 | file: file3 (record type "F", state "u", hash d5b0a58bc47161b1b8a831084b366f757c4f0b11) | ||
local path: file3 (flags "") | ||||
ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4) | ||||
other path: file3 (node a2644c43e210356772c7772a8674544a62e06beb) | ||||
|
r26947 | *** file1 does not exist | ||
--- file2 --- | ||||
2 | ||||
changed | ||||
|
r27125 | --- file3 --- | ||
3 | ||||
|
r30062 | <<<<<<< working copy: 13910f48cf7b - test: changed file1, removed file2, chan... | ||
|
r27125 | changed2 | ||
======= | ||||
changed1 | ||||
|
r30460 | >>>>>>> merge rev: 10f9a0a634e8 - test: removed file1, changed file2, chan... | ||
|
r26947 | |||
Interactive merge with not enough input: | ||||
$ hg co -C | ||||
|
r27125 | 2 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||
|
r32698 | updated to "13910f48cf7b: changed file1, removed file2, changed file3" | ||
|
r28029 | 1 other heads for branch "default" | ||
|
r26947 | |||
$ hg merge --config ui.interactive=true <<EOF | ||||
> d | ||||
> EOF | ||||
|
r39321 | file 'file1' was deleted in other [merge rev] but was modified in local [working copy]. | ||
|
r42765 | You can use (c)hanged version, (d)elete, or leave (u)nresolved. | ||
What do you want to do? d | ||||
|
r39321 | file 'file2' was deleted in local [working copy] but was modified in other [merge rev]. | ||
|
r42765 | You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved. | ||
What do you want to do? | ||||
|
r27137 | merging file3 | ||
warning: conflicts while merging file3! (edit, then use 'hg resolve --mark') | ||||
0 files updated, 0 files merged, 1 files removed, 2 files unresolved | ||||
|
r35722 | use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon | ||
|
r27137 | [1] | ||
|
r26947 | |||
$ status | ||||
--- status --- | ||||
|
r27137 | M file2 | ||
M file3 | ||||
R file1 | ||||
--- resolve --list --- | ||||
R file1 | ||||
U file2 | ||||
U file3 | ||||
--- debugmergestate --- | ||||
* version 2 records | ||||
local: 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4 | ||||
other: 10f9a0a634e82080907e62f075ab119cbc565ea6 | ||||
|
r30062 | labels: | ||
local: working copy | ||||
other: merge rev | ||||
|
r28011 | file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff) | ||
|
r27137 | file: file1 (record type "C", state "r", hash 60b27f004e454aca81b0480209cce5081ec52390) | ||
local path: file1 (flags "") | ||||
ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be) | ||||
other path: file1 (node null) | ||||
|
r28011 | file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff) | ||
|
r27137 | file: file2 (record type "C", state "u", hash null) | ||
local path: file2 (flags "") | ||||
ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e) | ||||
other path: file2 (node e7c1328648519852e723de86c0c0525acd779257) | ||||
|
r28011 | file extras: file3 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff) | ||
|
r27137 | file: file3 (record type "F", state "u", hash d5b0a58bc47161b1b8a831084b366f757c4f0b11) | ||
local path: file3 (flags "") | ||||
ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4) | ||||
other path: file3 (node a2644c43e210356772c7772a8674544a62e06beb) | ||||
*** file1 does not exist | ||||
--- file2 --- | ||||
2 | ||||
changed | ||||
--- file3 --- | ||||
3 | ||||
|
r30062 | <<<<<<< working copy: 13910f48cf7b - test: changed file1, removed file2, chan... | ||
|
r27137 | changed2 | ||
======= | ||||
changed1 | ||||
|
r30460 | >>>>>>> merge rev: 10f9a0a634e8 - test: removed file1, changed file2, chan... | ||
|
r27137 | |||
Choose local versions of files | ||||
$ hg co -C | ||||
2 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||||
|
r32698 | updated to "13910f48cf7b: changed file1, removed file2, changed file3" | ||
|
r28029 | 1 other heads for branch "default" | ||
|
r27137 | |||
$ hg merge --tool :local | ||||
0 files updated, 3 files merged, 0 files removed, 0 files unresolved | ||||
(branch merge, don't forget to commit) | ||||
$ status 2>&1 | tee $TESTTMP/local.status | ||||
--- status --- | ||||
|
r26947 | file2: * (glob) | ||
|
r27137 | M file3 | ||
|
r26947 | C file1 | ||
|
r27126 | --- resolve --list --- | ||
|
r27137 | R file1 | ||
R file2 | ||||
R file3 | ||||
|
r27136 | --- debugmergestate --- | ||
|
r27137 | * version 2 records | ||
local: 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4 | ||||
other: 10f9a0a634e82080907e62f075ab119cbc565ea6 | ||||
|
r30062 | labels: | ||
local: working copy | ||||
other: merge rev | ||||
|
r28011 | file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff) | ||
|
r27137 | file: file1 (record type "C", state "r", hash 60b27f004e454aca81b0480209cce5081ec52390) | ||
local path: file1 (flags "") | ||||
ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be) | ||||
other path: file1 (node null) | ||||
|
r28011 | file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff) | ||
|
r27137 | file: file2 (record type "C", state "r", hash null) | ||
local path: file2 (flags "") | ||||
ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e) | ||||
other path: file2 (node e7c1328648519852e723de86c0c0525acd779257) | ||||
|
r28011 | file extras: file3 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff) | ||
|
r27137 | file: file3 (record type "F", state "r", hash d5b0a58bc47161b1b8a831084b366f757c4f0b11) | ||
local path: file3 (flags "") | ||||
ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4) | ||||
other path: file3 (node a2644c43e210356772c7772a8674544a62e06beb) | ||||
|
r26947 | --- file1 --- | ||
1 | ||||
changed | ||||
*** file2 does not exist | ||||
|
r27125 | --- file3 --- | ||
3 | ||||
changed2 | ||||
|
r26947 | |||
|
r27137 | Choose other versions of files | ||
$ hg co -C | ||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
|
r32698 | updated to "13910f48cf7b: changed file1, removed file2, changed file3" | ||
|
r28029 | 1 other heads for branch "default" | ||
|
r27137 | |||
$ hg merge --tool :other | ||||
0 files updated, 2 files merged, 1 files removed, 0 files unresolved | ||||
(branch merge, don't forget to commit) | ||||
$ status 2>&1 | tee $TESTTMP/other.status | ||||
--- status --- | ||||
M file2 | ||||
M file3 | ||||
R file1 | ||||
--- resolve --list --- | ||||
R file1 | ||||
R file2 | ||||
R file3 | ||||
--- debugmergestate --- | ||||
* version 2 records | ||||
local: 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4 | ||||
other: 10f9a0a634e82080907e62f075ab119cbc565ea6 | ||||
|
r30062 | labels: | ||
local: working copy | ||||
other: merge rev | ||||
|
r28011 | file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff) | ||
|
r27137 | file: file1 (record type "C", state "r", hash 60b27f004e454aca81b0480209cce5081ec52390) | ||
local path: file1 (flags "") | ||||
ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be) | ||||
other path: file1 (node null) | ||||
|
r28011 | file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff) | ||
|
r27137 | file: file2 (record type "C", state "r", hash null) | ||
local path: file2 (flags "") | ||||
ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e) | ||||
other path: file2 (node e7c1328648519852e723de86c0c0525acd779257) | ||||
|
r28011 | file extras: file3 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff) | ||
|
r27137 | file: file3 (record type "F", state "r", hash d5b0a58bc47161b1b8a831084b366f757c4f0b11) | ||
local path: file3 (flags "") | ||||
ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4) | ||||
other path: file3 (node a2644c43e210356772c7772a8674544a62e06beb) | ||||
*** file1 does not exist | ||||
--- file2 --- | ||||
2 | ||||
changed | ||||
--- file3 --- | ||||
3 | ||||
changed1 | ||||
Fail | ||||
$ hg co -C | ||||
2 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||||
|
r32698 | updated to "13910f48cf7b: changed file1, removed file2, changed file3" | ||
|
r28029 | 1 other heads for branch "default" | ||
|
r27137 | |||
$ hg merge --tool :fail | ||||
0 files updated, 0 files merged, 0 files removed, 3 files unresolved | ||||
|
r35722 | use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon | ||
|
r27137 | [1] | ||
$ status 2>&1 | tee $TESTTMP/fail.status | ||||
--- status --- | ||||
M file2 | ||||
M file3 | ||||
C file1 | ||||
--- resolve --list --- | ||||
U file1 | ||||
U file2 | ||||
U file3 | ||||
--- debugmergestate --- | ||||
* version 2 records | ||||
local: 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4 | ||||
other: 10f9a0a634e82080907e62f075ab119cbc565ea6 | ||||
|
r30062 | labels: | ||
local: working copy | ||||
other: merge rev | ||||
|
r28011 | file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff) | ||
|
r27137 | file: file1 (record type "C", state "u", hash 60b27f004e454aca81b0480209cce5081ec52390) | ||
local path: file1 (flags "") | ||||
ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be) | ||||
other path: file1 (node null) | ||||
|
r28011 | file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff) | ||
|
r27137 | file: file2 (record type "C", state "u", hash null) | ||
local path: file2 (flags "") | ||||
ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e) | ||||
other path: file2 (node e7c1328648519852e723de86c0c0525acd779257) | ||||
|
r28011 | file extras: file3 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff) | ||
|
r27137 | file: file3 (record type "F", state "u", hash d5b0a58bc47161b1b8a831084b366f757c4f0b11) | ||
local path: file3 (flags "") | ||||
ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4) | ||||
other path: file3 (node a2644c43e210356772c7772a8674544a62e06beb) | ||||
--- file1 --- | ||||
1 | ||||
changed | ||||
--- file2 --- | ||||
2 | ||||
changed | ||||
--- file3 --- | ||||
3 | ||||
changed2 | ||||
Force prompts with no input (should be similar to :fail) | ||||
$ hg co -C | ||||
1 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||||
|
r32698 | updated to "13910f48cf7b: changed file1, removed file2, changed file3" | ||
|
r28029 | 1 other heads for branch "default" | ||
|
r27137 | |||
$ hg merge --config ui.interactive=True --tool :prompt | ||||
|
r39321 | file 'file1' was deleted in other [merge rev] but was modified in local [working copy]. | ||
|
r42765 | You can use (c)hanged version, (d)elete, or leave (u)nresolved. | ||
What do you want to do? | ||||
|
r39321 | file 'file2' was deleted in local [working copy] but was modified in other [merge rev]. | ||
|
r42765 | You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved. | ||
What do you want to do? | ||||
file 'file3' needs to be resolved. | ||||
You can keep (l)ocal [working copy], take (o)ther [merge rev], or leave (u)nresolved. | ||||
What do you want to do? | ||||
|
r27137 | 0 files updated, 0 files merged, 0 files removed, 3 files unresolved | ||
|
r35722 | use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon | ||
|
r27137 | [1] | ||
$ status 2>&1 | tee $TESTTMP/prompt.status | ||||
--- status --- | ||||
M file2 | ||||
M file3 | ||||
C file1 | ||||
--- resolve --list --- | ||||
U file1 | ||||
U file2 | ||||
U file3 | ||||
--- debugmergestate --- | ||||
* version 2 records | ||||
local: 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4 | ||||
other: 10f9a0a634e82080907e62f075ab119cbc565ea6 | ||||
|
r30062 | labels: | ||
local: working copy | ||||
other: merge rev | ||||
|
r28011 | file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff) | ||
|
r27137 | file: file1 (record type "C", state "u", hash 60b27f004e454aca81b0480209cce5081ec52390) | ||
local path: file1 (flags "") | ||||
ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be) | ||||
other path: file1 (node null) | ||||
|
r28011 | file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff) | ||
|
r27137 | file: file2 (record type "C", state "u", hash null) | ||
local path: file2 (flags "") | ||||
ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e) | ||||
other path: file2 (node e7c1328648519852e723de86c0c0525acd779257) | ||||
|
r28011 | file extras: file3 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff) | ||
|
r27137 | file: file3 (record type "F", state "u", hash d5b0a58bc47161b1b8a831084b366f757c4f0b11) | ||
local path: file3 (flags "") | ||||
ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4) | ||||
other path: file3 (node a2644c43e210356772c7772a8674544a62e06beb) | ||||
--- file1 --- | ||||
1 | ||||
changed | ||||
--- file2 --- | ||||
2 | ||||
changed | ||||
--- file3 --- | ||||
3 | ||||
changed2 | ||||
|
r27557 | $ cmp $TESTTMP/fail.status $TESTTMP/prompt.status || diff -U8 $TESTTMP/fail.status $TESTTMP/prompt.status | ||
|
r27137 | |||
Force prompts | ||||
$ hg co -C | ||||
1 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||||
|
r32698 | updated to "13910f48cf7b: changed file1, removed file2, changed file3" | ||
|
r28029 | 1 other heads for branch "default" | ||
|
r27137 | |||
$ hg merge --tool :prompt | ||||
|
r39321 | file 'file1' was deleted in other [merge rev] but was modified in local [working copy]. | ||
|
r42765 | You can use (c)hanged version, (d)elete, or leave (u)nresolved. | ||
What do you want to do? u | ||||
|
r39321 | file 'file2' was deleted in local [working copy] but was modified in other [merge rev]. | ||
|
r42765 | You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved. | ||
What do you want to do? u | ||||
file 'file3' needs to be resolved. | ||||
You can keep (l)ocal [working copy], take (o)ther [merge rev], or leave (u)nresolved. | ||||
What do you want to do? u | ||||
|
r27599 | 0 files updated, 0 files merged, 0 files removed, 3 files unresolved | ||
|
r35722 | use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon | ||
|
r27164 | [1] | ||
|
r27137 | $ status | ||
--- status --- | ||||
M file2 | ||||
M file3 | ||||
C file1 | ||||
--- resolve --list --- | ||||
|
r27599 | U file1 | ||
U file2 | ||||
|
r27164 | U file3 | ||
|
r27137 | --- debugmergestate --- | ||
* version 2 records | ||||
local: 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4 | ||||
other: 10f9a0a634e82080907e62f075ab119cbc565ea6 | ||||
|
r30062 | labels: | ||
local: working copy | ||||
other: merge rev | ||||
|
r28011 | file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff) | ||
|
r27599 | file: file1 (record type "C", state "u", hash 60b27f004e454aca81b0480209cce5081ec52390) | ||
|
r27137 | local path: file1 (flags "") | ||
ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be) | ||||
other path: file1 (node null) | ||||
|
r28011 | file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff) | ||
|
r27599 | file: file2 (record type "C", state "u", hash null) | ||
|
r27137 | local path: file2 (flags "") | ||
ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e) | ||||
other path: file2 (node e7c1328648519852e723de86c0c0525acd779257) | ||||
|
r28011 | file extras: file3 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff) | ||
|
r27164 | file: file3 (record type "F", state "u", hash d5b0a58bc47161b1b8a831084b366f757c4f0b11) | ||
|
r27137 | local path: file3 (flags "") | ||
ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4) | ||||
other path: file3 (node a2644c43e210356772c7772a8674544a62e06beb) | ||||
--- file1 --- | ||||
1 | ||||
changed | ||||
--- file2 --- | ||||
2 | ||||
changed | ||||
--- file3 --- | ||||
3 | ||||
changed2 | ||||
Choose to merge all files | ||||
$ hg co -C | ||||
1 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||||
|
r32698 | updated to "13910f48cf7b: changed file1, removed file2, changed file3" | ||
|
r28029 | 1 other heads for branch "default" | ||
|
r27137 | |||
$ hg merge --tool :merge3 | ||||
|
r39321 | file 'file1' was deleted in other [merge rev] but was modified in local [working copy]. | ||
|
r42765 | You can use (c)hanged version, (d)elete, or leave (u)nresolved. | ||
What do you want to do? u | ||||
|
r39321 | file 'file2' was deleted in local [working copy] but was modified in other [merge rev]. | ||
|
r42765 | You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved. | ||
What do you want to do? u | ||||
|
r27137 | merging file3 | ||
warning: conflicts while merging file3! (edit, then use 'hg resolve --mark') | ||||
|
r27599 | 0 files updated, 0 files merged, 0 files removed, 3 files unresolved | ||
|
r35722 | use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon | ||
|
r27137 | [1] | ||
$ status | ||||
--- status --- | ||||
M file2 | ||||
M file3 | ||||
C file1 | ||||
--- resolve --list --- | ||||
|
r27599 | U file1 | ||
U file2 | ||||
|
r27137 | U file3 | ||
--- debugmergestate --- | ||||
* version 2 records | ||||
local: 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4 | ||||
other: 10f9a0a634e82080907e62f075ab119cbc565ea6 | ||||
|
r30062 | labels: | ||
local: working copy | ||||
other: merge rev | ||||
|
r28011 | file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff) | ||
|
r27599 | file: file1 (record type "C", state "u", hash 60b27f004e454aca81b0480209cce5081ec52390) | ||
|
r27137 | local path: file1 (flags "") | ||
ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be) | ||||
other path: file1 (node null) | ||||
|
r28011 | file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff) | ||
|
r27599 | file: file2 (record type "C", state "u", hash null) | ||
|
r27137 | local path: file2 (flags "") | ||
ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e) | ||||
other path: file2 (node e7c1328648519852e723de86c0c0525acd779257) | ||||
|
r28011 | file extras: file3 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff) | ||
|
r27137 | file: file3 (record type "F", state "u", hash d5b0a58bc47161b1b8a831084b366f757c4f0b11) | ||
local path: file3 (flags "") | ||||
ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4) | ||||
other path: file3 (node a2644c43e210356772c7772a8674544a62e06beb) | ||||
--- file1 --- | ||||
1 | ||||
changed | ||||
--- file2 --- | ||||
2 | ||||
changed | ||||
--- file3 --- | ||||
3 | ||||
|
r30062 | <<<<<<< working copy: 13910f48cf7b - test: changed file1, removed file2, chan... | ||
|
r27137 | changed2 | ||
||||||| base | ||||
======= | ||||
changed1 | ||||
|
r30460 | >>>>>>> merge rev: 10f9a0a634e8 - test: removed file1, changed file2, chan... | ||
|
r27137 | |||
Exercise transitions between local, other, fail and prompt, and make sure the | ||||
dirstate stays consistent. (Compare with each other and to the above | ||||
invocations.) | ||||
$ testtransitions() { | ||||
> # this traversal order covers every transition | ||||
> tools="local other prompt local fail other local prompt other fail prompt fail local" | ||||
> lasttool="merge3" | ||||
> for tool in $tools; do | ||||
> echo "=== :$lasttool -> :$tool ===" | ||||
> ref="$TESTTMP/$tool.status" | ||||
> hg resolve --unmark --all | ||||
> hg resolve --tool ":$tool" --all --config ui.interactive=True | ||||
> status > "$TESTTMP/compare.status" 2>&1 | ||||
> echo '--- diff of status ---' | ||||
|
r27557 | > if cmp "$TESTTMP/$tool.status" "$TESTTMP/compare.status" || diff -U8 "$TESTTMP/$tool.status" "$TESTTMP/compare.status"; then | ||
|
r27137 | > echo '(status identical)' | ||
> fi | ||||
> lasttool="$tool" | ||||
> echo | ||||
> done | ||||
> } | ||||
$ testtransitions | ||||
=== :merge3 -> :local === | ||||
(no more unresolved files) | ||||
--- diff of status --- | ||||
(status identical) | ||||
=== :local -> :other === | ||||
(no more unresolved files) | ||||
--- diff of status --- | ||||
(status identical) | ||||
=== :other -> :prompt === | ||||
|
r39321 | file 'file1' was deleted in other [merge rev] but was modified in local [working copy]. | ||
|
r42765 | You can use (c)hanged version, (d)elete, or leave (u)nresolved. | ||
What do you want to do? | ||||
|
r39321 | file 'file2' was deleted in local [working copy] but was modified in other [merge rev]. | ||
|
r42765 | You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved. | ||
What do you want to do? | ||||
file 'file3' needs to be resolved. | ||||
You can keep (l)ocal [working copy], take (o)ther [merge rev], or leave (u)nresolved. | ||||
What do you want to do? | ||||
|
r27137 | --- diff of status --- | ||
(status identical) | ||||
=== :prompt -> :local === | ||||
(no more unresolved files) | ||||
--- diff of status --- | ||||
(status identical) | ||||
=== :local -> :fail === | ||||
--- diff of status --- | ||||
(status identical) | ||||
=== :fail -> :other === | ||||
(no more unresolved files) | ||||
--- diff of status --- | ||||
(status identical) | ||||
=== :other -> :local === | ||||
(no more unresolved files) | ||||
--- diff of status --- | ||||
(status identical) | ||||
=== :local -> :prompt === | ||||
|
r39321 | file 'file1' was deleted in other [merge rev] but was modified in local [working copy]. | ||
|
r42765 | You can use (c)hanged version, (d)elete, or leave (u)nresolved. | ||
What do you want to do? | ||||
|
r39321 | file 'file2' was deleted in local [working copy] but was modified in other [merge rev]. | ||
|
r42765 | You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved. | ||
What do you want to do? | ||||
file 'file3' needs to be resolved. | ||||
You can keep (l)ocal [working copy], take (o)ther [merge rev], or leave (u)nresolved. | ||||
What do you want to do? | ||||
|
r27137 | --- diff of status --- | ||
(status identical) | ||||
=== :prompt -> :other === | ||||
(no more unresolved files) | ||||
--- diff of status --- | ||||
(status identical) | ||||
=== :other -> :fail === | ||||
--- diff of status --- | ||||
(status identical) | ||||
=== :fail -> :prompt === | ||||
|
r39321 | file 'file1' was deleted in other [merge rev] but was modified in local [working copy]. | ||
|
r42765 | You can use (c)hanged version, (d)elete, or leave (u)nresolved. | ||
What do you want to do? | ||||
|
r39321 | file 'file2' was deleted in local [working copy] but was modified in other [merge rev]. | ||
|
r42765 | You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved. | ||
What do you want to do? | ||||
file 'file3' needs to be resolved. | ||||
You can keep (l)ocal [working copy], take (o)ther [merge rev], or leave (u)nresolved. | ||||
What do you want to do? | ||||
|
r27137 | --- diff of status --- | ||
(status identical) | ||||
=== :prompt -> :fail === | ||||
--- diff of status --- | ||||
(status identical) | ||||
=== :fail -> :local === | ||||
(no more unresolved files) | ||||
--- diff of status --- | ||||
(status identical) | ||||
|
r26947 | Non-interactive linear update | ||
$ hg co -C 0 | ||||
|
r27125 | 3 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||
|
r26947 | $ echo changed >> file1 | ||
$ hg rm file2 | ||||
$ hg update 1 -y | ||||
|
r39321 | file 'file1' was deleted in other [destination] but was modified in local [working copy]. | ||
|
r42765 | You can use (c)hanged version, (d)elete, or leave (u)nresolved. | ||
What do you want to do? u | ||||
|
r39321 | file 'file2' was deleted in local [working copy] but was modified in other [destination]. | ||
|
r42765 | You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved. | ||
What do you want to do? u | ||||
|
r27599 | 1 files updated, 0 files merged, 0 files removed, 2 files unresolved | ||
use 'hg resolve' to retry unresolved file merges | ||||
[1] | ||||
|
r26947 | $ status | ||
--- status --- | ||||
A file1 | ||||
C file2 | ||||
|
r27125 | C file3 | ||
|
r27126 | --- resolve --list --- | ||
|
r27599 | U file1 | ||
U file2 | ||||
|
r27136 | --- debugmergestate --- | ||
|
r27137 | * version 2 records | ||
local: ab57bf49aa276a22d35a473592d4c34b5abc3eff | ||||
other: 10f9a0a634e82080907e62f075ab119cbc565ea6 | ||||
|
r28634 | labels: | ||
local: working copy | ||||
other: destination | ||||
|
r28011 | file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff) | ||
|
r27599 | file: file1 (record type "C", state "u", hash 60b27f004e454aca81b0480209cce5081ec52390) | ||
|
r27137 | local path: file1 (flags "") | ||
ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be) | ||||
other path: file1 (node null) | ||||
|
r28011 | file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff) | ||
|
r27599 | file: file2 (record type "C", state "u", hash null) | ||
|
r27137 | local path: file2 (flags "") | ||
ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e) | ||||
other path: file2 (node e7c1328648519852e723de86c0c0525acd779257) | ||||
--- file1 --- | ||||
1 | ||||
changed | ||||
--- file2 --- | ||||
2 | ||||
changed | ||||
--- file3 --- | ||||
3 | ||||
changed1 | ||||
Choose local versions of files | ||||
$ hg co -C 0 | ||||
3 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ echo changed >> file1 | ||||
$ hg rm file2 | ||||
$ hg update 1 --tool :local | ||||
1 files updated, 2 files merged, 0 files removed, 0 files unresolved | ||||
$ status 2>&1 | tee $TESTTMP/local.status | ||||
--- status --- | ||||
file2: * (glob) | ||||
A file1 | ||||
C file3 | ||||
--- resolve --list --- | ||||
R file1 | ||||
R file2 | ||||
--- debugmergestate --- | ||||
* version 2 records | ||||
local: ab57bf49aa276a22d35a473592d4c34b5abc3eff | ||||
other: 10f9a0a634e82080907e62f075ab119cbc565ea6 | ||||
|
r28634 | labels: | ||
local: working copy | ||||
other: destination | ||||
|
r28011 | file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff) | ||
|
r27137 | file: file1 (record type "C", state "r", hash 60b27f004e454aca81b0480209cce5081ec52390) | ||
local path: file1 (flags "") | ||||
ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be) | ||||
other path: file1 (node null) | ||||
|
r28011 | file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff) | ||
|
r27137 | file: file2 (record type "C", state "r", hash null) | ||
local path: file2 (flags "") | ||||
ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e) | ||||
other path: file2 (node e7c1328648519852e723de86c0c0525acd779257) | ||||
--- file1 --- | ||||
1 | ||||
changed | ||||
*** file2 does not exist | ||||
--- file3 --- | ||||
3 | ||||
changed1 | ||||
Choose other versions of files | ||||
$ hg co -C 0 | ||||
3 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ echo changed >> file1 | ||||
$ hg rm file2 | ||||
$ hg update 1 --tool :other | ||||
1 files updated, 1 files merged, 1 files removed, 0 files unresolved | ||||
$ status 2>&1 | tee $TESTTMP/other.status | ||||
--- status --- | ||||
file1: * (glob) | ||||
C file2 | ||||
C file3 | ||||
--- resolve --list --- | ||||
R file1 | ||||
R file2 | ||||
--- debugmergestate --- | ||||
* version 2 records | ||||
local: ab57bf49aa276a22d35a473592d4c34b5abc3eff | ||||
other: 10f9a0a634e82080907e62f075ab119cbc565ea6 | ||||
|
r28634 | labels: | ||
local: working copy | ||||
other: destination | ||||
|
r28011 | file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff) | ||
|
r27137 | file: file1 (record type "C", state "r", hash 60b27f004e454aca81b0480209cce5081ec52390) | ||
local path: file1 (flags "") | ||||
ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be) | ||||
other path: file1 (node null) | ||||
|
r28011 | file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff) | ||
|
r27137 | file: file2 (record type "C", state "r", hash null) | ||
local path: file2 (flags "") | ||||
ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e) | ||||
other path: file2 (node e7c1328648519852e723de86c0c0525acd779257) | ||||
*** file1 does not exist | ||||
--- file2 --- | ||||
2 | ||||
changed | ||||
--- file3 --- | ||||
3 | ||||
changed1 | ||||
Fail | ||||
$ hg co -C 0 | ||||
3 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ echo changed >> file1 | ||||
$ hg rm file2 | ||||
$ hg update 1 --tool :fail | ||||
1 files updated, 0 files merged, 0 files removed, 2 files unresolved | ||||
use 'hg resolve' to retry unresolved file merges | ||||
[1] | ||||
$ status 2>&1 | tee $TESTTMP/fail.status | ||||
--- status --- | ||||
A file1 | ||||
C file2 | ||||
C file3 | ||||
--- resolve --list --- | ||||
U file1 | ||||
U file2 | ||||
--- debugmergestate --- | ||||
* version 2 records | ||||
local: ab57bf49aa276a22d35a473592d4c34b5abc3eff | ||||
other: 10f9a0a634e82080907e62f075ab119cbc565ea6 | ||||
|
r28634 | labels: | ||
local: working copy | ||||
other: destination | ||||
|
r28011 | file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff) | ||
|
r27137 | file: file1 (record type "C", state "u", hash 60b27f004e454aca81b0480209cce5081ec52390) | ||
local path: file1 (flags "") | ||||
ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be) | ||||
other path: file1 (node null) | ||||
|
r28011 | file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff) | ||
|
r27137 | file: file2 (record type "C", state "u", hash null) | ||
local path: file2 (flags "") | ||||
ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e) | ||||
other path: file2 (node e7c1328648519852e723de86c0c0525acd779257) | ||||
|
r26947 | --- file1 --- | ||
1 | ||||
changed | ||||
--- file2 --- | ||||
2 | ||||
changed | ||||
|
r27125 | --- file3 --- | ||
3 | ||||
changed1 | ||||
|
r27137 | |||
Force prompts with no input | ||||
$ hg co -C 0 | ||||
3 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ echo changed >> file1 | ||||
$ hg rm file2 | ||||
$ hg update 1 --config ui.interactive=True --tool :prompt | ||||
|
r39321 | file 'file1' was deleted in other [destination] but was modified in local [working copy]. | ||
|
r42765 | You can use (c)hanged version, (d)elete, or leave (u)nresolved. | ||
What do you want to do? | ||||
|
r39321 | file 'file2' was deleted in local [working copy] but was modified in other [destination]. | ||
|
r42765 | You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved. | ||
What do you want to do? | ||||
|
r27137 | 1 files updated, 0 files merged, 0 files removed, 2 files unresolved | ||
use 'hg resolve' to retry unresolved file merges | ||||
[1] | ||||
$ status 2>&1 | tee $TESTTMP/prompt.status | ||||
--- status --- | ||||
A file1 | ||||
C file2 | ||||
C file3 | ||||
--- resolve --list --- | ||||
U file1 | ||||
U file2 | ||||
--- debugmergestate --- | ||||
* version 2 records | ||||
local: ab57bf49aa276a22d35a473592d4c34b5abc3eff | ||||
other: 10f9a0a634e82080907e62f075ab119cbc565ea6 | ||||
|
r28634 | labels: | ||
local: working copy | ||||
other: destination | ||||
|
r28011 | file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff) | ||
|
r27137 | file: file1 (record type "C", state "u", hash 60b27f004e454aca81b0480209cce5081ec52390) | ||
local path: file1 (flags "") | ||||
ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be) | ||||
other path: file1 (node null) | ||||
|
r28011 | file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff) | ||
|
r27137 | file: file2 (record type "C", state "u", hash null) | ||
local path: file2 (flags "") | ||||
ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e) | ||||
other path: file2 (node e7c1328648519852e723de86c0c0525acd779257) | ||||
--- file1 --- | ||||
1 | ||||
changed | ||||
--- file2 --- | ||||
2 | ||||
changed | ||||
--- file3 --- | ||||
3 | ||||
changed1 | ||||
|
r27557 | $ cmp $TESTTMP/fail.status $TESTTMP/prompt.status || diff -U8 $TESTTMP/fail.status $TESTTMP/prompt.status | ||
|
r27137 | |||
Choose to merge all files | ||||
$ hg co -C 0 | ||||
3 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ echo changed >> file1 | ||||
$ hg rm file2 | ||||
$ hg update 1 --tool :merge3 | ||||
|
r39321 | file 'file1' was deleted in other [destination] but was modified in local [working copy]. | ||
|
r42765 | You can use (c)hanged version, (d)elete, or leave (u)nresolved. | ||
What do you want to do? u | ||||
|
r39321 | file 'file2' was deleted in local [working copy] but was modified in other [destination]. | ||
|
r42765 | You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved. | ||
What do you want to do? u | ||||
|
r27599 | 1 files updated, 0 files merged, 0 files removed, 2 files unresolved | ||
use 'hg resolve' to retry unresolved file merges | ||||
[1] | ||||
|
r27137 | $ status | ||
--- status --- | ||||
A file1 | ||||
C file2 | ||||
C file3 | ||||
--- resolve --list --- | ||||
|
r27599 | U file1 | ||
U file2 | ||||
|
r27137 | --- debugmergestate --- | ||
* version 2 records | ||||
local: ab57bf49aa276a22d35a473592d4c34b5abc3eff | ||||
other: 10f9a0a634e82080907e62f075ab119cbc565ea6 | ||||
|
r28634 | labels: | ||
local: working copy | ||||
other: destination | ||||
|
r28011 | file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff) | ||
|
r27599 | file: file1 (record type "C", state "u", hash 60b27f004e454aca81b0480209cce5081ec52390) | ||
|
r27137 | local path: file1 (flags "") | ||
ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be) | ||||
other path: file1 (node null) | ||||
|
r28011 | file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff) | ||
|
r27599 | file: file2 (record type "C", state "u", hash null) | ||
|
r27137 | local path: file2 (flags "") | ||
ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e) | ||||
other path: file2 (node e7c1328648519852e723de86c0c0525acd779257) | ||||
--- file1 --- | ||||
1 | ||||
changed | ||||
--- file2 --- | ||||
2 | ||||
changed | ||||
--- file3 --- | ||||
3 | ||||
changed1 | ||||
Test transitions between different merge tools | ||||
$ testtransitions | ||||
=== :merge3 -> :local === | ||||
(no more unresolved files) | ||||
--- diff of status --- | ||||
(status identical) | ||||
=== :local -> :other === | ||||
(no more unresolved files) | ||||
--- diff of status --- | ||||
(status identical) | ||||
=== :other -> :prompt === | ||||
|
r39321 | file 'file1' was deleted in other [destination] but was modified in local [working copy]. | ||
|
r42765 | You can use (c)hanged version, (d)elete, or leave (u)nresolved. | ||
What do you want to do? | ||||
|
r39321 | file 'file2' was deleted in local [working copy] but was modified in other [destination]. | ||
|
r42765 | You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved. | ||
What do you want to do? | ||||
|
r27137 | --- diff of status --- | ||
(status identical) | ||||
=== :prompt -> :local === | ||||
(no more unresolved files) | ||||
--- diff of status --- | ||||
(status identical) | ||||
=== :local -> :fail === | ||||
--- diff of status --- | ||||
(status identical) | ||||
=== :fail -> :other === | ||||
(no more unresolved files) | ||||
--- diff of status --- | ||||
(status identical) | ||||
=== :other -> :local === | ||||
(no more unresolved files) | ||||
--- diff of status --- | ||||
(status identical) | ||||
=== :local -> :prompt === | ||||
|
r39321 | file 'file1' was deleted in other [destination] but was modified in local [working copy]. | ||
|
r42765 | You can use (c)hanged version, (d)elete, or leave (u)nresolved. | ||
What do you want to do? | ||||
|
r39321 | file 'file2' was deleted in local [working copy] but was modified in other [destination]. | ||
|
r42765 | You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved. | ||
What do you want to do? | ||||
|
r27137 | --- diff of status --- | ||
(status identical) | ||||
=== :prompt -> :other === | ||||
(no more unresolved files) | ||||
--- diff of status --- | ||||
(status identical) | ||||
=== :other -> :fail === | ||||
--- diff of status --- | ||||
(status identical) | ||||
=== :fail -> :prompt === | ||||
|
r39321 | file 'file1' was deleted in other [destination] but was modified in local [working copy]. | ||
|
r42765 | You can use (c)hanged version, (d)elete, or leave (u)nresolved. | ||
What do you want to do? | ||||
|
r39321 | file 'file2' was deleted in local [working copy] but was modified in other [destination]. | ||
|
r42765 | You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved. | ||
What do you want to do? | ||||
|
r27137 | --- diff of status --- | ||
(status identical) | ||||
=== :prompt -> :fail === | ||||
--- diff of status --- | ||||
(status identical) | ||||
=== :fail -> :local === | ||||
(no more unresolved files) | ||||
--- diff of status --- | ||||
(status identical) | ||||