comparison tests/test-keyword.t @ 11904:122e3e0ba3e4

tests: unify test-keyword
author Christian Ebert <blacktrash@gmx.net>
date Fri, 13 Aug 2010 13:54:33 +0100
parents tests/test-keyword@f5aa20e177c0
children
comparison
equal deleted inserted replaced
11903:a4cc9e6f41c3 11904:122e3e0ba3e4
1 $ cat <<EOF >> $HGRCPATH
2 > [extensions]
3 > keyword =
4 > mq =
5 > notify =
6 > record =
7 > transplant =
8 > [ui]
9 > interactive = true
10 > EOF
11
12 Run kwdemo before [keyword] files are set up
13 as it would succeed without uisetup otherwise
14
15 $ hg --quiet kwdemo \
16 > | sed -e 's![^ ][^ ]*demo.txt,v!/TMP/demo.txt,v!' \
17 > -e 's/,v [a-z0-9][a-z0-9]* /,v xxxxxxxxxxxx /' \
18 > -e '/[$]Revision/ s/: [a-z0-9][a-z0-9]* /: xxxxxxxxxxxx /' \
19 > -e 's! 20[0-9][0-9]/[01][0-9]/[0-3][0-9] [0-2][0-9]:[0-6][0-9]:[0-6][0-9]! 2000/00/00 00:00:00!'
20 [extensions]
21 keyword =
22 [keyword]
23 demo.txt =
24 [keywordmaps]
25 Author = {author|user}
26 Date = {date|utcdate}
27 Header = {root}/{file},v {node|short} {date|utcdate} {author|user}
28 Id = {file|basename},v {node|short} {date|utcdate} {author|user}
29 RCSFile = {file|basename},v
30 RCSfile = {file|basename},v
31 Revision = {node|short}
32 Source = {root}/{file},v
33 $Author: test $
34 $Date: 2000/00/00 00:00:00 $
35 $Header: /TMP/demo.txt,v xxxxxxxxxxxx 2000/00/00 00:00:00 test $
36 $Id: demo.txt,v xxxxxxxxxxxx 2000/00/00 00:00:00 test $
37 $RCSFile: demo.txt,v $
38 $RCSfile: demo.txt,v $
39 $Revision: xxxxxxxxxxxx $
40 $Source: /TMP/demo.txt,v $
41
42 $ hg --quiet kwdemo "Branch = {branches}"
43 [extensions]
44 keyword =
45 [keyword]
46 demo.txt =
47 [keywordmaps]
48 Branch = {branches}
49 $Branch: demobranch $
50
51 $ cat <<EOF >> $HGRCPATH
52 > [keyword]
53 > ** =
54 > b = ignore
55 > [hooks]
56 > commit=
57 > commit.test=cp a hooktest
58 > EOF
59
60 $ hg init Test-bndl
61 $ cd Test-bndl
62
63 kwshrink should exit silently in empty/invalid repo
64
65 $ hg kwshrink
66
67 Symlinks cannot be created on Windows.
68 A bundle to test this was made with:
69 hg init t
70 cd t
71 echo a > a
72 ln -s a sym
73 hg add sym
74 hg ci -m addsym -u mercurial
75 hg bundle --base null ../test-keyword.hg
76
77 $ hg pull -u "$TESTDIR"/test-keyword.hg
78 pulling from .*test-keyword.hg
79 requesting all changes
80 adding changesets
81 adding manifests
82 adding file changes
83 added 1 changesets with 1 changes to 1 files
84 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
85
86 $ echo 'expand $Id$' > a
87 $ echo 'do not process $Id:' >> a
88 $ echo 'xxx $' >> a
89 $ echo 'ignore $Id$' > b
90
91 Output files as they were created
92
93 $ cat a b
94 expand $Id$
95 do not process $Id:
96 xxx $
97 ignore $Id$
98
99 no kwfiles
100
101 $ hg kwfiles
102
103 untracked candidates
104
105 $ hg -v kwfiles --unknown
106 k a
107
108 Add files and check status
109
110 $ hg addremove
111 adding a
112 adding b
113 $ hg status
114 A a
115 A b
116
117
118 Default keyword expansion including commit hook
119 Interrupted commit should not change state or run commit hook
120
121 $ hg --debug commit
122 abort: empty commit message
123 $ hg status
124 A a
125 A b
126
127 Commit with several checks
128
129 $ hg --debug commit -mabsym -u 'User Name <user@example.com>'
130 a
131 b
132 overwriting a expanding keywords
133 running hook commit.test: cp a hooktest
134 committed changeset 1:ef63ca68695bc9495032c6fda1350c71e6d256e9
135 $ hg status
136 ? hooktest
137 $ hg debugrebuildstate
138 $ hg --quiet identify
139 ef63ca68695b
140
141 cat files in working directory with keywords expanded
142
143 $ cat a b
144 expand $Id: a,v ef63ca68695b 1970/01/01 00:00:00 user $
145 do not process $Id:
146 xxx $
147 ignore $Id$
148
149 hg cat files and symlink, no expansion
150
151 $ hg cat sym a b && echo
152 expand $Id: a,v ef63ca68695b 1970/01/01 00:00:00 user $
153 do not process $Id:
154 xxx $
155 ignore $Id$
156 a.*
157
158 Test hook execution
159
160 $ diff a hooktest
161
162 Removing commit hook from config
163
164 $ sed -e '/\[hooks\]/,$ d' "$HGRCPATH" > $HGRCPATH.nohook
165 $ mv "$HGRCPATH".nohook "$HGRCPATH"
166 $ rm hooktest
167
168 bundle
169
170 $ hg bundle --base null ../kw.hg
171 2 changesets found
172 $ cd ..
173 $ hg init Test
174 $ cd Test
175
176 Notify on pull to check whether keywords stay as is in email
177 ie. if patch.diff wrapper acts as it should
178
179 $ cat <<EOF >> $HGRCPATH
180 > [hooks]
181 > incoming.notify = python:hgext.notify.hook
182 > [notify]
183 > sources = pull
184 > diffstat = False
185 > [reposubs]
186 > * = Test
187 > EOF
188
189 Pull from bundle and trigger notify
190
191 $ hg pull -u ../kw.hg
192 pulling from ../kw.hg
193 requesting all changes
194 adding changesets
195 adding manifests
196 adding file changes
197 added 2 changesets with 3 changes to 3 files
198 Content-Type: text/plain; charset="us-ascii"
199 MIME-Version: 1.0
200 Content-Transfer-Encoding: 7bit
201 Date: .*
202 Subject: changeset in .*
203 From: mercurial
204 X-Hg-Notification: changeset a2392c293916
205 Message-Id: <hg.a2392c293916.*>
206 To: Test
207
208 changeset a2392c293916 in .*
209 details: .*?cmd=changeset;node=a2392c293916
210 description:
211 addsym
212
213 diffs (6 lines):
214
215 diff -r 000000000000 -r a2392c293916 sym
216 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
217 +++ b/sym Sat Feb 09 20:25:47 2008 +0100
218 @@ -0,0 +1,1 @@
219 +a
220 \ No newline at end of file
221 Content-Type: text/plain; charset="us-ascii"
222 MIME-Version: 1.0
223 Content-Transfer-Encoding: 7bit
224 Date:.*
225 Subject: changeset in.*
226 From: User Name <user@example.com>
227 X-Hg-Notification: changeset ef63ca68695b
228 Message-Id: <hg.ef63ca68695b.*>
229 To: Test
230
231 changeset ef63ca68695b in .*
232 details: .*?cmd=changeset;node=ef63ca68695b
233 description:
234 absym
235
236 diffs (12 lines):
237
238 diff -r a2392c293916 -r ef63ca68695b a
239 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
240 +++ b/a Thu Jan 01 00:00:00 1970 +0000
241 @@ -0,0 +1,3 @@
242 +expand $Id$
243 +do not process $Id:
244 +xxx $
245 diff -r a2392c293916 -r ef63ca68695b b
246 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
247 +++ b/b Thu Jan 01 00:00:00 1970 +0000
248 @@ -0,0 +1,1 @@
249 +ignore $Id$
250 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
251
252 Remove notify config
253
254 $ sed -e '/\[hooks\]/,$ d' "$HGRCPATH" > $HGRCPATH.nonotify
255 $ mv "$HGRCPATH".nonotify "$HGRCPATH"
256
257 Touch files and check with status
258
259 $ touch a b
260 $ hg status
261
262 Update and expand
263
264 $ rm sym a b
265 $ hg update -C
266 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
267 $ cat a b
268 expand $Id: a,v ef63ca68695b 1970/01/01 00:00:00 user $
269 do not process $Id:
270 xxx $
271 ignore $Id$
272
273 Check whether expansion is filewise
274
275 $ echo '$Id$' > c
276 $ echo 'tests for different changenodes' >> c
277
278 commit file c
279
280 $ hg commit -A -mcndiff -d '1 0' -u 'User Name <user@example.com>'
281 adding c
282
283 force expansion
284
285 $ hg -v kwexpand
286 overwriting a expanding keywords
287 overwriting c expanding keywords
288
289 compare changenodes in a and c
290
291 $ cat a c
292 expand $Id: a,v ef63ca68695b 1970/01/01 00:00:00 user $
293 do not process $Id:
294 xxx $
295 $Id: c,v 40a904bbbe4c 1970/01/01 00:00:01 user $
296 tests for different changenodes
297
298 record chunk
299
300 $ python -c \
301 > 'l=open("a").readlines();l.insert(1,"foo\n");l.append("bar\n");open("a","w").writelines(l);'
302 $ hg record -d '1 10' -m rectest<<EOF
303 > y
304 > y
305 > n
306 > EOF
307 diff --git a/a b/a
308 2 hunks, 2 lines changed
309 examine changes to 'a'? [Ynsfdaq?]
310 @@ -1,3 +1,4 @@
311 expand $Id$
312 +foo
313 do not process $Id:
314 xxx $
315 record change 1/2 to 'a'? [Ynsfdaq?]
316 @@ -2,2 +3,3 @@
317 do not process $Id:
318 xxx $
319 +bar
320 record change 2/2 to 'a'? [Ynsfdaq?]
321
322 $ hg identify
323 d17e03c92c97+ tip
324 $ hg status
325 M a
326
327 Cat modified file a
328
329 $ cat a
330 expand $Id: a,v d17e03c92c97 1970/01/01 00:00:01 test $
331 foo
332 do not process $Id:
333 xxx $
334 bar
335
336 Diff remaining chunk
337
338 $ hg diff | grep -v 'b/a'
339 diff -r d17e03c92c97 a
340 --- a/a Wed Dec 31 23:59:51 1969 -0000
341 @@ -2,3 +2,4 @@
342 foo
343 do not process $Id:
344 xxx $
345 +bar
346
347 $ hg rollback
348 rolling back to revision 2 (undo commit)
349
350 Record all chunks in file a
351
352 $ echo foo > msg
353
354 - do not use "hg record -m" here!
355
356 $ hg record -l msg -d '1 11'<<EOF
357 > y
358 > y
359 > y
360 > EOF
361 diff --git a/a b/a
362 2 hunks, 2 lines changed
363 examine changes to 'a'? [Ynsfdaq?]
364 @@ -1,3 +1,4 @@
365 expand $Id$
366 +foo
367 do not process $Id:
368 xxx $
369 record change 1/2 to 'a'? [Ynsfdaq?]
370 @@ -2,2 +3,3 @@
371 do not process $Id:
372 xxx $
373 +bar
374 record change 2/2 to 'a'? [Ynsfdaq?]
375
376 File a should be clean
377
378 $ hg status -A a
379 C a
380
381 $ rm msg
382 $ hg rollback
383 rolling back to revision 2 (undo commit)
384 $ hg update -C
385 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
386
387 Test patch queue repo
388
389 $ hg init --mq
390 $ hg qimport -r tip -n mqtest.diff
391 $ hg commit --mq -m mqtest
392
393 Keywords should not be expanded in patch
394
395 $ cat .hg/patches/mqtest.diff
396 # HG changeset patch
397 # User User Name <user@example.com>
398 # Date 1 0
399 # Node ID 40a904bbbe4cd4ab0a1f28411e35db26341a40ad
400 # Parent ef63ca68695bc9495032c6fda1350c71e6d256e9
401 cndiff
402
403 diff -r ef63ca68695b -r 40a904bbbe4c c
404 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
405 +++ b/c Thu Jan 01 00:00:01 1970 +0000
406 @@ -0,0 +1,2 @@
407 +$Id$
408 +tests for different changenodes
409
410 $ hg qpop
411 popping mqtest.diff
412 patch queue now empty
413
414 qgoto, implying qpush, should expand
415
416 $ hg qgoto mqtest.diff
417 applying mqtest.diff
418 now at: mqtest.diff
419 $ cat c
420 $Id: c,v 40a904bbbe4c 1970/01/01 00:00:01 user $
421 tests for different changenodes
422 $ hg cat c
423 $Id: c,v 40a904bbbe4c 1970/01/01 00:00:01 user $
424 tests for different changenodes
425
426 Keywords should not be expanded in filelog
427
428 $ hg --config 'extensions.keyword=!' cat c
429 $Id$
430 tests for different changenodes
431
432 qpop and move on
433
434 $ hg qpop
435 popping mqtest.diff
436 patch queue now empty
437
438 Copy and show added kwfiles
439
440 $ hg cp a c
441 $ hg kwfiles
442 a
443 c
444
445 Commit and show expansion in original and copy
446
447 $ hg --debug commit -ma2c -d '1 0' -u 'User Name <user@example.com>'
448 c
449 c: copy a:0045e12f6c5791aac80ca6cbfd97709a88307292
450 overwriting c expanding keywords
451 committed changeset 2:25736cf2f5cbe41f6be4e6784ef6ecf9f3bbcc7d
452 $ cat a c
453 expand $Id: a,v ef63ca68695b 1970/01/01 00:00:00 user $
454 do not process $Id:
455 xxx $
456 expand $Id: c,v 25736cf2f5cb 1970/01/01 00:00:01 user $
457 do not process $Id:
458 xxx $
459
460 Touch copied c and check its status
461
462 $ touch c
463 $ hg status
464
465 Test different options of hg kwfiles
466
467 $ hg kwfiles
468 a
469 c
470 $ hg -v kwfiles --ignore
471 I b
472 I sym
473 $ hg kwfiles --all
474 K a
475 K c
476 I b
477 I sym
478
479 Diff specific revision
480
481 $ hg diff --rev 1 | grep -v 'b/c'
482 diff -r ef63ca68695b c
483 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
484 @@ -0,0 +1,3 @@
485 +expand $Id$
486 +do not process $Id:
487 +xxx $
488
489 Status after rollback:
490
491 $ hg rollback
492 rolling back to revision 1 (undo commit)
493 $ hg status
494 A c
495 $ hg update --clean
496 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
497
498 Custom keywordmaps as argument to kwdemo
499
500 $ hg --quiet kwdemo "Xinfo = {author}: {desc}"
501 [extensions]
502 keyword =
503 [keyword]
504 ** =
505 b = ignore
506 demo.txt =
507 [keywordmaps]
508 Xinfo = {author}: {desc}
509 $Xinfo: test: hg keyword configuration and expansion example $
510
511 Configure custom keywordmaps
512
513 $ cat <<EOF >>$HGRCPATH
514 > [keywordmaps]
515 > Id = {file} {node|short} {date|rfc822date} {author|user}
516 > Xinfo = {author}: {desc}
517 > EOF
518
519 Cat and hg cat files before custom expansion
520
521 $ cat a b
522 expand $Id: a,v ef63ca68695b 1970/01/01 00:00:00 user $
523 do not process $Id:
524 xxx $
525 ignore $Id$
526 $ hg cat sym a b && echo
527 expand $Id: a ef63ca68695b Thu, 01 Jan 1970 00:00:00 +0000 user $
528 do not process $Id:
529 xxx $
530 ignore $Id$
531 a.*
532
533 Write custom keyword and prepare multiline commit message
534
535 $ echo '$Xinfo$' >> a
536 $ cat <<EOF >> log
537 > firstline
538 > secondline
539 > EOF
540
541 Interrupted commit should not change state
542
543 $ hg commit
544 abort: empty commit message
545 $ hg status
546 M a
547 ? c
548 ? log
549
550 Commit with multiline message and custom expansion
551
552 $ hg --debug commit -l log -d '2 0' -u 'User Name <user@example.com>'
553 a
554 overwriting a expanding keywords
555 committed changeset 2:bb948857c743469b22bbf51f7ec8112279ca5d83
556 $ rm log
557
558 Stat, verify and show custom expansion (firstline)
559
560 $ hg status
561 ? c
562 $ hg verify
563 checking changesets
564 checking manifests
565 crosschecking files in changesets and manifests
566 checking files
567 3 files, 3 changesets, 4 total revisions
568 $ cat a b
569 expand $Id: a bb948857c743 Thu, 01 Jan 1970 00:00:02 +0000 user $
570 do not process $Id:
571 xxx $
572 $Xinfo: User Name <user@example.com>: firstline $
573 ignore $Id$
574 $ hg cat sym a b && echo
575 expand $Id: a bb948857c743 Thu, 01 Jan 1970 00:00:02 +0000 user $
576 do not process $Id:
577 xxx $
578 $Xinfo: User Name <user@example.com>: firstline $
579 ignore $Id$
580 a.*
581
582 annotate
583
584 $ hg annotate a
585 1: expand $Id$
586 1: do not process $Id:
587 1: xxx $
588 2: $Xinfo$
589
590 remove with status checks
591
592 $ hg debugrebuildstate
593 $ hg remove a
594 $ hg --debug commit -m rma
595 committed changeset 3:d14c712653769de926994cf7fbb06c8fbd68f012
596 $ hg status
597 ? c
598
599 Rollback, revert, and check expansion
600
601 $ hg rollback
602 rolling back to revision 2 (undo commit)
603 $ hg status
604 R a
605 ? c
606 $ hg revert --no-backup --rev tip a
607 $ cat a
608 expand $Id: a bb948857c743 Thu, 01 Jan 1970 00:00:02 +0000 user $
609 do not process $Id:
610 xxx $
611 $Xinfo: User Name <user@example.com>: firstline $
612
613 Clone to test global and local configurations
614
615 $ cd ..
616
617 Expansion in destinaton with global configuration
618
619 $ hg --quiet clone Test globalconf
620 $ cat globalconf/a
621 expand $Id: a bb948857c743 Thu, 01 Jan 1970 00:00:02 +0000 user $
622 do not process $Id:
623 xxx $
624 $Xinfo: User Name <user@example.com>: firstline $
625
626 No expansion in destination with local configuration in origin only
627
628 $ hg --quiet --config 'keyword.**=ignore' clone Test localconf
629 $ cat localconf/a
630 expand $Id$
631 do not process $Id:
632 xxx $
633 $Xinfo$
634
635 Clone to test incoming
636
637 $ hg clone -r1 Test Test-a
638 requesting all changes
639 adding changesets
640 adding manifests
641 adding file changes
642 added 2 changesets with 3 changes to 3 files
643 updating to branch default
644 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
645 $ cd Test-a
646 $ cat <<EOF >> .hg/hgrc
647 > [paths]
648 > default = ../Test
649 > EOF
650 $ hg incoming
651 comparing with .*test-keyword.t/Test
652 searching for changes
653 changeset: 2:bb948857c743
654 tag: tip
655 user: User Name <user@example.com>
656 date: Thu Jan 01 00:00:02 1970 +0000
657 summary: firstline
658
659 Imported patch should not be rejected
660
661 $ sed -e 's/Id.*/& rejecttest/' a > a.new
662 $ mv a.new a
663 $ hg --debug commit -m'rejects?' -d '3 0' -u 'User Name <user@example.com>'
664 a
665 overwriting a expanding keywords
666 committed changeset 2:85e279d709ffc28c9fdd1b868570985fc3d87082
667 $ hg export -o ../rejecttest.diff tip
668 $ cd ../Test
669 $ hg import ../rejecttest.diff
670 applying ../rejecttest.diff
671 $ cat a b
672 expand $Id: a 4e0994474d25 Thu, 01 Jan 1970 00:00:03 +0000 user $ rejecttest
673 do not process $Id: rejecttest
674 xxx $
675 $Xinfo: User Name <user@example.com>: rejects? $
676 ignore $Id$
677
678 $ hg rollback
679 rolling back to revision 2 (undo commit)
680 $ hg update --clean
681 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
682
683 kwexpand/kwshrink on selected files
684
685 $ mkdir x
686 $ hg copy a x/a
687 $ hg --verbose kwexpand a
688 overwriting a expanding keywords
689
690 kwexpand x/a should abort
691
692 $ hg --verbose kwexpand x/a
693 abort: outstanding uncommitted changes
694 $ cd x
695 $ hg --debug commit -m xa -d '3 0' -u 'User Name <user@example.com>'
696 x/a
697 x/a: copy a:779c764182ce5d43e2b1eb66ce06d7b47bfe342e
698 overwriting x/a expanding keywords
699 committed changeset 3:b4560182a3f9a358179fd2d835c15e9da379c1e4
700 $ cat a
701 expand $Id: x/a b4560182a3f9 Thu, 01 Jan 1970 00:00:03 +0000 user $
702 do not process $Id:
703 xxx $
704 $Xinfo: User Name <user@example.com>: xa $
705
706 kwshrink a inside directory x
707
708 $ hg --verbose kwshrink a
709 overwriting x/a shrinking keywords
710 $ cat a
711 expand $Id$
712 do not process $Id:
713 xxx $
714 $Xinfo$
715 $ cd ..
716
717 kwexpand nonexistent
718
719 $ hg kwexpand nonexistent
720 nonexistent:.*
721
722
723 hg serve
724 - expand with hgweb file
725 - no expansion with hgweb annotate/changeset/filediff
726 - check errors
727
728 $ hg serve -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
729 $ cat hg.pid >> $DAEMON_PIDS
730 $ $TESTDIR/get-with-headers.py localhost:$HGPORT '/file/tip/a/?style=raw'
731 200 Script output follows
732
733 expand $Id: a bb948857c743 Thu, 01 Jan 1970 00:00:02 +0000 user $
734 do not process $Id:
735 xxx $
736 $Xinfo: User Name <user@example.com>: firstline $
737 $ $TESTDIR/get-with-headers.py localhost:$HGPORT '/annotate/tip/a/?style=raw'
738 200 Script output follows
739
740
741 user@1: expand $Id$
742 user@1: do not process $Id:
743 user@1: xxx $
744 user@2: $Xinfo$
745
746
747
748
749 $ $TESTDIR/get-with-headers.py localhost:$HGPORT '/rev/tip/?style=raw'
750 200 Script output follows
751
752
753 # HG changeset patch
754 # User User Name <user@example.com>
755 # Date 3 0
756 # Node ID b4560182a3f9a358179fd2d835c15e9da379c1e4
757 # Parent bb948857c743469b22bbf51f7ec8112279ca5d83
758 xa
759
760 diff -r bb948857c743 -r b4560182a3f9 x/a
761 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
762 +++ b/x/a Thu Jan 01 00:00:03 1970 +0000
763 @@ -0,0 +1,4 @@
764 +expand $Id$
765 +do not process $Id:
766 +xxx $
767 +$Xinfo$
768
769 $ $TESTDIR/get-with-headers.py localhost:$HGPORT '/diff/bb948857c743/a?style=raw'
770 200 Script output follows
771
772
773 diff -r ef63ca68695b -r bb948857c743 a
774 --- a/a Thu Jan 01 00:00:00 1970 +0000
775 +++ b/a Thu Jan 01 00:00:02 1970 +0000
776 @@ -1,3 +1,4 @@
777 expand $Id$
778 do not process $Id:
779 xxx $
780 +$Xinfo$
781
782
783
784
785 $ cat errors.log
786
787 Prepare merge and resolve tests
788
789 $ echo '$Id$' > m
790 $ hg add m
791 $ hg commit -m 4kw
792 $ echo foo >> m
793 $ hg commit -m 5foo
794
795 simplemerge
796
797 $ hg update 4
798 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
799 $ echo foo >> m
800 $ hg commit -m 6foo
801 created new head
802 $ hg merge
803 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
804 (branch merge, don't forget to commit)
805 $ hg commit -m simplemerge
806 $ cat m
807 $Id: m 27d48ee14f67 Thu, 01 Jan 1970 00:00:00 +0000 test $
808 foo
809
810 conflict: keyword should stay outside conflict zone
811
812 $ hg update 4
813 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
814 $ echo bar >> m
815 $ hg commit -m 8bar
816 created new head
817 $ hg merge
818 merging m
819 warning: conflicts during merge.
820 merging m failed!
821 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
822 use 'hg resolve' to retry unresolved file merges or 'hg update -C' to abandon
823 $ cat m
824 $Id$
825 <<<<<<< local
826 bar
827 =======
828 foo
829 >>>>>>> other
830
831 resolve to local
832
833 $ HGMERGE=internal:local hg resolve -a
834 $ hg commit -m localresolve
835 $ cat m
836 $Id: m 41efa6d38e9b Thu, 01 Jan 1970 00:00:00 +0000 test $
837 bar
838
839 Test restricted mode with transplant -b
840
841 $ hg update 6
842 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
843 $ hg branch foo
844 marked working directory as branch foo
845 $ mv a a.bak
846 $ echo foobranch > a
847 $ cat a.bak >> a
848 $ rm a.bak
849 $ hg commit -m 9foobranch
850 $ hg update default
851 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
852 $ hg -y transplant -b foo tip
853 applying 4aa30d025d50
854 4aa30d025d50 transplanted to 5a4da427c162
855
856 Expansion in changeset but not in file
857
858 $ hg tip -p
859 changeset: 11:5a4da427c162
860 tag: tip
861 parent: 9:41efa6d38e9b
862 user: test
863 date: Thu Jan 01 00:00:00 1970 +0000
864 summary: 9foobranch
865
866 diff -r 41efa6d38e9b -r 5a4da427c162 a
867 --- a/a Thu Jan 01 00:00:00 1970 +0000
868 +++ b/a Thu Jan 01 00:00:00 1970 +0000
869 @@ -1,3 +1,4 @@
870 +foobranch
871 expand $Id$
872 do not process $Id:
873 xxx $
874
875 $ head -n 2 a
876 foobranch
877 expand $Id: a 5a4da427c162 Thu, 01 Jan 1970 00:00:00 +0000 test $
878
879 Switch of expansion
880
881 $ hg -q rollback
882 $ hg -q update -C
883
884 kwshrink with unknown file u
885
886 $ cp a u
887 $ hg --verbose kwshrink
888 overwriting a shrinking keywords
889 overwriting m shrinking keywords
890 overwriting x/a shrinking keywords
891
892 Keywords shrunk in working directory, but not yet disabled
893 - cat shows unexpanded keywords
894 - hg cat shows expanded keywords
895
896 $ cat a b
897 expand $Id$
898 do not process $Id:
899 xxx $
900 $Xinfo$
901 ignore $Id$
902 $ hg cat sym a b && echo
903 expand $Id: a bb948857c743 Thu, 01 Jan 1970 00:00:02 +0000 user $
904 do not process $Id:
905 xxx $
906 $Xinfo: User Name <user@example.com>: firstline $
907 ignore $Id$
908 a.*
909
910 Now disable keyword expansion
911
912 $ rm "$HGRCPATH"
913 $ cat a b
914 expand $Id$
915 do not process $Id:
916 xxx $
917 $Xinfo$
918 ignore $Id$
919 $ hg cat sym a b && echo
920 expand $Id$
921 do not process $Id:
922 xxx $
923 $Xinfo$
924 ignore $Id$
925 a.*