tests/test-mq-safety.t
author Pierre-Yves David <pierre-yves.david@octobus.net>
Tue, 11 Feb 2020 11:18:52 +0100
changeset 44363 f7459da77f23
parent 35393 4441705b7111
permissions -rw-r--r--
nodemap: introduce an option to use mmap to read the nodemap mapping The performance and memory benefit is much greater if we don't have to copy all the data in memory for each information. So we introduce an option (on by default) to read the data using mmap. This changeset is the last one definition the API for index support nodemap data. (they have to be able to use the mmaping). Below are some benchmark comparing the best we currently have in 5.3 with the final step of this series (using the persistent nodemap implementation in Rust). The benchmark run `hg perfindex` with various revset and the following variants: Before: * do not use the persistent nodemap * use the CPython implementation of the index for nodemap * use mmapping of the changelog index After: * use the MixedIndex Rust code, with the NodeTree object for nodemap access (still in review) * use the persistent nodemap data from disk * access the persistent nodemap data through mmap * use mmapping of the changelog index The persistent nodemap greatly speed up most operation on very large repositories. Some of the previously very fast lookup end up a bit slower because the persistent nodemap has to be setup. However the absolute slowdown is very small and won't matters in the big picture. Here are some numbers (in seconds) for the reference copy of mozilla-try: Revset Before After abs-change speedup -10000: 0.004622 0.005532 0.000910 × 0.83 -10: 0.000050 0.000132 0.000082 × 0.37 tip 0.000052 0.000085 0.000033 × 0.61 0 + (-10000:) 0.028222 0.005337 -0.022885 × 5.29 0 0.023521 0.000084 -0.023437 × 280.01 (-10000:) + 0 0.235539 0.005308 -0.230231 × 44.37 (-10:) + :9 0.232883 0.000180 -0.232703 ×1293.79 (-10000:) + (:99) 0.238735 0.005358 -0.233377 × 44.55 :99 + (-10000:) 0.317942 0.005593 -0.312349 × 56.84 :9 + (-10:) 0.313372 0.000179 -0.313193 ×1750.68 :9 0.316450 0.000143 -0.316307 ×2212.93 On smaller repositories, the cost of nodemap related operation is not as big, so the win is much more modest. Yet it helps shaving a handful of millisecond here and there. Here are some numbers (in seconds) for the reference copy of mercurial: Revset Before After abs-change speedup -10: 0.000065 0.000097 0.000032 × 0.67 tip 0.000063 0.000078 0.000015 × 0.80 0 0.000561 0.000079 -0.000482 × 7.10 -10000: 0.004609 0.003648 -0.000961 × 1.26 0 + (-10000:) 0.005023 0.003715 -0.001307 × 1.35 (-10:) + :9 0.002187 0.000108 -0.002079 ×20.25 (-10000:) + 0 0.006252 0.003716 -0.002536 × 1.68 (-10000:) + (:99) 0.006367 0.003707 -0.002660 × 1.71 :9 + (-10:) 0.003846 0.000110 -0.003736 ×34.96 :9 0.003854 0.000099 -0.003755 ×38.92 :99 + (-10000:) 0.007644 0.003778 -0.003866 × 2.02 Differential Revision: https://phab.mercurial-scm.org/D7894
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11898
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
     1
  $ echo '[extensions]' >> $HGRCPATH
16048
140b6282ac79 mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16023
diff changeset
     2
  $ echo 'hgext.mq =' >> $HGRCPATH
5980
dcda0c90125c mq: pop/refresh: avoid losing revisions not managed by mq
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
     3
11898
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
     4
  $ hg init repo
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
     5
  $ cd repo
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
     6
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
     7
  $ echo foo > foo
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
     8
  $ hg ci -qAm 'add a file'
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
     9
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
    10
  $ hg qinit
5980
dcda0c90125c mq: pop/refresh: avoid losing revisions not managed by mq
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    11
11898
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
    12
  $ hg qnew foo
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
    13
  $ echo foo >> foo
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
    14
  $ hg qrefresh -m 'append foo'
