comparison tests/test-keyword.out @ 5816:3bd22fd3b750

keyword: add test
author Christian Ebert <blacktrash@gmx.net>
date Fri, 04 Jan 2008 18:22:39 +0100
parents
children a6ccb957fd07
comparison
equal deleted inserted replaced
5815:0637d97a8cb4 5816:3bd22fd3b750
1 % help
2 keyword extension - keyword expansion in local repositories
3
4 This extension expands RCS/CVS-like or self-customized $Keywords$
5 in tracked text files selected by your configuration.
6
7 Keywords are only expanded in local repositories and not stored in
8 the change history. The mechanism can be regarded as a convenience
9 for the current user or for archive distribution.
10
11 Configuration is done in the [keyword] and [keywordmaps] sections
12 of hgrc files.
13
14 Example:
15
16 [keyword]
17 # expand keywords in every python file except those matching "x*"
18 **.py =
19 x* = ignore
20
21 Note: the more specific you are in your filename patterns
22 the less you lose speed in huge repos.
23
24 For [keywordmaps] template mapping and expansion demonstration and
25 control run "hg kwdemo".
26
27 An additional date template filter {date|utcdate} is provided.
28
29 The default template mappings (view with "hg kwdemo -d") can be replaced
30 with customized keywords and templates.
31 Again, run "hg kwdemo" to control the results of your config changes.
32
33 Before changing/disabling active keywords, run "hg kwshrink" to avoid
34 the risk of inadvertedly storing expanded keywords in the change history.
35
36 To force expansion after enabling it, or a configuration change, run
37 "hg kwexpand".
38
39 Expansions spanning more than one line and incremental expansions,
40 like CVS' $Log$, are not supported. A keyword template map
41 "Log = {desc}" expands to the first line of the changeset description.
42
43 list of commands:
44
45 kwdemo print [keywordmaps] configuration and an expansion example
46 kwexpand expand keywords in working directory
47 kwfiles print files currently configured for keyword expansion
48 kwshrink revert expanded keywords in working directory
49
50 use "hg -v help keyword" to show aliases and global options
51 % hg kwdemo
52 [extensions]
53 hgext.keyword =
54 [keyword]
55 * =
56 b = ignore
57 demo.txt =
58 [keywordmaps]
59 RCSFile = {file|basename},v
60 Author = {author|user}
61 Header = {root}/{file},v {node|short} {date|utcdate} {author|user}
62 Source = {root}/{file},v
63 Date = {date|utcdate}
64 Id = {file|basename},v {node|short} {date|utcdate} {author|user}
65 Revision = {node|short}
66 $RCSFile: demo.txt,v $
67 $Author: test $
68 $Header: /TMP/demo.txt,v xxxxxxxxxxxx 2000/00/00 00:00:00 test $
69 $Source: /TMP/demo.txt,v $
70 $Date: 2000/00/00 00:00:00 $
71 $Id: demo.txt,v xxxxxxxxxxxx 2000/00/00 00:00:00 test $
72 $Revision: xxxxxxxxxxxx $
73 [extensions]
74 hgext.keyword =
75 [keyword]
76 * =
77 b = ignore
78 demo.txt =
79 [keywordmaps]
80 Branch = {branches}
81 $Branch: demobranch $
82 % kwshrink should exit silently in empty/invalid repo
83 % cat
84 expand $Id$
85 do not process $Id:
86 xxx $
87 expand $Id$
88 do not process $Id:
89 xxx $
90 ignore $Id$
91 % addremove
92 adding a
93 adding b
94 adding sym
95 % status
96 A a
97 A b
98 A sym
99 % default keyword expansion including commit hook
100 % interrupted commit should not change state or run commit hook
101 a
102 b
103 sym
104 transaction abort!
105 rollback completed
106 abort: edit failed: false exited with status 1
107 % status
108 A a
109 A b
110 A sym
111 % commit
112 a
113 b
114 sym
115 overwriting a expanding keywords
116 running hook commit.test: cp a hooktest
117 % status
118 ? hooktest
119 % identify
120 f782df5f9602
121 % cat
122 expand $Id: a,v f782df5f9602 1970/01/01 00:00:00 user $
123 do not process $Id:
124 xxx $
125 expand $Id: a,v f782df5f9602 1970/01/01 00:00:00 user $
126 do not process $Id:
127 xxx $
128 ignore $Id$
129 % hg cat
130 expand $Id: a,v f782df5f9602 1970/01/01 00:00:00 user $
131 do not process $Id:
132 xxx $
133 ignore $Id$
134 a
135 % diff a hooktest
136 % removing commit hook from config
137 % touch
138 % status
139 % update
140 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
141 % cat
142 expand $Id: a,v f782df5f9602 1970/01/01 00:00:00 user $
143 do not process $Id:
144 xxx $
145 expand $Id: a,v f782df5f9602 1970/01/01 00:00:00 user $
146 do not process $Id:
147 xxx $
148 ignore $Id$
149 % copy
150 % kwfiles added
151 a
152 c
153 % commit
154 c
155 c: copy a:0045e12f6c5791aac80ca6cbfd97709a88307292
156 overwriting c expanding keywords
157 % cat a c
158 expand $Id: a,v f782df5f9602 1970/01/01 00:00:00 user $
159 do not process $Id:
160 xxx $
161 expand $Id: c,v 0ba462c0f077 1970/01/01 00:00:01 user $
162 do not process $Id:
163 xxx $
164 % touch copied c after 1 second
165 % status
166 % kwfiles
167 a
168 c
169 % diff --rev
170 diff -r f782df5f9602 c
171 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
172 @@ -0,0 +1,3 @@
173 +expand $Id: c,v 0ba462c0f077 1970/01/01 00:00:01 user $
174 +do not process $Id:
175 +xxx $
176 % rollback
177 rolling back last transaction
178 % status
179 A c
180 % update -C
181 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
182 % custom keyword expansion
183 % try with kwdemo
184 [extensions]
185 hgext.keyword =
186 [keyword]
187 * =
188 b = ignore
189 demo.txt =
190 [keywordmaps]
191 Xinfo = {author}: {desc}
192 $Xinfo: test: hg keyword config and expansion example $
193 % cat
194 expand $Id: a,v f782df5f9602 1970/01/01 00:00:00 user $
195 do not process $Id:
196 xxx $
197 expand $Id: a,v f782df5f9602 1970/01/01 00:00:00 user $
198 do not process $Id:
199 xxx $
200 ignore $Id$
201 % hg cat
202 expand $Id: a f782df5f9602 Thu, 01 Jan 1970 00:00:00 +0000 user $
203 do not process $Id:
204 xxx $
205 ignore $Id$
206 a
207 % interrupted commit should not change state
208 transaction abort!
209 rollback completed
210 abort: edit failed: false exited with status 1
211 % status
212 M a
213 ? log
214 % commit
215 a
216 overwriting a expanding keywords
217 % status
218 % cat
219 expand $Id: a 0729690beff6 Thu, 01 Jan 1970 00:00:02 +0000 user $
220 do not process $Id:
221 xxx $
222 $Xinfo: User Name <user@example.com>: firstline $
223 expand $Id: a 0729690beff6 Thu, 01 Jan 1970 00:00:02 +0000 user $
224 do not process $Id:
225 xxx $
226 $Xinfo: User Name <user@example.com>: firstline $
227 ignore $Id$
228 % hg cat
229 expand $Id: a 0729690beff6 Thu, 01 Jan 1970 00:00:02 +0000 user $
230 do not process $Id:
231 xxx $
232 $Xinfo: User Name <user@example.com>: firstline $
233 ignore $Id$
234 a
235 % remove
236 % status
237 % rollback
238 rolling back last transaction
239 % status
240 R a
241 % revert a
242 % cat a
243 expand $Id: a 0729690beff6 Thu, 01 Jan 1970 00:00:02 +0000 user $
244 do not process $Id:
245 xxx $
246 $Xinfo: User Name <user@example.com>: firstline $
247 % clone to test incoming
248 requesting all changes
249 adding changesets
250 adding manifests
251 adding file changes
252 added 1 changesets with 3 changes to 3 files
253 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
254 % incoming
255 comparing with test-keyword/Test-a/../Test
256 searching for changes
257 changeset: 1:0729690beff6
258 tag: tip
259 user: User Name <user@example.com>
260 date: Thu Jan 01 00:00:02 1970 +0000
261 summary: firstline
262
263 % commit rejecttest
264 a
265 overwriting a expanding keywords
266 % export
267 % import
268 applying ../rejecttest.diff
269 % cat
270 expand $Id: a 82983f13f138 Thu, 01 Jan 1970 00:00:03 +0000 user $ rejecttest
271 do not process $Id: rejecttest
272 xxx $
273 $Xinfo: User Name <user@example.com>: rejects? $
274 expand $Id: a 82983f13f138 Thu, 01 Jan 1970 00:00:03 +0000 user $ rejecttest
275 do not process $Id: rejecttest
276 xxx $
277 $Xinfo: User Name <user@example.com>: rejects? $
278 ignore $Id$
279
280 % rollback
281 rolling back last transaction
282 % clean update
283 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
284 % kwexpand/kwshrink on selected files
285 % copy a x/a
286 % kwexpand a
287 overwriting a expanding keywords
288 % kwexpand x/a should abort
289 abort: outstanding uncommitted changes in given files
290 x/a
291 x/a: copy a:779c764182ce5d43e2b1eb66ce06d7b47bfe342e
292 overwriting x/a expanding keywords
293 % cat a
294 expand $Id: x/a f27c134d2d9b Thu, 01 Jan 1970 00:00:03 +0000 user $
295 do not process $Id:
296 xxx $
297 $Xinfo: User Name <user@example.com>: xa $
298 % kwshrink a inside directory x
299 overwriting x/a shrinking keywords
300 % cat a
301 expand $Id$
302 do not process $Id:
303 xxx $
304 $Xinfo$
305 % kwexpand nonexistent
306 nonexistent: No such file or directory
307 % switch off expansion
308 % kwshrink with unknown file u
309 overwriting a shrinking keywords
310 overwriting x/a shrinking keywords
311 % cat
312 expand $Id$
313 do not process $Id:
314 xxx $
315 $Xinfo$
316 expand $Id$
317 do not process $Id:
318 xxx $
319 $Xinfo$
320 ignore $Id$
321 % hg cat
322 expand $Id: a 0729690beff6 Thu, 01 Jan 1970 00:00:02 +0000 user $
323 do not process $Id:
324 xxx $
325 $Xinfo: User Name <user@example.com>: firstline $
326 ignore $Id$
327 a
328 % cat
329 expand $Id$
330 do not process $Id:
331 xxx $
332 $Xinfo$
333 expand $Id$
334 do not process $Id:
335 xxx $
336 $Xinfo$
337 ignore $Id$
338 % hg cat
339 expand $Id$
340 do not process $Id:
341 xxx $
342 $Xinfo$
343 ignore $Id$
344 a