test-merge-changedelete.t
260 lines
| 6.7 KiB
| text/troff
|
Tads3Lexer
/ tests / test-merge-changedelete.t
|
r26947 | Test for | ||
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 | ||||
> } | ||||
$ hg init | ||||
$ 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 | ||||
local changed file1 which remote deleted | ||||
use (c)hanged version or (d)elete? c | ||||
remote changed file2 which local deleted | ||||
use (c)hanged version or leave (d)eleted? c | ||||
|
r27125 | merging file3 | ||
warning: conflicts while merging file3! (edit, then use 'hg resolve --mark') | ||||
1 files updated, 0 files merged, 0 files removed, 1 files unresolved | ||||
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon | ||||
[1] | ||||
|
r26947 | |||
$ status | ||||
--- status --- | ||||
M file2 | ||||
|
r27125 | M file3 | ||
|
r26947 | C file1 | ||
|
r27126 | --- resolve --list --- | ||
U file3 | ||||
|
r27136 | --- debugmergestate --- | ||
* version 2 records | ||||
local: 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4 | ||||
other: 10f9a0a634e82080907e62f075ab119cbc565ea6 | ||||
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 | ||||
<<<<<<< local: 13910f48cf7b - test: changed file1, removed file2, changed file3 | ||||
changed2 | ||||
======= | ||||
changed1 | ||||
>>>>>>> other: 10f9a0a634e8 - test: removed file1, changed file2, changed file3 | ||||
|
r26947 | |||
Interactive merge: | ||||
$ hg co -C | ||||
|
r27125 | 1 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||
|
r26947 | |||
$ hg merge --config ui.interactive=true <<EOF | ||||
> c | ||||
> d | ||||
> EOF | ||||
local changed file1 which remote deleted | ||||
use (c)hanged version or (d)elete? c | ||||
remote changed file2 which local deleted | ||||
use (c)hanged version or leave (d)eleted? d | ||||
|
r27125 | merging file3 | ||
warning: conflicts while merging file3! (edit, then use 'hg resolve --mark') | ||||
0 files updated, 0 files merged, 0 files removed, 1 files unresolved | ||||
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon | ||||
[1] | ||||
|
r26947 | |||
$ status | ||||
--- status --- | ||||
file2: * (glob) | ||||
|
r27125 | M file3 | ||
|
r26947 | C file1 | ||
|
r27126 | --- resolve --list --- | ||
U file3 | ||||
|
r27136 | --- debugmergestate --- | ||
* version 2 records | ||||
local: 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4 | ||||
other: 10f9a0a634e82080907e62f075ab119cbc565ea6 | ||||
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 | ||||
<<<<<<< local: 13910f48cf7b - test: changed file1, removed file2, changed file3 | ||||
changed2 | ||||
======= | ||||
changed1 | ||||
>>>>>>> other: 10f9a0a634e8 - test: removed file1, changed file2, changed file3 | ||||
|
r26947 | |||
Interactive merge with bad input: | ||||
$ hg co -C | ||||
|
r27125 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||
|
r26947 | |||
$ hg merge --config ui.interactive=true <<EOF | ||||
> foo | ||||
> bar | ||||
> d | ||||
> baz | ||||
> c | ||||
> EOF | ||||
local changed file1 which remote deleted | ||||
use (c)hanged version or (d)elete? foo | ||||
unrecognized response | ||||
local changed file1 which remote deleted | ||||
use (c)hanged version or (d)elete? bar | ||||
unrecognized response | ||||
local changed file1 which remote deleted | ||||
use (c)hanged version or (d)elete? d | ||||
remote changed file2 which local deleted | ||||
use (c)hanged version or leave (d)eleted? baz | ||||
unrecognized response | ||||
remote changed file2 which local deleted | ||||
use (c)hanged version or leave (d)eleted? c | ||||
|
r27125 | merging file3 | ||
warning: conflicts while merging file3! (edit, then use 'hg resolve --mark') | ||||
1 files updated, 0 files merged, 1 files removed, 1 files unresolved | ||||
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon | ||||
[1] | ||||
|
r26947 | |||
$ status | ||||
--- status --- | ||||
M file2 | ||||
|
r27125 | M file3 | ||
|
r26947 | R file1 | ||
|
r27126 | --- resolve --list --- | ||
U file3 | ||||
|
r27136 | --- debugmergestate --- | ||
* version 2 records | ||||
local: 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4 | ||||
other: 10f9a0a634e82080907e62f075ab119cbc565ea6 | ||||
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 | ||||
<<<<<<< local: 13910f48cf7b - test: changed file1, removed file2, changed file3 | ||||
changed2 | ||||
======= | ||||
changed1 | ||||
>>>>>>> other: 10f9a0a634e8 - test: removed file1, changed file2, changed file3 | ||||
|
r26947 | |||
Interactive merge with not enough input: | ||||
$ hg co -C | ||||
|
r27125 | 2 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||
|
r26947 | |||
$ hg merge --config ui.interactive=true <<EOF | ||||
> d | ||||
> EOF | ||||
local changed file1 which remote deleted | ||||
use (c)hanged version or (d)elete? d | ||||
remote changed file2 which local deleted | ||||
use (c)hanged version or leave (d)eleted? abort: response expected | ||||
[255] | ||||
$ status | ||||
--- status --- | ||||
file2: * (glob) | ||||
C file1 | ||||
|
r27125 | C file3 | ||
|
r27126 | --- resolve --list --- | ||
|
r27136 | --- debugmergestate --- | ||
no merge state found | ||||
|
r26947 | --- file1 --- | ||
1 | ||||
changed | ||||
*** file2 does not exist | ||||
|
r27125 | --- file3 --- | ||
3 | ||||
changed2 | ||||
|
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 | ||||
local changed file1 which remote deleted | ||||
use (c)hanged version or (d)elete? c | ||||
remote changed file2 which local deleted | ||||
use (c)hanged version or leave (d)eleted? c | ||||
|
r27125 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||
|
r26947 | $ status | ||
--- status --- | ||||
A file1 | ||||
C file2 | ||||
|
r27125 | C file3 | ||
|
r27126 | --- resolve --list --- | ||
|
r27136 | --- debugmergestate --- | ||
no merge state found | ||||
|
r26947 | --- file1 --- | ||
1 | ||||
changed | ||||
--- file2 --- | ||||
2 | ||||
changed | ||||
|
r27125 | --- file3 --- | ||
3 | ||||
changed1 | ||||