5980
dcda0c90125c mq: pop/refresh: avoid losing revisions not managed by mq
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    15
11898
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
    16
  $ hg qnew bar
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
    17
  $ echo bar >> foo
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
    18
  $ hg qrefresh -m 'append bar'
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
    19
16048
140b6282ac79 mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16023
diff changeset
    20
Try to operate on public mq changeset
140b6282ac79 mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16023
diff changeset
    21
140b6282ac79 mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16023
diff changeset
    22
  $ hg qpop
140b6282ac79 mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16023
diff changeset
    23
  popping bar
140b6282ac79 mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16023
diff changeset
    24
  now at: foo
140b6282ac79 mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16023
diff changeset
    25
  $ hg phase --public qbase
140b6282ac79 mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16023
diff changeset
    26
  $ echo babar >> foo
140b6282ac79 mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16023
diff changeset
    27
  $ hg qref
26780
bbf544b5f2e9 mq: consistently use qrefresh
timeless@mozdev.org
parents: 25411
diff changeset
    28
  abort: cannot qrefresh public revision
29968
0342bf292f73 mq: use single quotes in use warning
timeless <timeless@mozdev.org>
parents: 26780
diff changeset
    29
  (see 'hg help phases' for details)
16048
140b6282ac79 mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16023
diff changeset
    30
  [255]
140b6282ac79 mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16023
diff changeset
    31
  $ hg revert -a
140b6282ac79 mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16023
diff changeset
    32
  reverting foo
140b6282ac79 mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16023
diff changeset
    33
  $ hg qpop
25411
d298805fb639 phases: rewrite "immutable changeset" to "public changeset"
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 20117
diff changeset
    34
  abort: popping would remove a public revision
29968
0342bf292f73 mq: use single quotes in use warning
timeless <timeless@mozdev.org>
parents: 26780
diff changeset
    35
  (see 'hg help phases' for details)
16048
140b6282ac79 mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16023
diff changeset
    36
  [255]
140b6282ac79 mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16023
diff changeset
    37
  $ hg qfold bar
26780
bbf544b5f2e9 mq: consistently use qrefresh
timeless@mozdev.org
parents: 25411
diff changeset
    38
  abort: cannot qrefresh public revision
29968
0342bf292f73 mq: use single quotes in use warning
timeless <timeless@mozdev.org>
parents: 26780
diff changeset
    39
  (see 'hg help phases' for details)
16048
140b6282ac79 mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16023
diff changeset
    40
  [255]
140b6282ac79 mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16023
diff changeset
    41
  $ hg revert -a
140b6282ac79 mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16023
diff changeset
    42
  reverting foo
140b6282ac79 mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16023
diff changeset
    43
140b6282ac79 mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16023
diff changeset
    44
restore state for remaining test
140b6282ac79 mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16023
diff changeset
    45
140b6282ac79 mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16023
diff changeset
    46
  $ hg qpush
140b6282ac79 mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16023
diff changeset
    47
  applying bar
140b6282ac79 mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16023
diff changeset
    48
  now at: bar
5980
dcda0c90125c mq: pop/refresh: avoid losing revisions not managed by mq
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    49
11898
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
    50
try to commit on top of a patch
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
    51
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
    52
  $ echo quux >> foo
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
    53
  $ hg ci -m 'append quux'
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
    54
  abort: cannot commit over an applied mq patch
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12108
diff changeset
    55
  [255]
5980
dcda0c90125c mq: pop/refresh: avoid losing revisions not managed by mq
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    56
11898
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
    57
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
    58
cheat a bit...
5980
dcda0c90125c mq: pop/refresh: avoid losing revisions not managed by mq
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    59
11898
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
    60
  $ mv .hg/patches .hg/patches2
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
    61
  $ hg ci -m 'append quux'
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
    62
  $ mv .hg/patches2 .hg/patches
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
    63
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
    64
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
    65
