##// END OF EJS Templates
branchcache: add note about cache invalidation to test-keyword.t...
Pierre-Yves David -
r18247:da9e544c default
parent child Browse files
Show More
@@ -1,1145 +1,1157 b''
1 1 $ cat <<EOF >> $HGRCPATH
2 2 > [extensions]
3 3 > keyword =
4 4 > mq =
5 5 > notify =
6 6 > record =
7 7 > transplant =
8 8 > [ui]
9 9 > interactive = true
10 10 > EOF
11 11
12 12 hide outer repo
13 13 $ hg init
14 14
15 15 Run kwdemo before [keyword] files are set up
16 16 as it would succeed without uisetup otherwise
17 17
18 18 $ hg --quiet kwdemo
19 19 [extensions]
20 20 keyword =
21 21 [keyword]
22 22 demo.txt =
23 23 [keywordset]
24 24 svn = False
25 25 [keywordmaps]
26 26 Author = {author|user}
27 27 Date = {date|utcdate}
28 28 Header = {root}/{file},v {node|short} {date|utcdate} {author|user}
29 29 Id = {file|basename},v {node|short} {date|utcdate} {author|user}
30 30 RCSFile = {file|basename},v
31 31 RCSfile = {file|basename},v
32 32 Revision = {node|short}
33 33 Source = {root}/{file},v
34 34 $Author: test $
35 35 $Date: ????/??/?? ??:??:?? $ (glob)
36 36 $Header: */demo.txt,v ???????????? ????/??/?? ??:??:?? test $ (glob)
37 37 $Id: demo.txt,v ???????????? ????/??/?? ??:??:?? test $ (glob)
38 38 $RCSFile: demo.txt,v $
39 39 $RCSfile: demo.txt,v $
40 40 $Revision: ???????????? $ (glob)
41 41 $Source: */demo.txt,v $ (glob)
42 42
43 43 $ hg --quiet kwdemo "Branch = {branches}"
44 44 [extensions]
45 45 keyword =
46 46 [keyword]
47 47 demo.txt =
48 48 [keywordset]
49 49 svn = False
50 50 [keywordmaps]
51 51 Branch = {branches}
52 52 $Branch: demobranch $
53 53
54 54 $ cat <<EOF >> $HGRCPATH
55 55 > [keyword]
56 56 > ** =
57 57 > b = ignore
58 58 > i = ignore
59 59 > [hooks]
60 60 > EOF
61 61 $ cp $HGRCPATH $HGRCPATH.nohooks
62 62 > cat <<EOF >> $HGRCPATH
63 63 > commit=
64 64 > commit.test=cp a hooktest
65 65 > EOF
66 66
67 67 $ hg init Test-bndl
68 68 $ cd Test-bndl
69 69
70 70 kwshrink should exit silently in empty/invalid repo
71 71
72 72 $ hg kwshrink
73 73
74 74 Symlinks cannot be created on Windows.
75 75 A bundle to test this was made with:
76 76 hg init t
77 77 cd t
78 78 echo a > a
79 79 ln -s a sym
80 80 hg add sym
81 81 hg ci -m addsym -u mercurial
82 82 hg bundle --base null ../test-keyword.hg
83 83
84 84 $ hg pull -u "$TESTDIR"/bundles/test-keyword.hg
85 85 pulling from *test-keyword.hg (glob)
86 86 requesting all changes
87 87 adding changesets
88 88 adding manifests
89 89 adding file changes
90 90 added 1 changesets with 1 changes to 1 files
91 91 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
92 92
93 93 $ echo 'expand $Id$' > a
94 94 $ echo 'do not process $Id:' >> a
95 95 $ echo 'xxx $' >> a
96 96 $ echo 'ignore $Id$' > b
97 97
98 98 Output files as they were created
99 99
100 100 $ cat a b
101 101 expand $Id$
102 102 do not process $Id:
103 103 xxx $
104 104 ignore $Id$
105 105
106 106 no kwfiles
107 107
108 108 $ hg kwfiles
109 109
110 110 untracked candidates
111 111
112 112 $ hg -v kwfiles --unknown
113 113 k a
114 114
115 115 Add files and check status
116 116
117 117 $ hg addremove
118 118 adding a
119 119 adding b
120 120 $ hg status
121 121 A a
122 122 A b
123 123
124 124
125 125 Default keyword expansion including commit hook
126 126 Interrupted commit should not change state or run commit hook
127 127
128 128 $ hg --debug commit
129 129 abort: empty commit message
130 130 [255]
131 131 $ hg status
132 132 A a
133 133 A b
134 134
135 135 Commit with several checks
136 136
137 137 $ hg --debug commit -mabsym -u 'User Name <user@example.com>'
138 138 a
139 139 b
140 140 overwriting a expanding keywords
141 141 running hook commit.test: cp a hooktest
142 142 committed changeset 1:ef63ca68695bc9495032c6fda1350c71e6d256e9
143 143 $ hg status
144 144 ? hooktest
145 145 $ hg debugrebuildstate
146 146 $ hg --quiet identify
147 147 ef63ca68695b
148 148
149 149 cat files in working directory with keywords expanded
150 150
151 151 $ cat a b
152 152 expand $Id: a,v ef63ca68695b 1970/01/01 00:00:00 user $
153 153 do not process $Id:
154 154 xxx $
155 155 ignore $Id$
156 156
157 157 hg cat files and symlink, no expansion
158 158
159 159 $ hg cat sym a b && echo
160 160 expand $Id: a,v ef63ca68695b 1970/01/01 00:00:00 user $
161 161 do not process $Id:
162 162 xxx $
163 163 ignore $Id$
164 164 a
165 165
166 166 $ diff a hooktest
167 167
168 168 $ cp $HGRCPATH.nohooks $HGRCPATH
169 169 $ rm hooktest
170 170
171 171 hg status of kw-ignored binary file starting with '\1\n'
172 172
173 173 >>> open("i", "wb").write("\1\nfoo")
174 174 $ hg -q commit -Am metasep i
175 175 $ hg status
176 176 >>> open("i", "wb").write("\1\nbar")
177 177 $ hg status
178 178 M i
179 179 $ hg -q commit -m "modify metasep" i
180 180 $ hg status --rev 2:3
181 181 M i
182 182 $ touch empty
183 183 $ hg -q commit -A -m "another file"
184 184 $ hg status -A --rev 3:4 i
185 185 C i
186 186
187 187 $ hg -q strip -n 2
188 188
189 189 Test hook execution
190 190
191 191 bundle
192 192
193 193 $ hg bundle --base null ../kw.hg
194 194 2 changesets found
195 195 $ cd ..
196 196 $ hg init Test
197 197 $ cd Test
198 198
199 199 Notify on pull to check whether keywords stay as is in email
200 200 ie. if patch.diff wrapper acts as it should
201 201
202 202 $ cat <<EOF >> $HGRCPATH
203 203 > [hooks]
204 204 > incoming.notify = python:hgext.notify.hook
205 205 > [notify]
206 206 > sources = pull
207 207 > diffstat = False
208 208 > maxsubject = 15
209 209 > [reposubs]
210 210 > * = Test
211 211 > EOF
212 212
213 213 Pull from bundle and trigger notify
214 214
215 215 $ hg pull -u ../kw.hg
216 216 pulling from ../kw.hg
217 217 requesting all changes
218 218 adding changesets
219 219 adding manifests
220 220 adding file changes
221 221 added 2 changesets with 3 changes to 3 files
222 222 Content-Type: text/plain; charset="us-ascii"
223 223 MIME-Version: 1.0
224 224 Content-Transfer-Encoding: 7bit
225 225 Date: * (glob)
226 226 Subject: changeset in...
227 227 From: mercurial
228 228 X-Hg-Notification: changeset a2392c293916
229 229 Message-Id: <hg.a2392c293916*> (glob)
230 230 To: Test
231 231
232 232 changeset a2392c293916 in $TESTTMP/Test (glob)
233 233 details: $TESTTMP/Test?cmd=changeset;node=a2392c293916
234 234 description:
235 235 addsym
236 236
237 237 diffs (6 lines):
238 238
239 239 diff -r 000000000000 -r a2392c293916 sym
240 240 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
241 241 +++ b/sym Sat Feb 09 20:25:47 2008 +0100
242 242 @@ -0,0 +1,1 @@
243 243 +a
244 244 \ No newline at end of file
245 245 Content-Type: text/plain; charset="us-ascii"
246 246 MIME-Version: 1.0
247 247 Content-Transfer-Encoding: 7bit
248 248 Date:* (glob)
249 249 Subject: changeset in...
250 250 From: User Name <user@example.com>
251 251 X-Hg-Notification: changeset ef63ca68695b
252 252 Message-Id: <hg.ef63ca68695b*> (glob)
253 253 To: Test
254 254
255 255 changeset ef63ca68695b in $TESTTMP/Test (glob)
256 256 details: $TESTTMP/Test?cmd=changeset;node=ef63ca68695b
257 257 description:
258 258 absym
259 259
260 260 diffs (12 lines):
261 261
262 262 diff -r a2392c293916 -r ef63ca68695b a
263 263 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
264 264 +++ b/a Thu Jan 01 00:00:00 1970 +0000
265 265 @@ -0,0 +1,3 @@
266 266 +expand $Id$
267 267 +do not process $Id:
268 268 +xxx $
269 269 diff -r a2392c293916 -r ef63ca68695b b
270 270 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
271 271 +++ b/b Thu Jan 01 00:00:00 1970 +0000
272 272 @@ -0,0 +1,1 @@
273 273 +ignore $Id$
274 274 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
275 275
276 276 $ cp $HGRCPATH.nohooks $HGRCPATH
277 277
278 278 Touch files and check with status
279 279
280 280 $ touch a b
281 281 $ hg status
282 282
283 283 Update and expand
284 284
285 285 $ rm sym a b
286 286 $ hg update -C
287 287 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
288 288 $ cat a b
289 289 expand $Id: a,v ef63ca68695b 1970/01/01 00:00:00 user $
290 290 do not process $Id:
291 291 xxx $
292 292 ignore $Id$
293 293
294 294 Check whether expansion is filewise and file mode is preserved
295 295
296 296 $ echo '$Id$' > c
297 297 $ echo 'tests for different changenodes' >> c
298 298 #if unix-permissions
299 299 $ chmod 600 c
300 300 $ ls -l c | cut -b 1-10
301 301 -rw-------
302 302 #endif
303 303
304 304 commit file c
305 305
306 306 $ hg commit -A -mcndiff -d '1 0' -u 'User Name <user@example.com>'
307 307 adding c
308 308 #if unix-permissions
309 309 $ ls -l c | cut -b 1-10
310 310 -rw-------
311 311 #endif
312 312
313 313 force expansion
314 314
315 315 $ hg -v kwexpand
316 316 overwriting a expanding keywords
317 317 overwriting c expanding keywords
318 318
319 319 compare changenodes in a and c
320 320
321 321 $ cat a c
322 322 expand $Id: a,v ef63ca68695b 1970/01/01 00:00:00 user $
323 323 do not process $Id:
324 324 xxx $
325 325 $Id: c,v 40a904bbbe4c 1970/01/01 00:00:01 user $
326 326 tests for different changenodes
327 327
328 328 record
329 329
330 330 $ echo '$Id$' > r
331 331 $ hg add r
332 332
333 333 record chunk
334 334
335 335 >>> lines = open('a', 'rb').readlines()
336 336 >>> lines.insert(1, 'foo\n')
337 337 >>> lines.append('bar\n')
338 338 >>> open('a', 'wb').writelines(lines)
339 339 $ hg record -d '10 1' -m rectest a<<EOF
340 340 > y
341 341 > y
342 342 > n
343 343 > EOF
344 344 diff --git a/a b/a
345 345 2 hunks, 2 lines changed
346 346 examine changes to 'a'? [Ynesfdaq?]
347 347 @@ -1,3 +1,4 @@
348 348 expand $Id$
349 349 +foo
350 350 do not process $Id:
351 351 xxx $
352 352 record change 1/2 to 'a'? [Ynesfdaq?]
353 353 @@ -2,2 +3,3 @@
354 354 do not process $Id:
355 355 xxx $
356 356 +bar
357 357 record change 2/2 to 'a'? [Ynesfdaq?]
358 358
359 359 $ hg identify
360 360 5f5eb23505c3+ tip
361 361 $ hg status
362 362 M a
363 363 A r
364 364
365 365 Cat modified file a
366 366
367 367 $ cat a
368 368 expand $Id: a,v 5f5eb23505c3 1970/01/01 00:00:10 test $
369 369 foo
370 370 do not process $Id:
371 371 xxx $
372 372 bar
373 373
374 374 Diff remaining chunk
375 375
376 376 $ hg diff a
377 377 diff -r 5f5eb23505c3 a
378 378 --- a/a Thu Jan 01 00:00:09 1970 -0000
379 379 +++ b/a * (glob)
380 380 @@ -2,3 +2,4 @@
381 381 foo
382 382 do not process $Id:
383 383 xxx $
384 384 +bar
385 385
386 386 $ hg rollback
387 387 repository tip rolled back to revision 2 (undo commit)
388 388 working directory now based on revision 2
389 389
390 390 Record all chunks in file a
391 391
392 392 $ echo foo > msg
393 393
394 394 - do not use "hg record -m" here!
395 395
396 396 $ hg record -l msg -d '11 1' a<<EOF
397 397 > y
398 398 > y
399 399 > y
400 400 > EOF
401 401 diff --git a/a b/a
402 402 2 hunks, 2 lines changed
403 403 examine changes to 'a'? [Ynesfdaq?]
404 404 @@ -1,3 +1,4 @@
405 405 expand $Id$
406 406 +foo
407 407 do not process $Id:
408 408 xxx $
409 409 record change 1/2 to 'a'? [Ynesfdaq?]
410 410 @@ -2,2 +3,3 @@
411 411 do not process $Id:
412 412 xxx $
413 413 +bar
414 414 record change 2/2 to 'a'? [Ynesfdaq?]
415 415
416 416 File a should be clean
417 417
418 418 $ hg status -A a
419 419 C a
420 420
421 421 rollback and revert expansion
422 422
423 423 $ cat a
424 424 expand $Id: a,v 78e0a02d76aa 1970/01/01 00:00:11 test $
425 425 foo
426 426 do not process $Id:
427 427 xxx $
428 428 bar
429 429 $ hg --verbose rollback
430 430 repository tip rolled back to revision 2 (undo commit)
431 431 working directory now based on revision 2
432 432 overwriting a expanding keywords
433 433 $ hg status a
434 434 M a
435 435 $ cat a
436 436 expand $Id: a,v ef63ca68695b 1970/01/01 00:00:00 user $
437 437 foo
438 438 do not process $Id:
439 439 xxx $
440 440 bar
441 441 $ echo '$Id$' > y
442 442 $ echo '$Id$' > z
443 443 $ hg add y
444 444 $ hg commit -Am "rollback only" z
445 445 $ cat z
446 446 $Id: z,v 45a5d3adce53 1970/01/01 00:00:00 test $
447 447 $ hg --verbose rollback
448 448 repository tip rolled back to revision 2 (undo commit)
449 449 working directory now based on revision 2
450 450 overwriting z shrinking keywords
451 451
452 452 Only z should be overwritten
453 453
454 454 $ hg status a y z
455 455 M a
456 456 A y
457 457 A z
458 458 $ cat z
459 459 $Id$
460 460 $ hg forget y z
461 461 $ rm y z
462 462
463 463 record added file alone
464 464
465 465 $ hg -v record -l msg -d '12 2' r<<EOF
466 466 > y
467 467 > EOF
468 468 diff --git a/r b/r
469 469 new file mode 100644
470 470 examine changes to 'r'? [Ynesfdaq?]
471 471 r
472 472 committed changeset 3:82a2f715724d
473 473 overwriting r expanding keywords
474 474 - status call required for dirstate.normallookup() check
475 475 $ hg status r
476 476 $ hg --verbose rollback
477 477 repository tip rolled back to revision 2 (undo commit)
478 478 working directory now based on revision 2
479 479 overwriting r shrinking keywords
480 480 $ hg forget r
481 481 $ rm msg r
482 482 $ hg update -C
483 483 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
484 484
485 485 record added keyword ignored file
486 486
487 487 $ echo '$Id$' > i
488 488 $ hg add i
489 489 $ hg --verbose record -d '13 1' -m recignored<<EOF
490 490 > y
491 491 > EOF
492 492 diff --git a/i b/i
493 493 new file mode 100644
494 494 examine changes to 'i'? [Ynesfdaq?]
495 495 i
496 496 committed changeset 3:9f40ceb5a072
497 497 $ cat i
498 498 $Id$
499 499 $ hg -q rollback
500 500 $ hg forget i
501 501 $ rm i
502 502
503 503 amend
504 504
505 505 $ echo amend >> a
506 506 $ echo amend >> b
507 507 $ hg -q commit -d '14 1' -m 'prepare amend'
508 508
509 509 $ hg --debug commit --amend -d '15 1' -m 'amend without changes' | grep keywords
510 510 overwriting a expanding keywords
511 511 $ hg -q id
512 512 67d8c481a6be
513 513 $ head -1 a
514 514 expand $Id: a,v 67d8c481a6be 1970/01/01 00:00:15 test $
515 515
516 516 $ hg -q strip -n tip
517 517
518 518 Test patch queue repo
519 519
520 520 $ hg init --mq
521 521 $ hg qimport -r tip -n mqtest.diff
522 522 $ hg commit --mq -m mqtest
523 523
524 524 Keywords should not be expanded in patch
525 525
526 526 $ cat .hg/patches/mqtest.diff
527 527 # HG changeset patch
528 528 # User User Name <user@example.com>
529 529 # Date 1 0
530 530 # Node ID 40a904bbbe4cd4ab0a1f28411e35db26341a40ad
531 531 # Parent ef63ca68695bc9495032c6fda1350c71e6d256e9
532 532 cndiff
533 533
534 534 diff -r ef63ca68695b -r 40a904bbbe4c c
535 535 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
536 536 +++ b/c Thu Jan 01 00:00:01 1970 +0000
537 537 @@ -0,0 +1,2 @@
538 538 +$Id$
539 539 +tests for different changenodes
540 540
541 541 $ hg qpop
542 542 popping mqtest.diff
543 543 patch queue now empty
544 544
545 545 qgoto, implying qpush, should expand
546 546
547 547 $ hg qgoto mqtest.diff
548 548 applying mqtest.diff
549 549 now at: mqtest.diff
550 550 $ cat c
551 551 $Id: c,v 40a904bbbe4c 1970/01/01 00:00:01 user $
552 552 tests for different changenodes
553 553 $ hg cat c
554 554 $Id: c,v 40a904bbbe4c 1970/01/01 00:00:01 user $
555 555 tests for different changenodes
556 556
557 557 Keywords should not be expanded in filelog
558 558
559 559 $ hg --config 'extensions.keyword=!' cat c
560 560 $Id$
561 561 tests for different changenodes
562 562
563 563 qpop and move on
564 564
565 565 $ hg qpop
566 566 popping mqtest.diff
567 567 patch queue now empty
568 568
569 569 Copy and show added kwfiles
570 570
571 571 $ hg cp a c
572 572 $ hg kwfiles
573 573 a
574 574 c
575 575
576 576 Commit and show expansion in original and copy
577 577
578 578 $ hg --debug commit -ma2c -d '1 0' -u 'User Name <user@example.com>'
579 579 c
580 580 c: copy a:0045e12f6c5791aac80ca6cbfd97709a88307292
581 581 overwriting c expanding keywords
582 582 committed changeset 2:25736cf2f5cbe41f6be4e6784ef6ecf9f3bbcc7d
583 583 $ cat a c
584 584 expand $Id: a,v ef63ca68695b 1970/01/01 00:00:00 user $
585 585 do not process $Id:
586 586 xxx $
587 587 expand $Id: c,v 25736cf2f5cb 1970/01/01 00:00:01 user $
588 588 do not process $Id:
589 589 xxx $
590 590
591 591 Touch copied c and check its status
592 592
593 593 $ touch c
594 594 $ hg status
595 595
596 596 Copy kwfile to keyword ignored file unexpanding keywords
597 597
598 598 $ hg --verbose copy a i
599 599 copying a to i
600 600 overwriting i shrinking keywords
601 601 $ head -n 1 i
602 602 expand $Id$
603 603 $ hg forget i
604 604 $ rm i
605 605
606 606 Copy ignored file to ignored file: no overwriting
607 607
608 608 $ hg --verbose copy b i
609 609 copying b to i
610 610 $ hg forget i
611 611 $ rm i
612 612
613 613 cp symlink file; hg cp -A symlink file (part1)
614 614 - copied symlink points to kwfile: overwrite
615 615
616 616 #if symlink
617 617 $ cp sym i
618 618 $ ls -l i
619 619 -rw-r--r--* (glob)
620 620 $ head -1 i
621 621 expand $Id: a,v ef63ca68695b 1970/01/01 00:00:00 user $
622 622 $ hg copy --after --verbose sym i
623 623 copying sym to i
624 624 overwriting i shrinking keywords
625 625 $ head -1 i
626 626 expand $Id$
627 627 $ hg forget i
628 628 $ rm i
629 629 #endif
630 630
631 631 Test different options of hg kwfiles
632 632
633 633 $ hg kwfiles
634 634 a
635 635 c
636 636 $ hg -v kwfiles --ignore
637 637 I b
638 638 I sym
639 639 $ hg kwfiles --all
640 640 K a
641 641 K c
642 642 I b
643 643 I sym
644 644
645 645 Diff specific revision
646 646
647 647 $ hg diff --rev 1
648 648 diff -r ef63ca68695b c
649 649 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
650 650 +++ b/c * (glob)
651 651 @@ -0,0 +1,3 @@
652 652 +expand $Id$
653 653 +do not process $Id:
654 654 +xxx $
655 655
656 656 Status after rollback:
657 657
658 658 $ hg rollback
659 659 repository tip rolled back to revision 1 (undo commit)
660 660 working directory now based on revision 1
661 661 $ hg status
662 662 A c
663 663 $ hg update --clean
664 664 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
665 665
666 666 #if symlink
667 667
668 668 cp symlink file; hg cp -A symlink file (part2)
669 669 - copied symlink points to kw ignored file: do not overwrite
670 670
671 671 $ cat a > i
672 672 $ ln -s i symignored
673 673 $ hg commit -Am 'fake expansion in ignored and symlink' i symignored
674 674 $ cp symignored x
675 675 $ hg copy --after --verbose symignored x
676 676 copying symignored to x
677 677 $ head -n 1 x
678 678 expand $Id: a,v ef63ca68695b 1970/01/01 00:00:00 user $
679 679 $ hg forget x
680 680 $ rm x
681 681
682 682 $ hg rollback
683 683 repository tip rolled back to revision 1 (undo commit)
684 684 working directory now based on revision 1
685 685 $ hg update --clean
686 686 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
687 687 $ rm i symignored
688 688
689 689 #endif
690 690
691 691 Custom keywordmaps as argument to kwdemo
692 692
693 693 $ hg --quiet kwdemo "Xinfo = {author}: {desc}"
694 694 [extensions]
695 695 keyword =
696 696 [keyword]
697 697 ** =
698 698 b = ignore
699 699 demo.txt =
700 700 i = ignore
701 701 [keywordset]
702 702 svn = False
703 703 [keywordmaps]
704 704 Xinfo = {author}: {desc}
705 705 $Xinfo: test: hg keyword configuration and expansion example $
706 706
707 707 Configure custom keywordmaps
708 708
709 709 $ cat <<EOF >>$HGRCPATH
710 710 > [keywordmaps]
711 711 > Id = {file} {node|short} {date|rfc822date} {author|user}
712 712 > Xinfo = {author}: {desc}
713 713 > EOF
714 714
715 715 Cat and hg cat files before custom expansion
716 716
717 717 $ cat a b
718 718 expand $Id: a,v ef63ca68695b 1970/01/01 00:00:00 user $
719 719 do not process $Id:
720 720 xxx $
721 721 ignore $Id$
722 722 $ hg cat sym a b && echo
723 723 expand $Id: a ef63ca68695b Thu, 01 Jan 1970 00:00:00 +0000 user $
724 724 do not process $Id:
725 725 xxx $
726 726 ignore $Id$
727 727 a
728 728
729 729 Write custom keyword and prepare multi-line commit message
730 730
731 731 $ echo '$Xinfo$' >> a
732 732 $ cat <<EOF >> log
733 733 > firstline
734 734 > secondline
735 735 > EOF
736 736
737 737 Interrupted commit should not change state
738 738
739 739 $ hg commit
740 740 abort: empty commit message
741 741 [255]
742 742 $ hg status
743 743 M a
744 744 ? c
745 745 ? log
746 746
747 747 Commit with multi-line message and custom expansion
748 748
749 |Note:
750 |
751 | After the last rollback, the "unserved" branchheads cache became invalid, but
752 | all changeset in the repo were public. So filtering wise:
753 | "mutable" == "unserved" == ΓΈ.
754 |
755 | As the "unserved" cache is invalid, we fall back to "mutable" cache. But not
756 | update is needed between "mutable" and "unserved" cache and the "unserved"
757 | cache is not updated on disk. The on disk version therefor stay invalid for
758 | some time. This explains why the "unserved" branchheads cache is detect
759 | invalid here.
760
749 761 $ hg --debug commit -l log -d '2 0' -u 'User Name <user@example.com>'
750 762 invalid branchheads cache: tip differs
751 763 invalid branchheads cache (unserved): tip differs
752 764 a
753 765 invalid branchheads cache: tip differs
754 766 invalid branchheads cache (unserved): tip differs
755 767 overwriting a expanding keywords
756 768 committed changeset 2:bb948857c743469b22bbf51f7ec8112279ca5d83
757 769 $ rm log
758 770
759 771 Stat, verify and show custom expansion (firstline)
760 772
761 773 $ hg status
762 774 ? c
763 775 $ hg verify
764 776 checking changesets
765 777 checking manifests
766 778 crosschecking files in changesets and manifests
767 779 checking files
768 780 3 files, 3 changesets, 4 total revisions
769 781 $ cat a b
770 782 expand $Id: a bb948857c743 Thu, 01 Jan 1970 00:00:02 +0000 user $
771 783 do not process $Id:
772 784 xxx $
773 785 $Xinfo: User Name <user@example.com>: firstline $
774 786 ignore $Id$
775 787 $ hg cat sym a b && echo
776 788 expand $Id: a bb948857c743 Thu, 01 Jan 1970 00:00:02 +0000 user $
777 789 do not process $Id:
778 790 xxx $
779 791 $Xinfo: User Name <user@example.com>: firstline $
780 792 ignore $Id$
781 793 a
782 794
783 795 annotate
784 796
785 797 $ hg annotate a
786 798 1: expand $Id$
787 799 1: do not process $Id:
788 800 1: xxx $
789 801 2: $Xinfo$
790 802
791 803 remove with status checks
792 804
793 805 $ hg debugrebuildstate
794 806 $ hg remove a
795 807 $ hg --debug commit -m rma
796 808 invalid branchheads cache: tip differs
797 809 invalid branchheads cache: tip differs
798 810 committed changeset 3:d14c712653769de926994cf7fbb06c8fbd68f012
799 811 $ hg status
800 812 ? c
801 813
802 814 Rollback, revert, and check expansion
803 815
804 816 $ hg rollback
805 817 repository tip rolled back to revision 2 (undo commit)
806 818 working directory now based on revision 2
807 819 $ hg status
808 820 R a
809 821 ? c
810 822 $ hg revert --no-backup --rev tip a
811 823 $ cat a
812 824 expand $Id: a bb948857c743 Thu, 01 Jan 1970 00:00:02 +0000 user $
813 825 do not process $Id:
814 826 xxx $
815 827 $Xinfo: User Name <user@example.com>: firstline $
816 828
817 829 Clone to test global and local configurations
818 830
819 831 $ cd ..
820 832
821 833 Expansion in destination with global configuration
822 834
823 835 $ hg --quiet clone Test globalconf
824 836 $ cat globalconf/a
825 837 expand $Id: a bb948857c743 Thu, 01 Jan 1970 00:00:02 +0000 user $
826 838 do not process $Id:
827 839 xxx $
828 840 $Xinfo: User Name <user@example.com>: firstline $
829 841
830 842 No expansion in destination with local configuration in origin only
831 843
832 844 $ hg --quiet --config 'keyword.**=ignore' clone Test localconf
833 845 $ cat localconf/a
834 846 expand $Id$
835 847 do not process $Id:
836 848 xxx $
837 849 $Xinfo$
838 850
839 851 Clone to test incoming
840 852
841 853 $ hg clone -r1 Test Test-a
842 854 adding changesets
843 855 adding manifests
844 856 adding file changes
845 857 added 2 changesets with 3 changes to 3 files
846 858 updating to branch default
847 859 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
848 860 $ cd Test-a
849 861 $ cat <<EOF >> .hg/hgrc
850 862 > [paths]
851 863 > default = ../Test
852 864 > EOF
853 865 $ hg incoming
854 866 comparing with $TESTTMP/Test (glob)
855 867 searching for changes
856 868 changeset: 2:bb948857c743
857 869 tag: tip
858 870 user: User Name <user@example.com>
859 871 date: Thu Jan 01 00:00:02 1970 +0000
860 872 summary: firstline
861 873
862 874 Imported patch should not be rejected
863 875
864 876 >>> import re
865 877 >>> text = re.sub(r'(Id.*)', r'\1 rejecttest', open('a').read())
866 878 >>> open('a', 'wb').write(text)
867 879 $ hg --debug commit -m'rejects?' -d '3 0' -u 'User Name <user@example.com>'
868 880 a
869 881 overwriting a expanding keywords
870 882 committed changeset 2:85e279d709ffc28c9fdd1b868570985fc3d87082
871 883 $ hg export -o ../rejecttest.diff tip
872 884 $ cd ../Test
873 885 $ hg import ../rejecttest.diff
874 886 applying ../rejecttest.diff
875 887 $ cat a b
876 888 expand $Id: a 4e0994474d25 Thu, 01 Jan 1970 00:00:03 +0000 user $ rejecttest
877 889 do not process $Id: rejecttest
878 890 xxx $
879 891 $Xinfo: User Name <user@example.com>: rejects? $
880 892 ignore $Id$
881 893
882 894 $ hg rollback
883 895 repository tip rolled back to revision 2 (undo import)
884 896 working directory now based on revision 2
885 897 $ hg update --clean
886 898 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
887 899
888 900 kwexpand/kwshrink on selected files
889 901
890 902 $ mkdir x
891 903 $ hg copy a x/a
892 904 $ hg --verbose kwshrink a
893 905 overwriting a shrinking keywords
894 906 - sleep required for dirstate.normal() check
895 907 $ sleep 1
896 908 $ hg status a
897 909 $ hg --verbose kwexpand a
898 910 overwriting a expanding keywords
899 911 $ hg status a
900 912
901 913 kwexpand x/a should abort
902 914
903 915 $ hg --verbose kwexpand x/a
904 916 abort: outstanding uncommitted changes
905 917 [255]
906 918 $ cd x
907 919 $ hg --debug commit -m xa -d '3 0' -u 'User Name <user@example.com>'
908 920 invalid branchheads cache: tip differs
909 921 x/a
910 922 x/a: copy a:779c764182ce5d43e2b1eb66ce06d7b47bfe342e
911 923 invalid branchheads cache: tip differs
912 924 overwriting x/a expanding keywords
913 925 committed changeset 3:b4560182a3f9a358179fd2d835c15e9da379c1e4
914 926 $ cat a
915 927 expand $Id: x/a b4560182a3f9 Thu, 01 Jan 1970 00:00:03 +0000 user $
916 928 do not process $Id:
917 929 xxx $
918 930 $Xinfo: User Name <user@example.com>: xa $
919 931
920 932 kwshrink a inside directory x
921 933
922 934 $ hg --verbose kwshrink a
923 935 overwriting x/a shrinking keywords
924 936 $ cat a
925 937 expand $Id$
926 938 do not process $Id:
927 939 xxx $
928 940 $Xinfo$
929 941 $ cd ..
930 942
931 943 kwexpand nonexistent
932 944
933 945 $ hg kwexpand nonexistent
934 946 nonexistent:* (glob)
935 947
936 948
937 949 #if serve
938 950 hg serve
939 951 - expand with hgweb file
940 952 - no expansion with hgweb annotate/changeset/filediff
941 953 - check errors
942 954
943 955 $ hg serve -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
944 956 $ cat hg.pid >> $DAEMON_PIDS
945 957 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/tip/a/?style=raw'
946 958 200 Script output follows
947 959
948 960 expand $Id: a bb948857c743 Thu, 01 Jan 1970 00:00:02 +0000 user $
949 961 do not process $Id:
950 962 xxx $
951 963 $Xinfo: User Name <user@example.com>: firstline $
952 964 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'annotate/tip/a/?style=raw'
953 965 200 Script output follows
954 966
955 967
956 968 user@1: expand $Id$
957 969 user@1: do not process $Id:
958 970 user@1: xxx $
959 971 user@2: $Xinfo$
960 972
961 973
962 974
963 975
964 976 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'rev/tip/?style=raw'
965 977 200 Script output follows
966 978
967 979
968 980 # HG changeset patch
969 981 # User User Name <user@example.com>
970 982 # Date 3 0
971 983 # Node ID b4560182a3f9a358179fd2d835c15e9da379c1e4
972 984 # Parent bb948857c743469b22bbf51f7ec8112279ca5d83
973 985 xa
974 986
975 987 diff -r bb948857c743 -r b4560182a3f9 x/a
976 988 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
977 989 +++ b/x/a Thu Jan 01 00:00:03 1970 +0000
978 990 @@ -0,0 +1,4 @@
979 991 +expand $Id$
980 992 +do not process $Id:
981 993 +xxx $
982 994 +$Xinfo$
983 995
984 996 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'diff/bb948857c743/a?style=raw'
985 997 200 Script output follows
986 998
987 999
988 1000 diff -r ef63ca68695b -r bb948857c743 a
989 1001 --- a/a Thu Jan 01 00:00:00 1970 +0000
990 1002 +++ b/a Thu Jan 01 00:00:02 1970 +0000
991 1003 @@ -1,3 +1,4 @@
992 1004 expand $Id$
993 1005 do not process $Id:
994 1006 xxx $
995 1007 +$Xinfo$
996 1008
997 1009
998 1010
999 1011
1000 1012 $ cat errors.log
1001 1013 #endif
1002 1014
1003 1015 Prepare merge and resolve tests
1004 1016
1005 1017 $ echo '$Id$' > m
1006 1018 $ hg add m
1007 1019 $ hg commit -m 4kw
1008 1020 $ echo foo >> m
1009 1021 $ hg commit -m 5foo
1010 1022
1011 1023 simplemerge
1012 1024
1013 1025 $ hg update 4
1014 1026 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1015 1027 $ echo foo >> m
1016 1028 $ hg commit -m 6foo
1017 1029 created new head
1018 1030 $ hg merge
1019 1031 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
1020 1032 (branch merge, don't forget to commit)
1021 1033 $ hg commit -m simplemerge
1022 1034 $ cat m
1023 1035 $Id: m 27d48ee14f67 Thu, 01 Jan 1970 00:00:00 +0000 test $
1024 1036 foo
1025 1037
1026 1038 conflict: keyword should stay outside conflict zone
1027 1039
1028 1040 $ hg update 4
1029 1041 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1030 1042 $ echo bar >> m
1031 1043 $ hg commit -m 8bar
1032 1044 created new head
1033 1045 $ hg merge
1034 1046 merging m
1035 1047 warning: conflicts during merge.
1036 1048 merging m incomplete! (edit conflicts, then use 'hg resolve --mark')
1037 1049 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
1038 1050 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
1039 1051 [1]
1040 1052 $ cat m
1041 1053 $Id$
1042 1054 <<<<<<< local
1043 1055 bar
1044 1056 =======
1045 1057 foo
1046 1058 >>>>>>> other
1047 1059
1048 1060 resolve to local
1049 1061
1050 1062 $ HGMERGE=internal:local hg resolve -a
1051 1063 $ hg commit -m localresolve
1052 1064 $ cat m
1053 1065 $Id: m 800511b3a22d Thu, 01 Jan 1970 00:00:00 +0000 test $
1054 1066 bar
1055 1067
1056 1068 Test restricted mode with transplant -b
1057 1069
1058 1070 $ hg update 6
1059 1071 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1060 1072 $ hg branch foo
1061 1073 marked working directory as branch foo
1062 1074 (branches are permanent and global, did you want a bookmark?)
1063 1075 $ mv a a.bak
1064 1076 $ echo foobranch > a
1065 1077 $ cat a.bak >> a
1066 1078 $ rm a.bak
1067 1079 $ hg commit -m 9foobranch
1068 1080 $ hg update default
1069 1081 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
1070 1082 $ hg -y transplant -b foo tip
1071 1083 applying 4aa30d025d50
1072 1084 4aa30d025d50 transplanted to e00abbf63521
1073 1085
1074 1086 Expansion in changeset but not in file
1075 1087
1076 1088 $ hg tip -p
1077 1089 changeset: 11:e00abbf63521
1078 1090 tag: tip
1079 1091 parent: 9:800511b3a22d
1080 1092 user: test
1081 1093 date: Thu Jan 01 00:00:00 1970 +0000
1082 1094 summary: 9foobranch
1083 1095
1084 1096 diff -r 800511b3a22d -r e00abbf63521 a
1085 1097 --- a/a Thu Jan 01 00:00:00 1970 +0000
1086 1098 +++ b/a Thu Jan 01 00:00:00 1970 +0000
1087 1099 @@ -1,3 +1,4 @@
1088 1100 +foobranch
1089 1101 expand $Id$
1090 1102 do not process $Id:
1091 1103 xxx $
1092 1104
1093 1105 $ head -n 2 a
1094 1106 foobranch
1095 1107 expand $Id: a e00abbf63521 Thu, 01 Jan 1970 00:00:00 +0000 test $
1096 1108
1097 1109 Turn off expansion
1098 1110
1099 1111 $ hg -q rollback
1100 1112 $ hg -q update -C
1101 1113
1102 1114 kwshrink with unknown file u
1103 1115
1104 1116 $ cp a u
1105 1117 $ hg --verbose kwshrink
1106 1118 overwriting a shrinking keywords
1107 1119 overwriting m shrinking keywords
1108 1120 overwriting x/a shrinking keywords
1109 1121
1110 1122 Keywords shrunk in working directory, but not yet disabled
1111 1123 - cat shows unexpanded keywords
1112 1124 - hg cat shows expanded keywords
1113 1125
1114 1126 $ cat a b
1115 1127 expand $Id$
1116 1128 do not process $Id:
1117 1129 xxx $
1118 1130 $Xinfo$
1119 1131 ignore $Id$
1120 1132 $ hg cat sym a b && echo
1121 1133 expand $Id: a bb948857c743 Thu, 01 Jan 1970 00:00:02 +0000 user $
1122 1134 do not process $Id:
1123 1135 xxx $
1124 1136 $Xinfo: User Name <user@example.com>: firstline $
1125 1137 ignore $Id$
1126 1138 a
1127 1139
1128 1140 Now disable keyword expansion
1129 1141
1130 1142 $ rm "$HGRCPATH"
1131 1143 $ cat a b
1132 1144 expand $Id$
1133 1145 do not process $Id:
1134 1146 xxx $
1135 1147 $Xinfo$
1136 1148 ignore $Id$
1137 1149 $ hg cat sym a b && echo
1138 1150 expand $Id$
1139 1151 do not process $Id:
1140 1152 xxx $
1141 1153 $Xinfo$
1142 1154 ignore $Id$
1143 1155 a
1144 1156
1145 1157 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now