tests/test-rebase-collapse
changeset 12608 16b854cb80f1
parent 12607 1393a81b3bdc
child 12612 03c5737a06a1
equal deleted inserted replaced
12607:1393a81b3bdc 12608:16b854cb80f1
     1 #!/bin/sh
       
     2 
       
     3 . $TESTDIR/helpers.sh
       
     4 
       
     5 echo "[extensions]" >> $HGRCPATH
       
     6 echo "graphlog=" >> $HGRCPATH
       
     7 echo "rebase=" >> $HGRCPATH
       
     8 
       
     9 BASE=`pwd`
       
    10 
       
    11 addcommit () {
       
    12     echo $1 > $1
       
    13     hg add $1
       
    14     hg commit -d "${2} 0" -m $1
       
    15 }
       
    16 
       
    17 commit () {
       
    18     hg commit -d "${2} 0" -m $1
       
    19 }
       
    20 
       
    21 createrepo () {
       
    22     cd $BASE
       
    23     rm -rf a
       
    24     hg init a
       
    25     cd a
       
    26     addcommit "A" 0
       
    27     addcommit "B" 1
       
    28     addcommit "C" 2
       
    29     addcommit "D" 3
       
    30 
       
    31     hg update -C 0
       
    32     addcommit "E" 4
       
    33 
       
    34     hg update -C 0
       
    35     addcommit "F" 5
       
    36 
       
    37     hg merge -r 4
       
    38     commit "G" 6
       
    39 
       
    40     hg update -C 5
       
    41     addcommit "H" 7
       
    42 }
       
    43 
       
    44 createrepo > /dev/null 2>&1
       
    45 hg glog  --template '{rev}: {desc}\n'
       
    46 echo '% Rebasing B onto H'
       
    47 hg up -C 3
       
    48 hg rebase --collapse --keepbranches | hidebackup
       
    49 hg glog  --template '{rev}: {desc}\n'
       
    50 echo "Expected A, B, C, D, F, H"
       
    51 hg manifest
       
    52 
       
    53 createrepo > /dev/null 2>&1
       
    54 echo
       
    55 echo '% Rebasing G onto H'
       
    56 hg rebase --base 6 --collapse | hidebackup
       
    57 hg glog  --template '{rev}: {desc}\n'
       
    58 echo "Expected A, E, F, H"
       
    59 hg manifest
       
    60 
       
    61 createrepocomplex () {
       
    62     cd $BASE
       
    63     rm -rf a
       
    64     hg init a
       
    65     cd a
       
    66     addcommit "A" 0
       
    67     addcommit "B" 1
       
    68 
       
    69     hg up 0
       
    70     addcommit "C" 2
       
    71     hg merge
       
    72     commit "D" 3
       
    73 
       
    74     hg up 1
       
    75     addcommit "E" 4
       
    76 
       
    77     addcommit "F" 5
       
    78 
       
    79     hg merge
       
    80     commit "G" 6
       
    81 
       
    82     hg up 0
       
    83     addcommit "H" 7
       
    84 }
       
    85 
       
    86 echo
       
    87 createrepocomplex > /dev/null 2>&1
       
    88 hg glog  --template '{rev}: {desc}\n'
       
    89 
       
    90 echo
       
    91 echo '% Rebase and collapse - more than one external (fail)'
       
    92 hg rebase -s 2 --collapse
       
    93 
       
    94 echo
       
    95 echo '% Rebase and collapse - E onto H'
       
    96 hg rebase -s 4 --collapse | hidebackup
       
    97 hg glog  --template '{rev}: {desc}\n'
       
    98 echo "Expected A, B, C, E, F, H"
       
    99 hg manifest
       
   100 
       
   101 createrepocomplex () {
       
   102     cd $BASE
       
   103     rm -rf a
       
   104     hg init a
       
   105     cd a
       
   106     addcommit "A" 0
       
   107     addcommit "B" 1
       
   108 
       
   109     hg up 0
       
   110     addcommit "C" 2
       
   111     hg merge
       
   112     commit "D" 3
       
   113 
       
   114     hg up 1
       
   115     addcommit "E" 4
       
   116     
       
   117     echo "F" > E
       
   118     commit "F" 5
       
   119 
       
   120     addcommit "G" 6
       
   121 
       
   122     hg merge
       
   123     commit "H" 7
       
   124 
       
   125     hg up 0
       
   126     addcommit "I" 8
       
   127 }
       
   128 
       
   129 echo
       
   130 createrepocomplex > /dev/null 2>&1
       
   131 hg glog  --template '{rev}: {desc}\n'
       
   132 
       
   133 echo
       
   134 echo '% Rebase and collapse - E onto I'
       
   135 hg rebase -s 4 --collapse | hidebackup
       
   136 
       
   137 hg glog  --template '{rev}: {desc}\n'
       
   138 
       
   139 echo "Expected A, B, C, E, G, I"
       
   140 hg manifest
       
   141 
       
   142 echo 'Cat E:'
       
   143 cat E
       
   144 
       
   145 createrepocomplex () {
       
   146     cd $BASE
       
   147     rm -rf a
       
   148     hg init a
       
   149     cd a
       
   150     addcommit "A" 0
       
   151     addcommit "B" 1
       
   152 
       
   153     addcommit "C" 2
       
   154     hg up 1
       
   155 
       
   156     addcommit "D" 3
       
   157     
       
   158     hg merge
       
   159     commit "E" 4
       
   160 
       
   161     hg up 0
       
   162     addcommit "F" 5
       
   163 }
       
   164 
       
   165 echo
       
   166 createrepocomplex > /dev/null 2>&1
       
   167 hg glog  --template '{rev}: {desc}\n'
       
   168 
       
   169 echo
       
   170 echo '% Rebase and collapse - B onto F'
       
   171 hg rebase -s 1 --collapse | hidebackup
       
   172 
       
   173 hg glog  --template '{rev}: {desc}\n'
       
   174 
       
   175 echo "Expected A, B, C, D, F"
       
   176 hg manifest
       
   177 exit 0