qpop/qrefresh on the wrong revision
5980
dcda0c90125c mq: pop/refresh: avoid losing revisions not managed by mq
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    66
11898
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
    67
  $ hg qpop
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
    68
  abort: popping would remove a revision not managed by this patch queue
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12108
diff changeset
    69
  [255]
12108
a57e0762c5ec tests: mq-safety: use regular expression instead of sed
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11898
diff changeset
    70
  $ hg qpop -n patches
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34661
diff changeset
    71
  using patch queue: $TESTTMP/repo/.hg/patches
11898
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
    72
  abort: popping would remove a revision not managed by this patch queue
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12108
diff changeset
    73
  [255]
11898
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
    74
  $ hg qrefresh
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
    75
  abort: working directory revision is not qtip
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12108
diff changeset
    76
  [255]
5980
dcda0c90125c mq: pop/refresh: avoid losing revisions not managed by mq
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    77
11898
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
    78
  $ hg up -C qtip
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
    79
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
    80
  $ hg qpop
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
    81
  abort: popping would remove a revision not managed by this patch queue
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12108
diff changeset
    82
  [255]
11898
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
    83
  $ hg qrefresh
26780
bbf544b5f2e9 mq: consistently use qrefresh
timeless@mozdev.org
parents: 25411
diff changeset
    84
  abort: cannot qrefresh a revision with children
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12108
diff changeset
    85
  [255]
11898
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
    86
  $ hg tip --template '{rev} {desc}\n'
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
    87
  3 append quux
5980
dcda0c90125c mq: pop/refresh: avoid losing revisions not managed by mq
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    88
dcda0c90125c mq: pop/refresh: avoid losing revisions not managed by mq
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    89
11898
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
    90
qpush warning branchheads
10362
2e3ec7ef5349 mq: don't warn on qpush against a branch head
Dirkjan Ochtman <djc.ochtman@kentyde.com>
parents: 10119
diff changeset
    91
11898
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
    92
  $ cd ..
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
    93
  $ hg init branchy
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
    94
  $ cd branchy
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
    95
  $ echo q > q
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
    96
  $ hg add q
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
    97
  $ hg qnew -f qp
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
    98
  $ hg qpop
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
    99
  popping qp
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
   100
  patch queue now empty
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
   101
  $ echo a > a
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
   102
  $ hg ci -Ama
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
   103
  adding a
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
   104
  $ hg up null
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
   105
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
   106
  $ hg branch b
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
   107
  marked working directory as branch b
15615
41885892796e branch: warn on branching
Matt Mackall <mpm@selenic.com>
parents: 12847
diff changeset
   108
  (branches are permanent and global, did you want a bookmark?)
