tests/test-rename-merge2
changeset 12484 59012130b43e
parent 12483 fecd4966f8d4
child 12485 8fdc11fec6ae
equal deleted inserted replaced
12483:fecd4966f8d4 12484:59012130b43e
     1 #!/bin/sh
       
     2 
       
     3 mkdir -p t
       
     4 cd t
       
     5 
       
     6 cat <<EOF > merge
       
     7 import sys, os
       
     8 f = open(sys.argv[1], "wb")
       
     9 f.write("merge %s %s %s" % (sys.argv[1], sys.argv[2], sys.argv[3]))
       
    10 f.close()
       
    11 EOF
       
    12 HGMERGE="python ../merge"; export HGMERGE
       
    13 
       
    14 # perform a test merge with possible renaming
       
    15 #
       
    16 # args:
       
    17 # $1 = action in local branch
       
    18 # $2 = action in remote branch
       
    19 # $3 = action in working dir
       
    20 # $4 = expected result
       
    21 tm()
       
    22 {
       
    23     mkdir t
       
    24     cd t
       
    25     hg init
       
    26     echo "[merge]" >> .hg/hgrc
       
    27     echo "followcopies = 1" >> .hg/hgrc
       
    28 
       
    29     # base
       
    30     echo base > a
       
    31     echo base > rev # used to force commits
       
    32     hg add a rev
       
    33     hg ci -m "base"
       
    34 
       
    35     # remote
       
    36     echo remote > rev
       
    37     if [ "$2" != "" ] ; then $2 ; fi
       
    38     hg ci -m "remote"
       
    39 
       
    40     # local
       
    41     hg co -q 0
       
    42     echo local > rev
       
    43     if [ "$1" != "" ] ; then $1 ; fi
       
    44     hg ci -m "local"
       
    45 
       
    46     # working dir
       
    47     echo local > rev
       
    48     if [ "$3" != "" ] ; then $3 ; fi
       
    49 
       
    50     # merge
       
    51     echo "--------------"
       
    52     echo "test L:$1 R:$2 W:$3 - $4"
       
    53     echo "--------------"
       
    54     hg merge -y --debug --traceback
       
    55 
       
    56     echo "--------------"
       
    57     hg status -camC -X rev
       
    58 
       
    59     hg ci -m "merge"
       
    60 
       
    61     echo "--------------"
       
    62     echo
       
    63 
       
    64     cd ..
       
    65     rm -r t
       
    66 }
       
    67 
       
    68 up() {
       
    69     cp rev $1
       
    70     hg add $1 2> /dev/null
       
    71     if [ "$2" != "" ] ; then
       
    72 	cp rev $2
       
    73 	hg add $2 2> /dev/null
       
    74     fi
       
    75 }
       
    76 
       
    77 uc() { up $1; hg cp $1 $2; } # update + copy
       
    78 um() { up $1; hg mv $1 $2; }
       
    79 nc() { hg cp $1 $2; } # just copy
       
    80 nm() { hg mv $1 $2; } # just move
       
    81 
       
    82 tm "up a  " "nc a b" "      " "1  get local a to b"
       
    83 tm "nc a b" "up a  " "      " "2  get rem change to a and b"
       
    84 tm "up a  " "nm a b" "      " "3  get local a change to b, remove a"
       
    85 tm "nm a b" "up a  " "      " "4  get remote change to b"
       
    86 tm "      " "nc a b" "      " "5  get b"
       
    87 tm "nc a b" "      " "      " "6  nothing"
       
    88 tm "      " "nm a b" "      " "7  get b"
       
    89 tm "nm a b" "      " "      " "8  nothing"
       
    90 tm "um a b" "um a b" "      " "9  do merge with ancestor in a"
       
    91 #tm "um a c" "um x c" "      " "10 do merge with no ancestor"
       
    92 tm "nm a b" "nm a c" "      " "11 get c, keep b"
       
    93 tm "nc a b" "up b  " "      " "12 merge b no ancestor"
       
    94 tm "up b  " "nm a b" "      " "13 merge b no ancestor"
       
    95 tm "nc a b" "up a b" "      " "14 merge b no ancestor"
       
    96 tm "up b  " "nm a b" "      " "15 merge b no ancestor, remove a"
       
    97 tm "nc a b" "up a b" "      " "16 get a, merge b no ancestor"
       
    98 tm "up a b" "nc a b" "      " "17 keep a, merge b no ancestor"
       
    99 tm "nm a b" "up a b" "      " "18 merge b no ancestor"
       
   100 tm "up a b" "nm a b" "      " "19 merge b no ancestor, prompt remove a"
       
   101 tm "up a  " "um a b" "      " "20 merge a and b to b, remove a"
       
   102 tm "um a b" "up a  " "      " "21 merge a and b to b"
       
   103 #tm "nm a b" "um x a" "      " "22 get a, keep b"
       
   104 tm "nm a b" "up a c" "      " "23 get c, keep b"