##// END OF EJS Templates
mq: use dirstateguard instead of dirstate.invalidate (qpush)...
mq: use dirstateguard instead of dirstate.invalidate (qpush) Before this patch, "mq.queue.apply()" uses "dirstate.invalidate()" as a kind of "restore .hg/dirstate to the original status" during afailure. But it just discards changes in memory, and doesn't actually restore ".hg/dirstate". Then, it can't work as expected, if "dirstate.write()" is executed while processing. This patch uses "dirstateguard" instead of "dirstate.invalidate()" to restore ".hg/dirstate" at failure even if "dirstate.write()" is executed before failure. This is a part of preparations to fix the issue that the recent (in memory) dirstate isn't visible to external processes (e.g. "precommit" hook).

File last commit:

r22589:9ab18a91 default
r24996:58308dde default
Show More
test-merge-prompt.t
150 lines | 3.2 KiB | text/troff | Tads3Lexer
/ tests / test-merge-prompt.t
Matt Mackall
tests: fix a bunch of pointless #s in unified tests
r12328 Test for
b5605d88dc27: Make ui.prompt repeat on "unrecognized response" again
(issue897)
840e2b315c1f: Fix misleading error and prompts during update/merge
(issue556)
Adrian Buehlmann
tests: unify test-merge-prompt
r12259
$ status() {
> echo "--- status ---"
> hg st -A file1 file2
> for file in file1 file2; do
> if [ -f $file ]; then
> echo "--- $file ---"
> cat $file
> else
> echo "*** $file does not exist"
> fi
> done
> }
$ hg init
$ echo 1 > file1
$ echo 2 > file2
$ hg ci -Am 'added file1 and file2'
adding file1
adding file2
$ hg rm file1
$ echo changed >> file2
$ hg ci -m 'removed file1, changed file2'
$ hg co 0
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo changed >> file1
$ hg rm file2
$ hg ci -m 'changed file1, removed file2'
created new head
Non-interactive merge:
Matt Mackall
tests: cleanup exit code handling in unified tests
r12365 $ hg merge -y
Mads Kiilerich
merge: don't indent "local changed %s which remote deleted" prompt...
r18543 local changed file1 which remote deleted
Adrian Buehlmann
tests: unify test-merge-prompt
r12259 use (c)hanged version or (d)elete? c
remote changed file2 which local deleted
use (c)hanged version or leave (d)eleted? c
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ status
--- status ---
M file2
C file1
--- file1 ---
1
changed
--- file2 ---
2
changed
Interactive merge:
$ hg co -C
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
Matt Mackall
tests: cleanup exit code handling in unified tests
r12365 $ hg merge --config ui.interactive=true <<EOF
Adrian Buehlmann
tests: unify test-merge-prompt
r12259 > c
> d
> EOF
Mads Kiilerich
merge: don't indent "local changed %s which remote deleted" prompt...
r18543 local changed file1 which remote deleted
Mads Kiilerich
ui: show prompt choice if input is not a tty but is forced to be interactive...
r22589 use (c)hanged version or (d)elete? c
remote changed file2 which local deleted
use (c)hanged version or leave (d)eleted? d
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
Adrian Buehlmann
tests: unify test-merge-prompt
r12259 (branch merge, don't forget to commit)
$ status
--- status ---
Mads Kiilerich
tests: hide 'No such file or directory' messages...
r15521 file2: * (glob)
Adrian Buehlmann
tests: unify test-merge-prompt
r12259 C file1
--- file1 ---
1
changed
*** file2 does not exist
Interactive merge with bad input:
$ hg co -C
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
Matt Mackall
tests: cleanup exit code handling in unified tests
r12365 $ hg merge --config ui.interactive=true <<EOF
Adrian Buehlmann
tests: unify test-merge-prompt
r12259 > foo
> bar
> d
> baz
> c
> EOF
Mads Kiilerich
merge: don't indent "local changed %s which remote deleted" prompt...
r18543 local changed file1 which remote deleted
Mads Kiilerich
ui: show prompt choice if input is not a tty but is forced to be interactive...
r22589 use (c)hanged version or (d)elete? foo
unrecognized response
Mads Kiilerich
merge: don't indent "local changed %s which remote deleted" prompt...
r18543 local changed file1 which remote deleted
Mads Kiilerich
ui: show prompt choice if input is not a tty but is forced to be interactive...
r22589 use (c)hanged version or (d)elete? bar
unrecognized response
Mads Kiilerich
merge: don't indent "local changed %s which remote deleted" prompt...
r18543 local changed file1 which remote deleted
Mads Kiilerich
ui: show prompt choice if input is not a tty but is forced to be interactive...
r22589 use (c)hanged version or (d)elete? d
Adrian Buehlmann
tests: unify test-merge-prompt
r12259 remote changed file2 which local deleted
Mads Kiilerich
ui: show prompt choice if input is not a tty but is forced to be interactive...
r22589 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
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
Adrian Buehlmann
tests: unify test-merge-prompt
r12259 (branch merge, don't forget to commit)
$ status
--- status ---
M file2
R file1
*** file1 does not exist
--- file2 ---
2
changed
Interactive merge with not enough input:
$ hg co -C
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
Matt Mackall
tests: cleanup exit code handling in unified tests
r12365 $ hg merge --config ui.interactive=true <<EOF
Adrian Buehlmann
tests: unify test-merge-prompt
r12259 > d
> EOF
Mads Kiilerich
merge: don't indent "local changed %s which remote deleted" prompt...
r18543 local changed file1 which remote deleted
Mads Kiilerich
ui: show prompt choice if input is not a tty but is forced to be interactive...
r22589 use (c)hanged version or (d)elete? d
remote changed file2 which local deleted
Adrian Buehlmann
tests: unify test-merge-prompt
r12259 use (c)hanged version or leave (d)eleted? abort: response expected
Matt Mackall
tests: cleanup exit code handling in unified tests
r12365 [255]
Adrian Buehlmann
tests: unify test-merge-prompt
r12259
$ status
--- status ---
Mads Kiilerich
tests: hide 'No such file or directory' messages...
r15521 file2: * (glob)
Adrian Buehlmann
tests: unify test-merge-prompt
r12259 C file1
--- file1 ---
1
changed
*** file2 does not exist