# HG changeset patch # User Adrian Buehlmann # Date 1284285133 -7200 # Node ID 7b05cb9ac6d29e2cdcd1555c2e6ee4f1e25b9aed # Parent 98ec977aa61e1981de5337934df1737b58b4b330 tests: unify test-merge-prompt diff -r 98ec977aa61e -r 7b05cb9ac6d2 tests/test-merge-prompt --- a/tests/test-merge-prompt Sat Sep 11 21:19:12 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,69 +0,0 @@ -#!/bin/sh -# -# Test for b5605d88dc27 -# Make ui.prompt repeat on "unrecognized response" again (issue897) -# and for 840e2b315c1f -# Fix misleading error and prompts during update/merge (issue556) - -status() { - [ $? -ne 0 ] && echo "failed." - 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 repo -cd repo -echo 1 > file1 -echo 2 > file2 -hg ci -Am 'added file1 and file2' # rev 0 - -hg rm file1 -echo changed >> file2 -hg ci -m 'removed file1, changed file2' # rev 1 - -hg co 0 -echo changed >> file1 -hg rm file2 -hg ci -m 'changed file1, removed file2' # rev 2 - -echo -echo "# non-interactive merge" -hg merge -y || echo "failed" -status - -echo -echo "# interactive merge" -hg co -C -hg merge --config ui.interactive=true < [ $? -ne 0 ] && echo "failed." + > 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: + + $ hg merge -y || echo "failed" + 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 + 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 + + $ hg merge --config ui.interactive=true < c + > d + > EOF + local changed file1 which remote deleted + use (c)hanged version or (d)elete? remote changed file2 which local deleted + use (c)hanged version or leave (d)eleted? 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + (branch merge, don't forget to commit) + + $ status + --- status --- + file2: No such file or directory + 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 + + $ hg merge --config ui.interactive=true < foo + > bar + > d + > baz + > c + > EOF + local changed file1 which remote deleted + use (c)hanged version or (d)elete? unrecognized response + local changed file1 which remote deleted + use (c)hanged version or (d)elete? unrecognized response + local changed file1 which remote deleted + use (c)hanged version or (d)elete? remote changed file2 which local deleted + use (c)hanged version or leave (d)eleted? unrecognized response + remote changed file2 which local deleted + use (c)hanged version or leave (d)eleted? 1 files updated, 0 files merged, 1 files removed, 0 files unresolved + (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 + + $ hg merge --config ui.interactive=true < d + > EOF + local changed file1 which remote deleted + use (c)hanged version or (d)elete? remote changed file2 which local deleted + use (c)hanged version or leave (d)eleted? abort: response expected + failed + + $ status + --- status --- + file2: No such file or directory + C file1 + --- file1 --- + 1 + changed + *** file2 does not exist +