annotate tests/test-mq-safety.t @ 11988:8380ed691df8

util: add an interpolate() function to for replacing multiple values util.interpolate can be used to replace multiple items in a string all at once (and optionally apply a function to the replacement), without worrying about recursing: >>> import util >>> s = '$foo, $spam' >>> util.interpolate(r'\$', { 'foo': 'bar', 'spam': 'eggs' }, s) 'bar, eggs' >>> util.interpolate(r'\$', { 'foo': 'spam', 'spam': 'foo' }, s) 'spam, foo' >>> util.interpolate(r'\$', { 'foo': 'spam', 'spam': 'foo' }, s, lambda s: s.upper()) 'SPAM, FOO' The patch also changes filemerge.py to use this new function.
author Steve Losh <steve@stevelosh.com>
date Wed, 18 Aug 2010 18:18:26 -0400
parents 7dc8b9e25f19
children a57e0762c5ec
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
11898
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
1 $ echo '[extensions]' >> $HGRCPATH
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
2 $ echo '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
5980
dcda0c90125c mq: pop/refresh: avoid losing revisions not managed by mq
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
20
11898
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
21 try to commit on top of a patch
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
22
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
23 $ echo quux >> foo
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
24 $ hg ci -m 'append quux'
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
25 abort: cannot commit over an applied mq patch
5980
dcda0c90125c mq: pop/refresh: avoid losing revisions not managed by mq
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
26
11898
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
27
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
28 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
29
11898
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
30 $ mv .hg/patches .hg/patches2
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
31 $ hg ci -m 'append quux'
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
32 $ mv .hg/patches2 .hg/patches
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
33
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
34
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
35 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
36
11898
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
37 $ hg qpop
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
38 abort: popping would remove a revision not managed by this patch queue
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
39 $ hg qpop -n patches 2>&1 | sed -e 's/\(using patch queue:\).*/\1/'
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
40 using patch queue:
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
41 abort: popping would remove a revision not managed by this patch queue
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
42 $ hg qrefresh
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
43 abort: working directory revision is not qtip
5980
dcda0c90125c mq: pop/refresh: avoid losing revisions not managed by mq
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
44
11898
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
45 $ hg up -C qtip
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
46 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
47 $ hg qpop
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
48 abort: popping would remove a revision not managed by this patch queue
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
49 $ hg qrefresh
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
50 abort: cannot refresh a revision with children
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
51 $ hg tip --template '{rev} {desc}\n'
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
52 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
53
dcda0c90125c mq: pop/refresh: avoid losing revisions not managed by mq
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
54
11898
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
55 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
56
11898
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
57 $ cd ..
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
58 $ hg init branchy
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
59 $ cd branchy
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
60 $ echo q > q
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
61 $ hg add q
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
62 $ hg qnew -f qp
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
63 $ hg qpop
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
64 popping qp
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
65 patch queue now empty
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
66 $ echo a > a
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
67 $ hg ci -Ama
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
68 adding a
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
69 $ hg up null
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
70 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
71 $ hg branch b
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
72 marked working directory as branch b
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
73 $ echo c > c
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
74 $ hg ci -Amc
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
75 adding c
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
76 $ hg merge default
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
77 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
78 (branch merge, don't forget to commit)
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
79 $ hg ci -mmerge
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
80 $ hg up default
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
81 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
82 $ hg log
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
83 changeset: 2:65309210bf4e
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
84 branch: b
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
85 tag: tip
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
86 parent: 1:707adb4c8ae1
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
87 parent: 0:cb9a9f314b8b
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
88 user: test
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
89 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
90 summary: merge
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
91
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
92 changeset: 1:707adb4c8ae1
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
93 branch: b
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
94 parent: -1:000000000000
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
95 user: test
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
96 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
97 summary: c
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
98
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
99 changeset: 0:cb9a9f314b8b
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
100 user: test
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
101 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
102 summary: a
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
103
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
104 $ hg qpush
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
105 applying qp
7dc8b9e25f19 tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10362
diff changeset
106 now at: qp