tests/test-merge-prompt.t
changeset 12259 7b05cb9ac6d2
parent 5672 8a65ea986755
child 12328 b63f6422d2a7
equal deleted inserted replaced
12258:98ec977aa61e 12259:7b05cb9ac6d2
       
     1 # Test for
       
     2 #
       
     3 #   b5605d88dc27: Make ui.prompt repeat on "unrecognized response" again
       
     4 #                 (issue897)
       
     5 #
       
     6 #   840e2b315c1f: Fix misleading error and prompts during update/merge
       
     7 #                 (issue556)
       
     8 
       
     9   $ status() {
       
    10   >     [ $? -ne 0 ] && echo "failed."
       
    11   >     echo "--- status ---"
       
    12   >     hg st -A file1 file2
       
    13   >     for file in file1 file2; do
       
    14   >         if [ -f $file ]; then
       
    15   >             echo "--- $file ---"
       
    16   >             cat $file
       
    17   >         else
       
    18   >             echo "*** $file does not exist"
       
    19   >         fi
       
    20   >     done
       
    21   > }
       
    22 
       
    23   $ hg init
       
    24 
       
    25   $ echo 1 > file1
       
    26   $ echo 2 > file2
       
    27   $ hg ci -Am 'added file1 and file2'
       
    28   adding file1
       
    29   adding file2
       
    30 
       
    31   $ hg rm file1
       
    32   $ echo changed >> file2
       
    33   $ hg ci -m 'removed file1, changed file2'
       
    34 
       
    35   $ hg co 0
       
    36   2 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
    37 
       
    38   $ echo changed >> file1
       
    39   $ hg rm file2
       
    40   $ hg ci -m 'changed file1, removed file2'
       
    41   created new head
       
    42 
       
    43 
       
    44 Non-interactive merge:
       
    45 
       
    46   $ hg merge -y || echo "failed"
       
    47    local changed file1 which remote deleted
       
    48   use (c)hanged version or (d)elete? c
       
    49   remote changed file2 which local deleted
       
    50   use (c)hanged version or leave (d)eleted? c
       
    51   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
    52   (branch merge, don't forget to commit)
       
    53 
       
    54   $ status
       
    55   --- status ---
       
    56   M file2
       
    57   C file1
       
    58   --- file1 ---
       
    59   1
       
    60   changed
       
    61   --- file2 ---
       
    62   2
       
    63   changed
       
    64 
       
    65 
       
    66 Interactive merge:
       
    67 
       
    68   $ hg co -C
       
    69   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
       
    70 
       
    71   $ hg merge --config ui.interactive=true <<EOF || echo "failed"
       
    72   > c
       
    73   > d
       
    74   > EOF
       
    75    local changed file1 which remote deleted
       
    76   use (c)hanged version or (d)elete? remote changed file2 which local deleted
       
    77   use (c)hanged version or leave (d)eleted? 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
    78   (branch merge, don't forget to commit)
       
    79 
       
    80   $ status
       
    81   --- status ---
       
    82   file2: No such file or directory
       
    83   C file1
       
    84   --- file1 ---
       
    85   1
       
    86   changed
       
    87   *** file2 does not exist
       
    88 
       
    89 
       
    90 Interactive merge with bad input:
       
    91 
       
    92   $ hg co -C
       
    93   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
    94 
       
    95   $ hg merge --config ui.interactive=true <<EOF || echo "failed"
       
    96   > foo
       
    97   > bar
       
    98   > d
       
    99   > baz
       
   100   > c
       
   101   > EOF
       
   102    local changed file1 which remote deleted
       
   103   use (c)hanged version or (d)elete? unrecognized response
       
   104    local changed file1 which remote deleted
       
   105   use (c)hanged version or (d)elete? unrecognized response
       
   106    local changed file1 which remote deleted
       
   107   use (c)hanged version or (d)elete? remote changed file2 which local deleted
       
   108   use (c)hanged version or leave (d)eleted? unrecognized response
       
   109   remote changed file2 which local deleted
       
   110   use (c)hanged version or leave (d)eleted? 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
       
   111   (branch merge, don't forget to commit)
       
   112 
       
   113   $ status
       
   114   --- status ---
       
   115   M file2
       
   116   R file1
       
   117   *** file1 does not exist
       
   118   --- file2 ---
       
   119   2
       
   120   changed
       
   121 
       
   122 
       
   123 Interactive merge with not enough input:
       
   124 
       
   125   $ hg co -C
       
   126   1 files updated, 0 files merged, 1 files removed, 0 files unresolved
       
   127 
       
   128   $ hg merge --config ui.interactive=true <<EOF || echo "failed"
       
   129   > d
       
   130   > EOF
       
   131    local changed file1 which remote deleted
       
   132   use (c)hanged version or (d)elete? remote changed file2 which local deleted
       
   133   use (c)hanged version or leave (d)eleted? abort: response expected
       
   134   failed
       
   135 
       
   136   $ status
       
   137   --- status ---
       
   138   file2: No such file or directory
       
   139   C file1
       
   140   --- file1 ---
       
   141   1
       
   142   changed
       
   143   *** file2 does not exist
       
   144