tests/test-mq-guards
changeset 11896 286693eaba47
parent 11895 78e3a70c4445
child 11897 0e4bbe18ff95
equal deleted inserted replaced
11895:78e3a70c4445 11896:286693eaba47
     1 #!/bin/sh
       
     2 
       
     3 echo "[extensions]" >> $HGRCPATH
       
     4 echo "mq=" >> $HGRCPATH
       
     5 
       
     6 hg init
       
     7 hg qinit
       
     8 
       
     9 echo x > x
       
    10 hg ci -Ama
       
    11 
       
    12 hg qnew a.patch
       
    13 echo a > a
       
    14 hg add a
       
    15 hg qrefresh
       
    16 
       
    17 hg qnew b.patch
       
    18 echo b > b
       
    19 hg add b
       
    20 hg qrefresh
       
    21 
       
    22 hg qnew c.patch
       
    23 echo c > c
       
    24 hg add c
       
    25 hg qrefresh
       
    26 
       
    27 hg qpop -a
       
    28 
       
    29 echo % should fail
       
    30 hg qguard does-not-exist.patch +bleh
       
    31 
       
    32 echo % should fail
       
    33 hg qguard +fail
       
    34 
       
    35 hg qpush
       
    36 echo % should guard a.patch
       
    37 hg qguard +a
       
    38 echo % should print +a
       
    39 hg qguard
       
    40 hg qpop
       
    41 
       
    42 echo % should fail
       
    43 hg qpush a.patch
       
    44 
       
    45 hg qguard a.patch
       
    46 echo % should push b.patch
       
    47 hg qpush
       
    48 
       
    49 hg qpop
       
    50 echo % test selection of an empty guard
       
    51 hg qselect ""
       
    52 hg qselect a
       
    53 echo % should push a.patch
       
    54 hg qpush
       
    55 
       
    56 hg qguard -- c.patch -a
       
    57 echo % should print -a
       
    58 hg qguard c.patch
       
    59 
       
    60 echo % should skip c.patch
       
    61 hg qpush -a
       
    62 echo % should display b.patch
       
    63 hg qtop
       
    64 
       
    65 hg qguard -n c.patch
       
    66 echo % should push c.patch
       
    67 hg qpush -a
       
    68 
       
    69 hg qpop -a
       
    70 hg qselect -n
       
    71 echo % should push all
       
    72 hg qpush -a
       
    73 
       
    74 hg qpop -a
       
    75 hg qguard a.patch +1
       
    76 hg qguard b.patch +2
       
    77 hg qselect 1
       
    78 echo % should push a.patch, not b.patch
       
    79 hg qpush
       
    80 hg qpush
       
    81 hg qpop -a
       
    82 
       
    83 hg qselect 2
       
    84 echo % should push b.patch
       
    85 hg qpush
       
    86 hg qpush -a
       
    87 # Used to be an issue with holes in the patch sequence
       
    88 # So, put one hole on the base and ask for topmost patch.
       
    89 hg qtop
       
    90 hg qpop -a
       
    91 
       
    92 hg qselect 1 2
       
    93 echo % should push a.patch, b.patch
       
    94 hg qpush
       
    95 hg qpush
       
    96 hg qpop -a
       
    97 
       
    98 hg qguard -- a.patch +1 +2 -3
       
    99 hg qselect 1 2 3
       
   100 
       
   101 echo % list patches and guards
       
   102 hg qguard -l
       
   103 echo % have at least one patch applied to test coloring
       
   104 hg qpush
       
   105 echo % list patches and guards with color
       
   106 hg --config extensions.color= qguard --config color.mode=ansi \
       
   107     -l --color=always
       
   108 echo % should pop b.patch
       
   109 hg qpop
       
   110 echo % list series
       
   111 hg qseries -v
       
   112 echo % list guards
       
   113 hg qselect
       
   114 echo % should push b.patch
       
   115 hg qpush
       
   116 
       
   117 hg qpush -a
       
   118 hg qselect -n --reapply
       
   119 echo % guards in series file: +1 +2 -3
       
   120 hg qselect -s
       
   121 echo % should show c.patch
       
   122 hg qapplied
       
   123 
       
   124 hg qrename a.patch new.patch
       
   125 echo % should show :
       
   126 echo % new.patch: +1 +2 -3
       
   127 echo % b.patch: +2
       
   128 echo % c.patch: unguarded
       
   129 hg qguard -l
       
   130 
       
   131 hg qnew d.patch
       
   132 hg qpop
       
   133 echo % should show new.patch and b.patch as Guarded, c.patch as Applied
       
   134 echo % and d.patch as Unapplied
       
   135 hg qseries -v
       
   136 echo % qseries again, but with color
       
   137 hg --config extensions.color= qseries -v --color=always
       
   138 
       
   139 hg qguard d.patch +2
       
   140 echo % new.patch, b.patch: Guarded. c.patch: Applied. d.patch: Guarded.
       
   141 hg qseries -v
       
   142 
       
   143 qappunappv()
       
   144 {
       
   145     for command in qapplied "qapplied -v" qunapplied "qunapplied -v"; do
       
   146         echo % hg $command
       
   147         hg $command
       
   148     done
       
   149 }
       
   150 
       
   151 hg qpop -a
       
   152 hg qguard -l
       
   153 qappunappv
       
   154 hg qselect 1
       
   155 qappunappv
       
   156 hg qpush -a
       
   157 qappunappv
       
   158 hg qselect 2
       
   159 qappunappv
       
   160 
       
   161 for patch in `hg qseries`; do
       
   162     echo % hg qapplied $patch
       
   163     hg qapplied $patch
       
   164     echo % hg qunapplied $patch
       
   165     hg qunapplied $patch
       
   166 done
       
   167 
       
   168 echo % hg qseries -m: only b.patch should be shown
       
   169 echo the guards file was not ignored in the past
       
   170 hg qdelete -k b.patch
       
   171 hg qseries -m
       
   172 echo % hg qseries -m with color
       
   173 hg --config extensions.color= qseries -m --color=always