11898
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
   109
  $ echo c > c
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
   110
  $ hg ci -Amc
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
   111
  adding c
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
   112
  $ hg merge default
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
   113
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
   114
  (branch merge, don't forget to commit)
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
   115
  $ hg ci -mmerge
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
   116
  $ hg up default
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
   117
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
   118
  $ hg log
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
   119
  changeset:   2:65309210bf4e
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
   120
  branch:      b
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
   121
  tag:         tip
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
   122
  parent:      1:707adb4c8ae1
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
   123
  parent:      0:cb9a9f314b8b
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
   124
  user:        test
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
   125
  date:        Thu Jan 01 00:00:00 1970 +0000
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
   126
  summary:     merge
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
   127
  
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
   128
  changeset:   1:707adb4c8ae1
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
   129
  branch:      b
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
   130
  parent:      -1:000000000000
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
   131
  user:        test
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
   132
  date:        Thu Jan 01 00:00:00 1970 +0000
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
   133
  summary:     c
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
   134
  
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
   135
  changeset:   0:cb9a9f314b8b
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
   136
  user:        test
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
   137
  date:        Thu Jan 01 00:00:00 1970 +0000
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
   138
  summary:     a
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
   139
  
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
   140
  $ hg qpush
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
   141
  applying qp
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
   142
  now at: qp
12380
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   143
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   144
Testing applied patches, push and --force
12378
ab237534d800 mq: always require --force when pushing patches (issue2363)
Patrick Mezard <pmezard@gmail.com>
parents: 10362
diff changeset
   145
12380
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   146
  $ cd ..
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   147
  $ hg init forcepush
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   148
  $ cd forcepush
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   149
  $ echo a > a
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   150
  $ hg ci -Am adda
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   151
  adding a
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   152
  $ echo a >> a
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   153
  $ hg ci -m changea
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   154
  $ hg up 0
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   155
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   156
  $ hg branch branch
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   157
  marked working directory as branch branch
15615
41885892796e branch: warn on branching
Matt Mackall <mpm@selenic.com>
parents: 12847
diff changeset
   158
  (branches are permanent and global, did you want a bookmark?)
12380
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   159
  $ echo b > b
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   160
  $ hg ci -Am addb
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   161
  adding b
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   162
  $ hg up 0
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   163
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   164
  $ hg --cwd .. clone -r 0 forcepush forcepush2
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   165
  adding changesets
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   166
  adding manifests
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   167
  adding file changes
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   168
  added 1 changesets with 1 changes to 1 files
34661
eb586ed5d8ce transaction-summary: show the range of new revisions upon pull/unbundle (BC)
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 29968
diff changeset
   169
  new changesets 07f494440405
12380
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   170
  updating to branch default
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   171
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   172
  $ echo a >> a
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   173
  $ hg qnew patch
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   174
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   175
Pushing applied patch with --rev without --force
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   176
15952
ec8a9e06cf05 mq-safety: don't apply safety on non-outgoing changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 15951
diff changeset
   177
  $ hg push -r . ../forcepush2
12380
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   178
  pushing to ../forcepush2
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   179
  abort: source has mq patches applied
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   180
  [255]
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   181
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   182
Pushing applied patch with branchhash, without --force
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   183
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   184
  $ hg push ../forcepush2#default
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   185
  pushing to ../forcepush2
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   186
  abort: source has mq patches applied
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   187
  [255]
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   188
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   189
Pushing revs excluding applied patch
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   190
17199
c6e38fdff23c tests: convert a push test to use revsets
Matt Harbison <matt_harbison@yahoo.com>
parents: 16913
diff changeset
   191
  $ hg push --new-branch -r 'branch(branch)' -r 2 ../forcepush2
12380
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   192
  pushing to ../forcepush2
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   193
  searching for changes
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   194
  adding changesets
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   195
  adding manifests
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   196
  adding file changes
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   197
  added 1 changesets with 1 changes to 1 files
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   198
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   199
Pushing applied patch with --force
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   200
15952
ec8a9e06cf05 mq-safety: don't apply safety on non-outgoing changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 15951
diff changeset
   201
  $ hg phase --force --secret 'mq()'
12380
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   202
  $ hg push --force -r default ../forcepush2
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   203
  pushing to ../forcepush2
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   204
  searching for changes
15993
0b05e0bfdc1c scmutil: unify some 'no changes found' messages
Matt Mackall <mpm@selenic.com>
parents: 15952
diff changeset
   205
  no changes found (ignored 1 secret changesets)
16023
90f8b8dd0326 push: return 1 if no changes found (issue3228)
Matt Mackall <mpm@selenic.com>
parents: 16017
diff changeset
   206
  [1]
15952
ec8a9e06cf05 mq-safety: don't apply safety on non-outgoing changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 15951
diff changeset
   207
  $ hg phase --draft 'mq()'
15926
f94513971767 mq: have mq create secret changeset only
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 15623
diff changeset
   208
  $ hg push --force -r default ../forcepush2
f94513971767 mq: have mq create secret changeset only
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 15623
diff changeset
   209
  pushing to ../forcepush2
f94513971767 mq: have mq create secret changeset only
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 15623
diff changeset
   210
  searching for changes
12380
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   211
  adding changesets
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   212
  adding manifests
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   213
  adding file changes
1e2625fe371b merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12378 12376
diff changeset
   214
  added 1 changesets with 1 changes to 1 files (+1 heads)
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 16048
diff changeset
   215
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 16048
diff changeset
   216
  $ cd ..