tests/test-mq-qpush-exact.t
changeset 13033 026053f691a4
child 14170 31ec4d7eb63f
equal deleted inserted replaced
13032:e41e2b79883d 13033:026053f691a4
       
     1   $ echo "[extensions]" >> $HGRCPATH
       
     2   $ echo "mq=" >> $HGRCPATH
       
     3   $ echo "graphlog=" >> $HGRCPATH
       
     4 
       
     5 make a test repository that looks like this:
       
     6 
       
     7 o    2:28bc7b1afd6a
       
     8 |
       
     9 | @  1:d7fe2034f71b
       
    10 |/
       
    11 o    0/62ecad8b70e5
       
    12 
       
    13   $ hg init r0
       
    14   $ cd r0
       
    15   $ touch f0
       
    16   $ hg ci -m0 -Aq
       
    17   $ touch f1
       
    18   $ hg ci -m1 -Aq
       
    19 
       
    20   $ hg update 0 -q
       
    21   $ touch f2
       
    22   $ hg ci -m2 -Aq
       
    23   $ hg update 1 -q
       
    24 
       
    25 make some patches with a parent: 1:d7fe2034f71b -> p0 -> p1
       
    26 
       
    27   $ echo cp0 >> fp0
       
    28   $ hg add fp0
       
    29   $ hg qnew p0 -d "0 0"
       
    30 
       
    31   $ echo cp1 >> fp1
       
    32   $ hg add fp1
       
    33   $ hg qnew p1 -d "0 0"
       
    34 
       
    35   $ hg qpop -aq
       
    36   patch queue now empty
       
    37 
       
    38 qpush --exact when at the parent
       
    39 
       
    40   $ hg update 1 -q
       
    41   $ hg qpush -e
       
    42   applying p0
       
    43   now at: p0
       
    44   $ hg parents -qr qbase
       
    45   1:d7fe2034f71b
       
    46   $ hg qpop -aq
       
    47   patch queue now empty
       
    48 
       
    49   $ hg qpush -e p0
       
    50   applying p0
       
    51   now at: p0
       
    52   $ hg parents -qr qbase
       
    53   1:d7fe2034f71b
       
    54   $ hg qpop -aq
       
    55   patch queue now empty
       
    56 
       
    57   $ hg qpush -e p1
       
    58   applying p0
       
    59   applying p1
       
    60   now at: p1
       
    61   $ hg parents -qr qbase
       
    62   1:d7fe2034f71b
       
    63   $ hg qpop -aq
       
    64   patch queue now empty
       
    65 
       
    66   $ hg qpush -ea
       
    67   applying p0
       
    68   applying p1
       
    69   now at: p1
       
    70   $ hg parents -qr qbase
       
    71   1:d7fe2034f71b
       
    72   $ hg qpop -aq
       
    73   patch queue now empty
       
    74 
       
    75 qpush --exact when at another rev
       
    76 
       
    77   $ hg update 0 -q
       
    78   $ hg qpush -e
       
    79   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
    80   applying p0
       
    81   now at: p0
       
    82   $ hg parents -qr qbase
       
    83   1:d7fe2034f71b
       
    84   $ hg qpop -aq
       
    85   patch queue now empty
       
    86 
       
    87   $ hg update 0 -q
       
    88   $ hg qpush -e p0
       
    89   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
    90   applying p0
       
    91   now at: p0
       
    92   $ hg parents -qr qbase
       
    93   1:d7fe2034f71b
       
    94   $ hg qpop -aq
       
    95   patch queue now empty
       
    96 
       
    97   $ hg update 0 -q
       
    98   $ hg qpush -e p1
       
    99   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   100   applying p0
       
   101   applying p1
       
   102   now at: p1
       
   103   $ hg parents -qr qbase
       
   104   1:d7fe2034f71b
       
   105   $ hg qpop -aq
       
   106   patch queue now empty
       
   107 
       
   108   $ hg update 0 -q
       
   109   $ hg qpush -ea
       
   110   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   111   applying p0
       
   112   applying p1
       
   113   now at: p1
       
   114   $ hg parents -qr qbase
       
   115   1:d7fe2034f71b
       
   116   $ hg qpop -aq
       
   117   patch queue now empty
       
   118 
       
   119 qpush --exact while crossing branches
       
   120 
       
   121   $ hg update 2 -q
       
   122   $ hg qpush -e
       
   123   1 files updated, 0 files merged, 1 files removed, 0 files unresolved
       
   124   applying p0
       
   125   now at: p0
       
   126   $ hg parents -qr qbase
       
   127   1:d7fe2034f71b
       
   128   $ hg qpop -aq
       
   129   patch queue now empty
       
   130 
       
   131   $ hg update 2 -q
       
   132   $ hg qpush -e p0
       
   133   1 files updated, 0 files merged, 1 files removed, 0 files unresolved
       
   134   applying p0
       
   135   now at: p0
       
   136   $ hg parents -qr qbase
       
   137   1:d7fe2034f71b
       
   138   $ hg qpop -aq
       
   139   patch queue now empty
       
   140 
       
   141   $ hg update 2 -q
       
   142   $ hg qpush -e p1
       
   143   1 files updated, 0 files merged, 1 files removed, 0 files unresolved
       
   144   applying p0
       
   145   applying p1
       
   146   now at: p1
       
   147   $ hg parents -qr qbase
       
   148   1:d7fe2034f71b
       
   149   $ hg qpop -aq
       
   150   patch queue now empty
       
   151 
       
   152   $ hg update 2 -q
       
   153   $ hg qpush -ea
       
   154   1 files updated, 0 files merged, 1 files removed, 0 files unresolved
       
   155   applying p0
       
   156   applying p1
       
   157   now at: p1
       
   158   $ hg parents -qr qbase
       
   159   1:d7fe2034f71b
       
   160   $ hg qpop -aq
       
   161   patch queue now empty
       
   162 
       
   163 qpush --exact --force with changes to an unpatched file
       
   164 
       
   165   $ hg update 1 -q
       
   166   $ echo c0 >> f0
       
   167   $ hg qpush -e
       
   168   abort: local changes found, refresh first
       
   169   [255]
       
   170   $ hg qpush -ef
       
   171   applying p0
       
   172   now at: p0
       
   173   $ cat f0
       
   174   c0
       
   175   $ rm f0
       
   176   $ touch f0
       
   177   $ hg qpop -aq
       
   178   patch queue now empty
       
   179 
       
   180   $ hg update 1 -q
       
   181   $ echo c0 >> f0
       
   182   $ hg qpush -e p1
       
   183   abort: local changes found, refresh first
       
   184   [255]
       
   185   $ hg qpush -e p1 -f
       
   186   applying p0
       
   187   applying p1
       
   188   now at: p1
       
   189   $ cat f0
       
   190   c0
       
   191   $ rm f0
       
   192   $ touch f0
       
   193   $ hg qpop -aq
       
   194   patch queue now empty
       
   195 
       
   196 qpush --exact --force with changes to a patched file
       
   197 
       
   198   $ hg update 1 -q
       
   199   $ echo cp0-bad >> fp0
       
   200   $ hg add fp0
       
   201   $ hg qpush -e
       
   202   abort: local changes found, refresh first
       
   203   [255]
       
   204   $ hg qpush -ef
       
   205   applying p0
       
   206   file fp0 already exists
       
   207   1 out of 1 hunks FAILED -- saving rejects to file fp0.rej
       
   208   patch failed, unable to continue (try -v)
       
   209   patch failed, rejects left in working dir
       
   210   errors during apply, please fix and refresh p0
       
   211   [2]
       
   212   $ cat fp0
       
   213   cp0-bad
       
   214   $ cat fp0.rej
       
   215   --- fp0
       
   216   +++ fp0
       
   217   @@ -0,0 +1,1 @@
       
   218   +cp0
       
   219   $ hg qpop -aqf
       
   220   patch queue now empty
       
   221   $ rm fp0
       
   222   $ rm fp0.rej
       
   223 
       
   224   $ hg update 1 -q
       
   225   $ echo cp1-bad >> fp1
       
   226   $ hg add fp1
       
   227   $ hg qpush -e p1
       
   228   abort: local changes found, refresh first
       
   229   [255]
       
   230   $ hg qpush -e p1 -f
       
   231   applying p0
       
   232   applying p1
       
   233   file fp1 already exists
       
   234   1 out of 1 hunks FAILED -- saving rejects to file fp1.rej
       
   235   patch failed, unable to continue (try -v)
       
   236   patch failed, rejects left in working dir
       
   237   errors during apply, please fix and refresh p1
       
   238   [2]
       
   239   $ cat fp1
       
   240   cp1-bad
       
   241   $ cat fp1.rej
       
   242   --- fp1
       
   243   +++ fp1
       
   244   @@ -0,0 +1,1 @@
       
   245   +cp1
       
   246   $ hg qpop -aqf
       
   247   patch queue now empty
       
   248   $ rm fp1
       
   249   $ rm fp1.rej
       
   250 
       
   251 qpush --exact when already at a patch
       
   252 
       
   253   $ hg update 1
       
   254   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   255   $ hg qpush -e p0
       
   256   applying p0
       
   257   now at: p0
       
   258   $ hg qpush -e p1
       
   259   abort: cannot push --exact with applied patches
       
   260   [255]
       
   261   $ hg qpop -aq
       
   262   patch queue now empty
       
   263 
       
   264 qpush --exact --move should fail
       
   265 
       
   266   $ hg qpush -e --move p1
       
   267   abort: cannot use --exact and --move together
       
   268   [255]
       
   269 
       
   270 qpush --exact a patch without a parent recorded
       
   271 
       
   272   $ hg qpush -q
       
   273   now at: p0
       
   274   $ grep -v '# Parent' .hg/patches/p0 > p0.new
       
   275   $ mv p0.new .hg/patches/p0
       
   276   $ hg qpop -aq
       
   277   patch queue now empty
       
   278   $ hg qpush -e
       
   279   abort: p0 does not have a parent recorded
       
   280   [255]
       
   281   $ hg qpush -e p0
       
   282   abort: p0 does not have a parent recorded
       
   283   [255]
       
   284   $ hg qpush -e p1
       
   285   abort: p0 does not have a parent recorded
       
   286   [255]
       
   287   $ hg qpush -ea
       
   288   abort: p0 does not have a parent recorded
       
   289   [255]
       
   290