##// END OF EJS Templates
tests: move blackbox testing of tags to test-tags.t...
Gregory Szorc -
r24706:5150b2b5 default
parent child Browse files
Show More
@@ -1,158 +1,147 b''
1 setup
1 setup
2 $ cat >> $HGRCPATH <<EOF
2 $ cat >> $HGRCPATH <<EOF
3 > [extensions]
3 > [extensions]
4 > blackbox=
4 > blackbox=
5 > mock=$TESTDIR/mockblackbox.py
5 > mock=$TESTDIR/mockblackbox.py
6 > mq=
6 > mq=
7 > EOF
7 > EOF
8 $ hg init blackboxtest
8 $ hg init blackboxtest
9 $ cd blackboxtest
9 $ cd blackboxtest
10
10
11 command, exit codes, and duration
11 command, exit codes, and duration
12
12
13 $ echo a > a
13 $ echo a > a
14 $ hg add a
14 $ hg add a
15 $ hg blackbox
15 $ hg blackbox
16 1970/01/01 00:00:00 bob> add a
16 1970/01/01 00:00:00 bob> add a
17 1970/01/01 00:00:00 bob> add a exited 0 after * seconds (glob)
17 1970/01/01 00:00:00 bob> add a exited 0 after * seconds (glob)
18
18
19 incoming change tracking
19 incoming change tracking
20
20
21 create two heads to verify that we only see one change in the log later
21 create two heads to verify that we only see one change in the log later
22 $ hg commit -ma
22 $ hg commit -ma
23 $ hg up null
23 $ hg up null
24 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
24 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
25 $ echo b > b
25 $ echo b > b
26 $ hg commit -Amb
26 $ hg commit -Amb
27 adding b
27 adding b
28 created new head
28 created new head
29
29
30 clone, commit, pull
30 clone, commit, pull
31 $ hg clone . ../blackboxtest2
31 $ hg clone . ../blackboxtest2
32 updating to branch default
32 updating to branch default
33 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
33 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
34 $ echo c > c
34 $ echo c > c
35 $ hg commit -Amc
35 $ hg commit -Amc
36 adding c
36 adding c
37 $ cd ../blackboxtest2
37 $ cd ../blackboxtest2
38 $ hg pull
38 $ hg pull
39 pulling from $TESTTMP/blackboxtest (glob)
39 pulling from $TESTTMP/blackboxtest (glob)
40 searching for changes
40 searching for changes
41 adding changesets
41 adding changesets
42 adding manifests
42 adding manifests
43 adding file changes
43 adding file changes
44 added 1 changesets with 1 changes to 1 files
44 added 1 changesets with 1 changes to 1 files
45 (run 'hg update' to get a working copy)
45 (run 'hg update' to get a working copy)
46 $ hg blackbox -l 5
46 $ hg blackbox -l 5
47 1970/01/01 00:00:00 bob> pull
47 1970/01/01 00:00:00 bob> pull
48 1970/01/01 00:00:00 bob> updated served branch cache in ?.???? seconds (glob)
48 1970/01/01 00:00:00 bob> updated served branch cache in ?.???? seconds (glob)
49 1970/01/01 00:00:00 bob> wrote served branch cache with 1 labels and 2 nodes
49 1970/01/01 00:00:00 bob> wrote served branch cache with 1 labels and 2 nodes
50 1970/01/01 00:00:00 bob> 1 incoming changes - new heads: d02f48003e62
50 1970/01/01 00:00:00 bob> 1 incoming changes - new heads: d02f48003e62
51 1970/01/01 00:00:00 bob> pull exited 0 after * seconds (glob)
51 1970/01/01 00:00:00 bob> pull exited 0 after * seconds (glob)
52
52
53 we must not cause a failure if we cannot write to the log
53 we must not cause a failure if we cannot write to the log
54
54
55 $ hg rollback
55 $ hg rollback
56 repository tip rolled back to revision 1 (undo pull)
56 repository tip rolled back to revision 1 (undo pull)
57
57
58 #if unix-permissions no-root
58 #if unix-permissions no-root
59 $ chmod 000 .hg/blackbox.log
59 $ chmod 000 .hg/blackbox.log
60 $ hg --debug incoming
60 $ hg --debug incoming
61 warning: cannot write to blackbox.log: Permission denied
61 warning: cannot write to blackbox.log: Permission denied
62 comparing with $TESTTMP/blackboxtest (glob)
62 comparing with $TESTTMP/blackboxtest (glob)
63 query 1; heads
63 query 1; heads
64 searching for changes
64 searching for changes
65 all local heads known remotely
65 all local heads known remotely
66 changeset: 2:d02f48003e62c24e2659d97d30f2a83abe5d5d51
66 changeset: 2:d02f48003e62c24e2659d97d30f2a83abe5d5d51
67 tag: tip
67 tag: tip
68 phase: draft
68 phase: draft
69 parent: 1:6563da9dcf87b1949716e38ff3e3dfaa3198eb06
69 parent: 1:6563da9dcf87b1949716e38ff3e3dfaa3198eb06
70 parent: -1:0000000000000000000000000000000000000000
70 parent: -1:0000000000000000000000000000000000000000
71 manifest: 2:ab9d46b053ebf45b7996f2922b9893ff4b63d892
71 manifest: 2:ab9d46b053ebf45b7996f2922b9893ff4b63d892
72 user: test
72 user: test
73 date: Thu Jan 01 00:00:00 1970 +0000
73 date: Thu Jan 01 00:00:00 1970 +0000
74 files+: c
74 files+: c
75 extra: branch=default
75 extra: branch=default
76 description:
76 description:
77 c
77 c
78
78
79
79
80 #endif
80 #endif
81 $ hg pull
81 $ hg pull
82 pulling from $TESTTMP/blackboxtest (glob)
82 pulling from $TESTTMP/blackboxtest (glob)
83 searching for changes
83 searching for changes
84 adding changesets
84 adding changesets
85 adding manifests
85 adding manifests
86 adding file changes
86 adding file changes
87 added 1 changesets with 1 changes to 1 files
87 added 1 changesets with 1 changes to 1 files
88 (run 'hg update' to get a working copy)
88 (run 'hg update' to get a working copy)
89
89
90 a failure reading from the log is fine
90 a failure reading from the log is fine
91 #if unix-permissions no-root
91 #if unix-permissions no-root
92 $ hg blackbox -l 3
92 $ hg blackbox -l 3
93 abort: Permission denied: $TESTTMP/blackboxtest2/.hg/blackbox.log
93 abort: Permission denied: $TESTTMP/blackboxtest2/.hg/blackbox.log
94 [255]
94 [255]
95
95
96 $ chmod 600 .hg/blackbox.log
96 $ chmod 600 .hg/blackbox.log
97 #endif
97 #endif
98
98
99 backup bundles get logged
99 backup bundles get logged
100
100
101 $ touch d
101 $ touch d
102 $ hg commit -Amd
102 $ hg commit -Amd
103 adding d
103 adding d
104 created new head
104 created new head
105 $ hg strip tip
105 $ hg strip tip
106 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
106 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
107 saved backup bundle to $TESTTMP/blackboxtest2/.hg/strip-backup/*-backup.hg (glob)
107 saved backup bundle to $TESTTMP/blackboxtest2/.hg/strip-backup/*-backup.hg (glob)
108 $ hg blackbox -l 5
108 $ hg blackbox -l 5
109 1970/01/01 00:00:00 bob> strip tip
109 1970/01/01 00:00:00 bob> strip tip
110 1970/01/01 00:00:00 bob> saved backup bundle to $TESTTMP/blackboxtest2/.hg/strip-backup/*-backup.hg (glob)
110 1970/01/01 00:00:00 bob> saved backup bundle to $TESTTMP/blackboxtest2/.hg/strip-backup/*-backup.hg (glob)
111 1970/01/01 00:00:00 bob> updated base branch cache in ?.???? seconds (glob)
111 1970/01/01 00:00:00 bob> updated base branch cache in ?.???? seconds (glob)
112 1970/01/01 00:00:00 bob> wrote base branch cache with 1 labels and 2 nodes
112 1970/01/01 00:00:00 bob> wrote base branch cache with 1 labels and 2 nodes
113 1970/01/01 00:00:00 bob> strip tip exited 0 after * seconds (glob)
113 1970/01/01 00:00:00 bob> strip tip exited 0 after * seconds (glob)
114
114
115 tags cache gets logged
116 $ hg up tip
117 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
118 $ hg tag -m 'create test tag' test-tag
119 $ hg tags
120 tip 3:5b5562c08298
121 test-tag 2:d02f48003e62
122 $ hg blackbox -l 3
123 1970/01/01 00:00:00 bob> resolved 1 tags cache entries from 1 manifests in ?.???? seconds (glob)
124 1970/01/01 00:00:00 bob> writing tags cache file with 2 heads and 1 tags
125 1970/01/01 00:00:00 bob> tags exited 0 after ?.?? seconds (glob)
126
127 extension and python hooks - use the eol extension for a pythonhook
115 extension and python hooks - use the eol extension for a pythonhook
128
116
129 $ echo '[extensions]' >> .hg/hgrc
117 $ echo '[extensions]' >> .hg/hgrc
130 $ echo 'eol=' >> .hg/hgrc
118 $ echo 'eol=' >> .hg/hgrc
131 $ echo '[hooks]' >> .hg/hgrc
119 $ echo '[hooks]' >> .hg/hgrc
132 $ echo 'update = echo hooked' >> .hg/hgrc
120 $ echo 'update = echo hooked' >> .hg/hgrc
133 $ hg update
121 $ hg update
134 hooked
122 hooked
135 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
123 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
136 $ hg blackbox -l 4
124 $ hg blackbox -l 5
137 1970/01/01 00:00:00 bob> update
125 1970/01/01 00:00:00 bob> update
126 1970/01/01 00:00:00 bob> writing tags cache file with 2 heads and 0 tags
138 1970/01/01 00:00:00 bob> pythonhook-preupdate: hgext.eol.preupdate finished in * seconds (glob)
127 1970/01/01 00:00:00 bob> pythonhook-preupdate: hgext.eol.preupdate finished in * seconds (glob)
139 1970/01/01 00:00:00 bob> exthook-update: echo hooked finished in * seconds (glob)
128 1970/01/01 00:00:00 bob> exthook-update: echo hooked finished in * seconds (glob)
140 1970/01/01 00:00:00 bob> update exited 0 after * seconds (glob)
129 1970/01/01 00:00:00 bob> update exited 0 after * seconds (glob)
141
130
142 log rotation
131 log rotation
143
132
144 $ echo '[blackbox]' >> .hg/hgrc
133 $ echo '[blackbox]' >> .hg/hgrc
145 $ echo 'maxsize = 20 b' >> .hg/hgrc
134 $ echo 'maxsize = 20 b' >> .hg/hgrc
146 $ echo 'maxfiles = 3' >> .hg/hgrc
135 $ echo 'maxfiles = 3' >> .hg/hgrc
147 $ hg status
136 $ hg status
148 $ hg status
137 $ hg status
149 $ hg status
138 $ hg status
150 $ hg tip -q
139 $ hg tip -q
151 3:5b5562c08298
140 2:d02f48003e62
152 $ ls .hg/blackbox.log*
141 $ ls .hg/blackbox.log*
153 .hg/blackbox.log
142 .hg/blackbox.log
154 .hg/blackbox.log.1
143 .hg/blackbox.log.1
155 .hg/blackbox.log.2
144 .hg/blackbox.log.2
156
145
157 cleanup
146 cleanup
158 $ cd ..
147 $ cd ..
@@ -1,418 +1,438 b''
1 setup
2
3 $ cat >> $HGRCPATH << EOF
4 > [extensions]
5 > blackbox=
6 > mock=$TESTDIR/mockblackbox.py
7 > EOF
8
1 Helper functions:
9 Helper functions:
2
10
3 $ cacheexists() {
11 $ cacheexists() {
4 > [ -f .hg/cache/tags ] && echo "tag cache exists" || echo "no tag cache"
12 > [ -f .hg/cache/tags ] && echo "tag cache exists" || echo "no tag cache"
5 > }
13 > }
6
14
7 $ dumptags() {
15 $ dumptags() {
8 > rev=$1
16 > rev=$1
9 > echo "rev $rev: .hgtags:"
17 > echo "rev $rev: .hgtags:"
10 > hg cat -r$rev .hgtags
18 > hg cat -r$rev .hgtags
11 > }
19 > }
12
20
13 # XXX need to test that the tag cache works when we strip an old head
21 # XXX need to test that the tag cache works when we strip an old head
14 # and add a new one rooted off non-tip: i.e. node and rev of tip are the
22 # and add a new one rooted off non-tip: i.e. node and rev of tip are the
15 # same, but stuff has changed behind tip.
23 # same, but stuff has changed behind tip.
16
24
17 Setup:
25 Setup:
18
26
19 $ hg init t
27 $ hg init t
20 $ cd t
28 $ cd t
21 $ cacheexists
29 $ cacheexists
22 no tag cache
30 no tag cache
23 $ hg id
31 $ hg id
24 000000000000 tip
32 000000000000 tip
25 $ cacheexists
33 $ cacheexists
26 no tag cache
34 no tag cache
27 $ echo a > a
35 $ echo a > a
28 $ hg add a
36 $ hg add a
29 $ hg commit -m "test"
37 $ hg commit -m "test"
30 $ hg co
38 $ hg co
31 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
39 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
32 $ hg identify
40 $ hg identify
33 acb14030fe0a tip
41 acb14030fe0a tip
34 $ cacheexists
42 $ cacheexists
35 tag cache exists
43 tag cache exists
36
44
37 Try corrupting the cache
45 Try corrupting the cache
38
46
39 $ printf 'a b' > .hg/cache/tags
47 $ printf 'a b' > .hg/cache/tags
40 $ hg identify
48 $ hg identify
41 acb14030fe0a tip
49 acb14030fe0a tip
42 $ cacheexists
50 $ cacheexists
43 tag cache exists
51 tag cache exists
44 $ hg identify
52 $ hg identify
45 acb14030fe0a tip
53 acb14030fe0a tip
46
54
47 Create local tag with long name:
55 Create local tag with long name:
48
56
49 $ T=`hg identify --debug --id`
57 $ T=`hg identify --debug --id`
50 $ hg tag -l "This is a local tag with a really long name!"
58 $ hg tag -l "This is a local tag with a really long name!"
51 $ hg tags
59 $ hg tags
52 tip 0:acb14030fe0a
60 tip 0:acb14030fe0a
53 This is a local tag with a really long name! 0:acb14030fe0a
61 This is a local tag with a really long name! 0:acb14030fe0a
54 $ rm .hg/localtags
62 $ rm .hg/localtags
55
63
56 Create a tag behind hg's back:
64 Create a tag behind hg's back:
57
65
58 $ echo "$T first" > .hgtags
66 $ echo "$T first" > .hgtags
59 $ cat .hgtags
67 $ cat .hgtags
60 acb14030fe0a21b60322c440ad2d20cf7685a376 first
68 acb14030fe0a21b60322c440ad2d20cf7685a376 first
61 $ hg add .hgtags
69 $ hg add .hgtags
62 $ hg commit -m "add tags"
70 $ hg commit -m "add tags"
63 $ hg tags
71 $ hg tags
64 tip 1:b9154636be93
72 tip 1:b9154636be93
65 first 0:acb14030fe0a
73 first 0:acb14030fe0a
66 $ hg identify
74 $ hg identify
67 b9154636be93 tip
75 b9154636be93 tip
68
76
69 Repeat with cold tag cache:
77 Repeat with cold tag cache:
70
78
71 $ rm -f .hg/cache/tags
79 $ rm -f .hg/cache/tags
72 $ hg identify
80 $ hg identify
73 b9154636be93 tip
81 b9154636be93 tip
74
82
75 And again, but now unable to write tag cache:
83 And again, but now unable to write tag cache:
76
84
77 #if unix-permissions
85 #if unix-permissions
78 $ rm -f .hg/cache/tags
86 $ rm -f .hg/cache/tags
79 $ chmod 555 .hg
87 $ chmod 555 .hg
80 $ hg identify
88 $ hg identify
81 b9154636be93 tip
89 b9154636be93 tip
82 $ chmod 755 .hg
90 $ chmod 755 .hg
83 #endif
91 #endif
84
92
93 Tag cache debug info written to blackbox log
94
95 $ rm -f .hg/cache/tags
96 $ hg identify
97 b9154636be93 tip
98 $ hg blackbox -l 4
99 1970/01/01 00:00:00 bob> identify
100 1970/01/01 00:00:00 bob> resolved 1 tags cache entries from 1 manifests in ?.???? seconds (glob)
101 1970/01/01 00:00:00 bob> writing tags cache file with 1 heads and 1 tags
102 1970/01/01 00:00:00 bob> identify exited 0 after ?.?? seconds (glob)
103
104
85 Create a branch:
105 Create a branch:
86
106
87 $ echo bb > a
107 $ echo bb > a
88 $ hg status
108 $ hg status
89 M a
109 M a
90 $ hg identify
110 $ hg identify
91 b9154636be93+ tip
111 b9154636be93+ tip
92 $ hg co first
112 $ hg co first
93 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
113 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
94 $ hg id
114 $ hg id
95 acb14030fe0a+ first
115 acb14030fe0a+ first
96 $ hg -v id
116 $ hg -v id
97 acb14030fe0a+ first
117 acb14030fe0a+ first
98 $ hg status
118 $ hg status
99 M a
119 M a
100 $ echo 1 > b
120 $ echo 1 > b
101 $ hg add b
121 $ hg add b
102 $ hg commit -m "branch"
122 $ hg commit -m "branch"
103 created new head
123 created new head
104 $ hg id
124 $ hg id
105 c8edf04160c7 tip
125 c8edf04160c7 tip
106
126
107 Merge the two heads:
127 Merge the two heads:
108
128
109 $ hg merge 1
129 $ hg merge 1
110 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
130 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
111 (branch merge, don't forget to commit)
131 (branch merge, don't forget to commit)
112 $ hg id
132 $ hg id
113 c8edf04160c7+b9154636be93+ tip
133 c8edf04160c7+b9154636be93+ tip
114 $ hg status
134 $ hg status
115 M .hgtags
135 M .hgtags
116 $ hg commit -m "merge"
136 $ hg commit -m "merge"
117
137
118 Create a fake head, make sure tag not visible afterwards:
138 Create a fake head, make sure tag not visible afterwards:
119
139
120 $ cp .hgtags tags
140 $ cp .hgtags tags
121 $ hg tag last
141 $ hg tag last
122 $ hg rm .hgtags
142 $ hg rm .hgtags
123 $ hg commit -m "remove"
143 $ hg commit -m "remove"
124
144
125 $ mv tags .hgtags
145 $ mv tags .hgtags
126 $ hg add .hgtags
146 $ hg add .hgtags
127 $ hg commit -m "readd"
147 $ hg commit -m "readd"
128 $
148 $
129 $ hg tags
149 $ hg tags
130 tip 6:35ff301afafe
150 tip 6:35ff301afafe
131 first 0:acb14030fe0a
151 first 0:acb14030fe0a
132
152
133 Add invalid tags:
153 Add invalid tags:
134
154
135 $ echo "spam" >> .hgtags
155 $ echo "spam" >> .hgtags
136 $ echo >> .hgtags
156 $ echo >> .hgtags
137 $ echo "foo bar" >> .hgtags
157 $ echo "foo bar" >> .hgtags
138 $ echo "a5a5 invalid" >> .hg/localtags
158 $ echo "a5a5 invalid" >> .hg/localtags
139 $ cat .hgtags
159 $ cat .hgtags
140 acb14030fe0a21b60322c440ad2d20cf7685a376 first
160 acb14030fe0a21b60322c440ad2d20cf7685a376 first
141 spam
161 spam
142
162
143 foo bar
163 foo bar
144 $ hg commit -m "tags"
164 $ hg commit -m "tags"
145
165
146 Report tag parse error on other head:
166 Report tag parse error on other head:
147
167
148 $ hg up 3
168 $ hg up 3
149 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
169 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
150 $ echo 'x y' >> .hgtags
170 $ echo 'x y' >> .hgtags
151 $ hg commit -m "head"
171 $ hg commit -m "head"
152 created new head
172 created new head
153
173
154 $ hg tags
174 $ hg tags
155 .hgtags@75d9f02dfe28, line 2: cannot parse entry
175 .hgtags@75d9f02dfe28, line 2: cannot parse entry
156 .hgtags@75d9f02dfe28, line 4: node 'foo' is not well formed
176 .hgtags@75d9f02dfe28, line 4: node 'foo' is not well formed
157 .hgtags@c4be69a18c11, line 2: node 'x' is not well formed
177 .hgtags@c4be69a18c11, line 2: node 'x' is not well formed
158 tip 8:c4be69a18c11
178 tip 8:c4be69a18c11
159 first 0:acb14030fe0a
179 first 0:acb14030fe0a
160 $ hg tip
180 $ hg tip
161 changeset: 8:c4be69a18c11
181 changeset: 8:c4be69a18c11
162 tag: tip
182 tag: tip
163 parent: 3:ac5e980c4dc0
183 parent: 3:ac5e980c4dc0
164 user: test
184 user: test
165 date: Thu Jan 01 00:00:00 1970 +0000
185 date: Thu Jan 01 00:00:00 1970 +0000
166 summary: head
186 summary: head
167
187
168
188
169 Test tag precedence rules:
189 Test tag precedence rules:
170
190
171 $ cd ..
191 $ cd ..
172 $ hg init t2
192 $ hg init t2
173 $ cd t2
193 $ cd t2
174 $ echo foo > foo
194 $ echo foo > foo
175 $ hg add foo
195 $ hg add foo
176 $ hg ci -m 'add foo' # rev 0
196 $ hg ci -m 'add foo' # rev 0
177 $ hg tag bar # rev 1
197 $ hg tag bar # rev 1
178 $ echo >> foo
198 $ echo >> foo
179 $ hg ci -m 'change foo 1' # rev 2
199 $ hg ci -m 'change foo 1' # rev 2
180 $ hg up -C 1
200 $ hg up -C 1
181 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
201 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
182 $ hg tag -r 1 -f bar # rev 3
202 $ hg tag -r 1 -f bar # rev 3
183 $ hg up -C 1
203 $ hg up -C 1
184 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
204 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
185 $ echo >> foo
205 $ echo >> foo
186 $ hg ci -m 'change foo 2' # rev 4
206 $ hg ci -m 'change foo 2' # rev 4
187 created new head
207 created new head
188 $ hg tags
208 $ hg tags
189 tip 4:0c192d7d5e6b
209 tip 4:0c192d7d5e6b
190 bar 1:78391a272241
210 bar 1:78391a272241
191
211
192 Repeat in case of cache effects:
212 Repeat in case of cache effects:
193
213
194 $ hg tags
214 $ hg tags
195 tip 4:0c192d7d5e6b
215 tip 4:0c192d7d5e6b
196 bar 1:78391a272241
216 bar 1:78391a272241
197
217
198 Detailed dump of tag info:
218 Detailed dump of tag info:
199
219
200 $ hg heads -q # expect 4, 3, 2
220 $ hg heads -q # expect 4, 3, 2
201 4:0c192d7d5e6b
221 4:0c192d7d5e6b
202 3:6fa450212aeb
222 3:6fa450212aeb
203 2:7a94127795a3
223 2:7a94127795a3
204 $ dumptags 2
224 $ dumptags 2
205 rev 2: .hgtags:
225 rev 2: .hgtags:
206 bbd179dfa0a71671c253b3ae0aa1513b60d199fa bar
226 bbd179dfa0a71671c253b3ae0aa1513b60d199fa bar
207 $ dumptags 3
227 $ dumptags 3
208 rev 3: .hgtags:
228 rev 3: .hgtags:
209 bbd179dfa0a71671c253b3ae0aa1513b60d199fa bar
229 bbd179dfa0a71671c253b3ae0aa1513b60d199fa bar
210 bbd179dfa0a71671c253b3ae0aa1513b60d199fa bar
230 bbd179dfa0a71671c253b3ae0aa1513b60d199fa bar
211 78391a272241d70354aa14c874552cad6b51bb42 bar
231 78391a272241d70354aa14c874552cad6b51bb42 bar
212 $ dumptags 4
232 $ dumptags 4
213 rev 4: .hgtags:
233 rev 4: .hgtags:
214 bbd179dfa0a71671c253b3ae0aa1513b60d199fa bar
234 bbd179dfa0a71671c253b3ae0aa1513b60d199fa bar
215
235
216 Dump cache:
236 Dump cache:
217
237
218 $ cat .hg/cache/tags
238 $ cat .hg/cache/tags
219 4 0c192d7d5e6b78a714de54a2e9627952a877e25a 0c04f2a8af31de17fab7422878ee5a2dadbc943d
239 4 0c192d7d5e6b78a714de54a2e9627952a877e25a 0c04f2a8af31de17fab7422878ee5a2dadbc943d
220 3 6fa450212aeb2a21ed616a54aea39a4a27894cd7 7d3b718c964ef37b89e550ebdafd5789e76ce1b0
240 3 6fa450212aeb2a21ed616a54aea39a4a27894cd7 7d3b718c964ef37b89e550ebdafd5789e76ce1b0
221 2 7a94127795a33c10a370c93f731fd9fea0b79af6 0c04f2a8af31de17fab7422878ee5a2dadbc943d
241 2 7a94127795a33c10a370c93f731fd9fea0b79af6 0c04f2a8af31de17fab7422878ee5a2dadbc943d
222
242
223 bbd179dfa0a71671c253b3ae0aa1513b60d199fa bar
243 bbd179dfa0a71671c253b3ae0aa1513b60d199fa bar
224 bbd179dfa0a71671c253b3ae0aa1513b60d199fa bar
244 bbd179dfa0a71671c253b3ae0aa1513b60d199fa bar
225 78391a272241d70354aa14c874552cad6b51bb42 bar
245 78391a272241d70354aa14c874552cad6b51bb42 bar
226
246
227 Test tag removal:
247 Test tag removal:
228
248
229 $ hg tag --remove bar # rev 5
249 $ hg tag --remove bar # rev 5
230 $ hg tip -vp
250 $ hg tip -vp
231 changeset: 5:5f6e8655b1c7
251 changeset: 5:5f6e8655b1c7
232 tag: tip
252 tag: tip
233 user: test
253 user: test
234 date: Thu Jan 01 00:00:00 1970 +0000
254 date: Thu Jan 01 00:00:00 1970 +0000
235 files: .hgtags
255 files: .hgtags
236 description:
256 description:
237 Removed tag bar
257 Removed tag bar
238
258
239
259
240 diff -r 0c192d7d5e6b -r 5f6e8655b1c7 .hgtags
260 diff -r 0c192d7d5e6b -r 5f6e8655b1c7 .hgtags
241 --- a/.hgtags Thu Jan 01 00:00:00 1970 +0000
261 --- a/.hgtags Thu Jan 01 00:00:00 1970 +0000
242 +++ b/.hgtags Thu Jan 01 00:00:00 1970 +0000
262 +++ b/.hgtags Thu Jan 01 00:00:00 1970 +0000
243 @@ -1,1 +1,3 @@
263 @@ -1,1 +1,3 @@
244 bbd179dfa0a71671c253b3ae0aa1513b60d199fa bar
264 bbd179dfa0a71671c253b3ae0aa1513b60d199fa bar
245 +78391a272241d70354aa14c874552cad6b51bb42 bar
265 +78391a272241d70354aa14c874552cad6b51bb42 bar
246 +0000000000000000000000000000000000000000 bar
266 +0000000000000000000000000000000000000000 bar
247
267
248 $ hg tags
268 $ hg tags
249 tip 5:5f6e8655b1c7
269 tip 5:5f6e8655b1c7
250 $ hg tags # again, try to expose cache bugs
270 $ hg tags # again, try to expose cache bugs
251 tip 5:5f6e8655b1c7
271 tip 5:5f6e8655b1c7
252
272
253 Remove nonexistent tag:
273 Remove nonexistent tag:
254
274
255 $ hg tag --remove foobar
275 $ hg tag --remove foobar
256 abort: tag 'foobar' does not exist
276 abort: tag 'foobar' does not exist
257 [255]
277 [255]
258 $ hg tip
278 $ hg tip
259 changeset: 5:5f6e8655b1c7
279 changeset: 5:5f6e8655b1c7
260 tag: tip
280 tag: tip
261 user: test
281 user: test
262 date: Thu Jan 01 00:00:00 1970 +0000
282 date: Thu Jan 01 00:00:00 1970 +0000
263 summary: Removed tag bar
283 summary: Removed tag bar
264
284
265
285
266 Undo a tag with rollback:
286 Undo a tag with rollback:
267
287
268 $ hg rollback # destroy rev 5 (restore bar)
288 $ hg rollback # destroy rev 5 (restore bar)
269 repository tip rolled back to revision 4 (undo commit)
289 repository tip rolled back to revision 4 (undo commit)
270 working directory now based on revision 4
290 working directory now based on revision 4
271 $ hg tags
291 $ hg tags
272 tip 4:0c192d7d5e6b
292 tip 4:0c192d7d5e6b
273 bar 1:78391a272241
293 bar 1:78391a272241
274 $ hg tags
294 $ hg tags
275 tip 4:0c192d7d5e6b
295 tip 4:0c192d7d5e6b
276 bar 1:78391a272241
296 bar 1:78391a272241
277
297
278 Test tag rank:
298 Test tag rank:
279
299
280 $ cd ..
300 $ cd ..
281 $ hg init t3
301 $ hg init t3
282 $ cd t3
302 $ cd t3
283 $ echo foo > foo
303 $ echo foo > foo
284 $ hg add foo
304 $ hg add foo
285 $ hg ci -m 'add foo' # rev 0
305 $ hg ci -m 'add foo' # rev 0
286 $ hg tag -f bar # rev 1 bar -> 0
306 $ hg tag -f bar # rev 1 bar -> 0
287 $ hg tag -f bar # rev 2 bar -> 1
307 $ hg tag -f bar # rev 2 bar -> 1
288 $ hg tag -fr 0 bar # rev 3 bar -> 0
308 $ hg tag -fr 0 bar # rev 3 bar -> 0
289 $ hg tag -fr 1 bar # rev 4 bar -> 1
309 $ hg tag -fr 1 bar # rev 4 bar -> 1
290 $ hg tag -fr 0 bar # rev 5 bar -> 0
310 $ hg tag -fr 0 bar # rev 5 bar -> 0
291 $ hg tags
311 $ hg tags
292 tip 5:85f05169d91d
312 tip 5:85f05169d91d
293 bar 0:bbd179dfa0a7
313 bar 0:bbd179dfa0a7
294 $ hg co 3
314 $ hg co 3
295 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
315 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
296 $ echo barbar > foo
316 $ echo barbar > foo
297 $ hg ci -m 'change foo' # rev 6
317 $ hg ci -m 'change foo' # rev 6
298 created new head
318 created new head
299 $ hg tags
319 $ hg tags
300 tip 6:735c3ca72986
320 tip 6:735c3ca72986
301 bar 0:bbd179dfa0a7
321 bar 0:bbd179dfa0a7
302
322
303 Don't allow moving tag without -f:
323 Don't allow moving tag without -f:
304
324
305 $ hg tag -r 3 bar
325 $ hg tag -r 3 bar
306 abort: tag 'bar' already exists (use -f to force)
326 abort: tag 'bar' already exists (use -f to force)
307 [255]
327 [255]
308 $ hg tags
328 $ hg tags
309 tip 6:735c3ca72986
329 tip 6:735c3ca72986
310 bar 0:bbd179dfa0a7
330 bar 0:bbd179dfa0a7
311
331
312 Strip 1: expose an old head:
332 Strip 1: expose an old head:
313
333
314 $ hg --config extensions.mq= strip 5
334 $ hg --config extensions.mq= strip 5
315 saved backup bundle to $TESTTMP/t3/.hg/strip-backup/*-backup.hg (glob)
335 saved backup bundle to $TESTTMP/t3/.hg/strip-backup/*-backup.hg (glob)
316 $ hg tags # partly stale cache
336 $ hg tags # partly stale cache
317 tip 5:735c3ca72986
337 tip 5:735c3ca72986
318 bar 1:78391a272241
338 bar 1:78391a272241
319 $ hg tags # up-to-date cache
339 $ hg tags # up-to-date cache
320 tip 5:735c3ca72986
340 tip 5:735c3ca72986
321 bar 1:78391a272241
341 bar 1:78391a272241
322
342
323 Strip 2: destroy whole branch, no old head exposed
343 Strip 2: destroy whole branch, no old head exposed
324
344
325 $ hg --config extensions.mq= strip 4
345 $ hg --config extensions.mq= strip 4
326 saved backup bundle to $TESTTMP/t3/.hg/strip-backup/*-backup.hg (glob)
346 saved backup bundle to $TESTTMP/t3/.hg/strip-backup/*-backup.hg (glob)
327 $ hg tags # partly stale
347 $ hg tags # partly stale
328 tip 4:735c3ca72986
348 tip 4:735c3ca72986
329 bar 0:bbd179dfa0a7
349 bar 0:bbd179dfa0a7
330 $ rm -f .hg/cache/tags
350 $ rm -f .hg/cache/tags
331 $ hg tags # cold cache
351 $ hg tags # cold cache
332 tip 4:735c3ca72986
352 tip 4:735c3ca72986
333 bar 0:bbd179dfa0a7
353 bar 0:bbd179dfa0a7
334
354
335 Test tag rank with 3 heads:
355 Test tag rank with 3 heads:
336
356
337 $ cd ..
357 $ cd ..
338 $ hg init t4
358 $ hg init t4
339 $ cd t4
359 $ cd t4
340 $ echo foo > foo
360 $ echo foo > foo
341 $ hg add
361 $ hg add
342 adding foo
362 adding foo
343 $ hg ci -m 'add foo' # rev 0
363 $ hg ci -m 'add foo' # rev 0
344 $ hg tag bar # rev 1 bar -> 0
364 $ hg tag bar # rev 1 bar -> 0
345 $ hg tag -f bar # rev 2 bar -> 1
365 $ hg tag -f bar # rev 2 bar -> 1
346 $ hg up -qC 0
366 $ hg up -qC 0
347 $ hg tag -fr 2 bar # rev 3 bar -> 2
367 $ hg tag -fr 2 bar # rev 3 bar -> 2
348 $ hg tags
368 $ hg tags
349 tip 3:197c21bbbf2c
369 tip 3:197c21bbbf2c
350 bar 2:6fa450212aeb
370 bar 2:6fa450212aeb
351 $ hg up -qC 0
371 $ hg up -qC 0
352 $ hg tag -m 'retag rev 0' -fr 0 bar # rev 4 bar -> 0, but bar stays at 2
372 $ hg tag -m 'retag rev 0' -fr 0 bar # rev 4 bar -> 0, but bar stays at 2
353
373
354 Bar should still point to rev 2:
374 Bar should still point to rev 2:
355
375
356 $ hg tags
376 $ hg tags
357 tip 4:3b4b14ed0202
377 tip 4:3b4b14ed0202
358 bar 2:6fa450212aeb
378 bar 2:6fa450212aeb
359
379
360 Test that removing global/local tags does not get confused when trying
380 Test that removing global/local tags does not get confused when trying
361 to remove a tag of type X which actually only exists as a type Y:
381 to remove a tag of type X which actually only exists as a type Y:
362
382
363 $ cd ..
383 $ cd ..
364 $ hg init t5
384 $ hg init t5
365 $ cd t5
385 $ cd t5
366 $ echo foo > foo
386 $ echo foo > foo
367 $ hg add
387 $ hg add
368 adding foo
388 adding foo
369 $ hg ci -m 'add foo' # rev 0
389 $ hg ci -m 'add foo' # rev 0
370
390
371 $ hg tag -r 0 -l localtag
391 $ hg tag -r 0 -l localtag
372 $ hg tag --remove localtag
392 $ hg tag --remove localtag
373 abort: tag 'localtag' is not a global tag
393 abort: tag 'localtag' is not a global tag
374 [255]
394 [255]
375 $
395 $
376 $ hg tag -r 0 globaltag
396 $ hg tag -r 0 globaltag
377 $ hg tag --remove -l globaltag
397 $ hg tag --remove -l globaltag
378 abort: tag 'globaltag' is not a local tag
398 abort: tag 'globaltag' is not a local tag
379 [255]
399 [255]
380 $ hg tags -v
400 $ hg tags -v
381 tip 1:a0b6fe111088
401 tip 1:a0b6fe111088
382 localtag 0:bbd179dfa0a7 local
402 localtag 0:bbd179dfa0a7 local
383 globaltag 0:bbd179dfa0a7
403 globaltag 0:bbd179dfa0a7
384
404
385 Test for issue3911
405 Test for issue3911
386
406
387 $ hg tag -r 0 -l localtag2
407 $ hg tag -r 0 -l localtag2
388 $ hg tag -l --remove localtag2
408 $ hg tag -l --remove localtag2
389 $ hg tags -v
409 $ hg tags -v
390 tip 1:a0b6fe111088
410 tip 1:a0b6fe111088
391 localtag 0:bbd179dfa0a7 local
411 localtag 0:bbd179dfa0a7 local
392 globaltag 0:bbd179dfa0a7
412 globaltag 0:bbd179dfa0a7
393
413
394 $ hg tag -r 1 -f localtag
414 $ hg tag -r 1 -f localtag
395 $ hg tags -v
415 $ hg tags -v
396 tip 2:5c70a037bb37
416 tip 2:5c70a037bb37
397 localtag 1:a0b6fe111088
417 localtag 1:a0b6fe111088
398 globaltag 0:bbd179dfa0a7
418 globaltag 0:bbd179dfa0a7
399
419
400 $ hg tags -v
420 $ hg tags -v
401 tip 2:5c70a037bb37
421 tip 2:5c70a037bb37
402 localtag 1:a0b6fe111088
422 localtag 1:a0b6fe111088
403 globaltag 0:bbd179dfa0a7
423 globaltag 0:bbd179dfa0a7
404
424
405 $ hg tag -r 1 localtag2
425 $ hg tag -r 1 localtag2
406 $ hg tags -v
426 $ hg tags -v
407 tip 3:bbfb8cd42be2
427 tip 3:bbfb8cd42be2
408 localtag2 1:a0b6fe111088
428 localtag2 1:a0b6fe111088
409 localtag 1:a0b6fe111088
429 localtag 1:a0b6fe111088
410 globaltag 0:bbd179dfa0a7
430 globaltag 0:bbd179dfa0a7
411
431
412 $ hg tags -v
432 $ hg tags -v
413 tip 3:bbfb8cd42be2
433 tip 3:bbfb8cd42be2
414 localtag2 1:a0b6fe111088
434 localtag2 1:a0b6fe111088
415 localtag 1:a0b6fe111088
435 localtag 1:a0b6fe111088
416 globaltag 0:bbd179dfa0a7
436 globaltag 0:bbd179dfa0a7
417
437
418 $ cd ..
438 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now