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