tests/test-mq-qpush-fail.t
author Nicolas Dumazet <nicdumz.commits@gmail.com>
Sun, 07 Nov 2010 22:03:28 +0900
changeset 12948 de6a28ff5ffc
parent 12942 05fffd665170
child 13369 69238d0ca60f
permissions -rw-r--r--
mq: use sets instead of lists for speed The code eventually converts data through sets to ensure unicity: do it earlier to allow faster __contains__ lookups and avoid `del l[l.index(x)]` kind of code.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12467
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
     1
Test that qpush cleans things up if it doesn't complete
4658
17f5d2069551 mq: test that qpush cleans things up when it fails
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
     2
12467
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
     3
  $ echo "[extensions]" >> $HGRCPATH
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
     4
  $ echo "mq=" >> $HGRCPATH
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
     5
  $ hg init repo
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
     6
  $ cd repo
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
     7
  $ echo foo > foo
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
     8
  $ hg ci -Am 'add foo'
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
     9
  adding foo
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    10
  $ touch untracked-file
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    11
  $ echo 'syntax: glob' > .hgignore
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    12
  $ echo '.hgignore' >> .hgignore
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    13
  $ hg qinit
8795
51c29aec0b75 mq: eliminate warning on qpush with empty series
Adrian Buehlmann <adrian@cadifra.com>
parents: 8167
diff changeset
    14
12467
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    15
test qpush on empty series
4658
17f5d2069551 mq: test that qpush cleans things up when it fails
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    16
12467
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    17
  $ hg qpush
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    18
  no patches in series
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    19
  $ hg qnew patch1
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    20
  $ echo >> foo
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    21
  $ hg qrefresh -m 'patch 1'
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    22
  $ hg qnew patch2
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    23
  $ echo bar > bar
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    24
  $ hg add bar
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    25
  $ hg qrefresh -m 'patch 2'
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    26
  $ hg qnew --config 'mq.plain=true' bad-patch
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    27
  $ echo >> foo
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    28
  $ hg qrefresh
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    29
  $ hg qpop -a
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    30
  popping bad-patch
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    31
  popping patch2
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    32
  popping patch1
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    33
  patch queue now empty
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    34
  $ python -c 'print "\xe9"' > message
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    35
  $ cat .hg/patches/bad-patch >> message
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    36
  $ mv message .hg/patches/bad-patch
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    37
  $ hg qpush -a && echo 'qpush succeded?!'
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    38
  applying patch1
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    39
  applying patch2
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    40
  applying bad-patch
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    41
  transaction abort!
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    42
  rollback completed
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    43
  cleaning up working directory...done
12942
05fffd665170 tests: use (esc) for all non-ASCII test output
Mads Kiilerich <mads@kiilerich.com>
parents: 12467
diff changeset
    44
  abort: decoding near '\xe9': 'ascii' codec can't decode byte 0xe9 in position 0: ordinal not in range(128)! (esc)
12467
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    45
  [255]
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    46
  $ hg parents
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    47
  changeset:   0:bbd179dfa0a7
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    48
  tag:         tip
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    49
  user:        test
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    50
  date:        Thu Jan 01 00:00:00 1970 +0000
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    51
  summary:     add foo
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    52
  
4658
17f5d2069551 mq: test that qpush cleans things up when it fails
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    53
12467
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    54
bar should be gone; other unknown/ignored files should still be around
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    55
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    56
  $ hg status -A
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    57
  ? untracked-file
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    58
  I .hgignore
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    59
  C foo
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    60
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    61
preparing qpush of a missing patch
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    62
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    63
  $ hg qpop -a
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    64
  no patches applied
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    65
  $ hg qpush
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    66
  applying patch1
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    67
  now at: patch1
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    68
  $ rm .hg/patches/patch2
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    69
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    70
now we expect the push to fail, but it should NOT complain about patch1
8875
801cacf46e62 mq: fix error message for qpush inexistent-patch (issue1702)
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 8795
diff changeset
    71
12467
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    72
  $ hg qpush
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    73
  applying patch2
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    74
  unable to read patch2
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    75
  now at: patch1
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    76
  [1]
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    77
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    78
preparing qpush of missing patch with no patch applied
8875
801cacf46e62 mq: fix error message for qpush inexistent-patch (issue1702)
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 8795
diff changeset
    79
12467
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    80
  $ hg qpop -a
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    81
  popping patch1
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    82
  patch queue now empty
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    83
  $ rm .hg/patches/patch1
9590
07a62819b309 mq: fix traceback for qpush inexistant-patch with no patch applied
Benoit Allard <benoit@aeteurope.nl>
parents: 8875
diff changeset
    84
12467
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    85
qpush should fail the same way as below
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    86
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    87
  $ hg qpush
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    88
  applying patch1
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    89
  unable to read patch1
05e1171cf4ca tests: unify test-mq-qpush-fail
Matt Mackall <mpm@selenic.com>
parents: 10397
diff changeset
    90
  [1]