tests/test-merge-changedelete.t
changeset 26947 fdfc50d09e8d
parent 26895 fc41f9ffd4a4
child 27125 969ca40cad1d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-merge-changedelete.t	Wed Nov 11 17:32:41 2015 -0800
@@ -0,0 +1,175 @@
+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 ---"
+  >     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
+  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 <<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
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  (branch merge, don't forget to commit)
+
+  $ status
+  --- status ---
+  file2: * (glob)
+  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 <<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
+  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 <<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
+  --- file1 ---
+  1
+  changed
+  *** file2 does not exist
+
+Non-interactive linear update
+
+  $ hg co -C 0
+  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  $ 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
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  $ status
+  --- status ---
+  A file1
+  C file2
+  --- file1 ---
+  1
+  changed
+  --- file2 ---
+  2
+  changed