##// END OF EJS Templates
Do not use osutil.c with python 2.4 and Windows (issue1364)...
Do not use osutil.c with python 2.4 and Windows (issue1364) Windows python 2.4 os.stat() reports times including DST offset, while osutil.c reports the correct value, which makes status() systematically compare files content. This bug is fixed in python 2.5. Using osutil.py instead of osutil.c is 4x times slower on large repositories but current code is completely unusable. Given few people are likely to use python 2.4 on Windows this solution was considered a good trade-off compared to more invasive solutions trying to address the offset issue.

File last commit:

r10499:4401b0df stable
r10521:bde1bb25 stable
Show More
test-keyword.out
480 lines | 10.5 KiB | text/plain | TextLexer
Christian Ebert
keyword: add test
r5816 % hg kwdemo
[extensions]
Christian Ebert
tests highlight, keyword: load extensions with "ext ="
r10125 keyword =
Christian Ebert
keyword: add test
r5816 [keyword]
demo.txt =
[keywordmaps]
Author = {author|user}
Martin Geisler
keyword: sort demo output to ensure deterministic output
r9942 Date = {date|utcdate}
Christian Ebert
keyword: add test
r5816 Header = {root}/{file},v {node|short} {date|utcdate} {author|user}
Id = {file|basename},v {node|short} {date|utcdate} {author|user}
Martin Geisler
keyword: sort demo output to ensure deterministic output
r9942 RCSFile = {file|basename},v
Christian Ebert
keyword: the CVS keyword is $RCSfile$, not $RCSFile$...
r9943 RCSfile = {file|basename},v
Christian Ebert
keyword: add test
r5816 Revision = {node|short}
Martin Geisler
keyword: sort demo output to ensure deterministic output
r9942 Source = {root}/{file},v
Christian Ebert
keyword: add test
r5816 $Author: test $
Martin Geisler
keyword: sort demo output to ensure deterministic output
r9942 $Date: 2000/00/00 00:00:00 $
Christian Ebert
keyword: add test
r5816 $Header: /TMP/demo.txt,v xxxxxxxxxxxx 2000/00/00 00:00:00 test $
Martin Geisler
keyword: sort demo output to ensure deterministic output
r9942 $Id: demo.txt,v xxxxxxxxxxxx 2000/00/00 00:00:00 test $
$RCSFile: demo.txt,v $
Christian Ebert
keyword: the CVS keyword is $RCSfile$, not $RCSFile$...
r9943 $RCSfile: demo.txt,v $
Martin Geisler
keyword: sort demo output to ensure deterministic output
r9942 $Revision: xxxxxxxxxxxx $
Christian Ebert
keyword: add test
r5816 $Source: /TMP/demo.txt,v $
[extensions]
Christian Ebert
tests highlight, keyword: load extensions with "ext ="
r10125 keyword =
Christian Ebert
keyword: add test
r5816 [keyword]
demo.txt =
[keywordmaps]
Branch = {branches}
$Branch: demobranch $
% kwshrink should exit silently in empty/invalid repo
Patrick Mezard
test-keyword: make it run under Windows...
r6061 pulling from test-keyword.hg
requesting all changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
Christian Ebert
keyword: add test
r5816 % cat
expand $Id$
do not process $Id:
xxx $
ignore $Id$
Christian Ebert
keyword: make kwfiles -u show untracked files only (like status)...
r9493 % no kwfiles
% untracked candidates
k a
Christian Ebert
keyword: add test
r5816 % addremove
adding a
adding b
% status
A a
A b
% default keyword expansion including commit hook
% interrupted commit should not change state or run commit hook
Thomas Arendsen Hein
Solaris compatibility fixes for test-keyword:...
r5855 abort: empty commit message
Christian Ebert
keyword: add test
r5816 % status
A a
A b
% commit
a
b
overwriting a expanding keywords
running hook commit.test: cp a hooktest
Gilles Moris
Have verbose and debug flag print the changeset rev and hash when committing....
r6935 committed changeset 1:ef63ca68695bc9495032c6fda1350c71e6d256e9
Christian Ebert
keyword: add test
r5816 % status
? hooktest
% identify
Patrick Mezard
test-keyword: make it run under Windows...
r6061 ef63ca68695b
Christian Ebert
keyword: add test
r5816 % cat
Patrick Mezard
test-keyword: make it run under Windows...
r6061 expand $Id: a,v ef63ca68695b 1970/01/01 00:00:00 user $
Christian Ebert
keyword: add test
r5816 do not process $Id:
xxx $
ignore $Id$
% hg cat
Patrick Mezard
test-keyword: make it run under Windows...
r6061 expand $Id: a,v ef63ca68695b 1970/01/01 00:00:00 user $
Christian Ebert
keyword: add test
r5816 do not process $Id:
xxx $
ignore $Id$
a
% diff a hooktest
% removing commit hook from config
Christian Ebert
keyword: safeguards against erroneous behaviour or aborts...
r6051 % bundle
Patrick Mezard
test-keyword: make it run under Windows...
r6061 2 changesets found
Christian Ebert
keyword: add test for patch.diff monkey
r6116 % notify on pull to check whether keywords stay as is in email
% ie. if patch.diff wrapper acts as it should
Christian Ebert
keyword: safeguards against erroneous behaviour or aborts...
r6051 % pull from bundle
pulling from ../kw.hg
requesting all changes
adding changesets
adding manifests
adding file changes
Patrick Mezard
test-keyword: make it run under Windows...
r6061 added 2 changesets with 3 changes to 3 files
Christian Ebert
keyword: add test for patch.diff monkey
r6116
diff -r 000000000000 -r a2392c293916 sym
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sym Sat Feb 09 20:25:47 2008 +0100
@@ -0,0 +1,1 @@
+a
\ No newline at end of file
diff -r a2392c293916 -r ef63ca68695b a
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/a Thu Jan 01 00:00:00 1970 +0000
@@ -0,0 +1,3 @@
+expand $Id$
+do not process $Id:
+xxx $
diff -r a2392c293916 -r ef63ca68695b b
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/b Thu Jan 01 00:00:00 1970 +0000
@@ -0,0 +1,1 @@
+ignore $Id$
Christian Ebert
keyword: safeguards against erroneous behaviour or aborts...
r6051 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
Christian Ebert
keyword: add test for patch.diff monkey
r6116 % remove notify config
Christian Ebert
keyword: add test
r5816 % touch
% status
% update
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
% cat
Patrick Mezard
test-keyword: make it run under Windows...
r6061 expand $Id: a,v ef63ca68695b 1970/01/01 00:00:00 user $
Christian Ebert
keyword: add test
r5816 do not process $Id:
xxx $
ignore $Id$
Christian Ebert
keyword: test that expansion is done filewise...
r5856 % check whether expansion is filewise
% commit c
adding c
% force expansion
overwriting a expanding keywords
overwriting c expanding keywords
% compare changenodes in a c
Patrick Mezard
test-keyword: make it run under Windows...
r6061 expand $Id: a,v ef63ca68695b 1970/01/01 00:00:00 user $
Christian Ebert
keyword: test that expansion is done filewise...
r5856 do not process $Id:
xxx $
Patrick Mezard
test-keyword: make it run under Windows...
r6061 $Id: c,v 40a904bbbe4c 1970/01/01 00:00:01 user $
Christian Ebert
keyword: test that expansion is done filewise...
r5856 tests for different changenodes
Christian Ebert
keyword: safeguards against erroneous behaviour or aborts...
r6051 % qinit -c
Christian Ebert
keyword: add very simple mq test
r5894 % qimport
Christian Ebert
keyword: safeguards against erroneous behaviour or aborts...
r6051 % qcommit
Christian Ebert
keyword: add very simple mq test
r5894 % keywords should not be expanded in patch
# HG changeset patch
# User User Name <user@example.com>
# Date 1 0
Patrick Mezard
test-keyword: make it run under Windows...
r6061 # Node ID 40a904bbbe4cd4ab0a1f28411e35db26341a40ad
# Parent ef63ca68695bc9495032c6fda1350c71e6d256e9
Christian Ebert
keyword: add very simple mq test
r5894 cndiff
Patrick Mezard
test-keyword: make it run under Windows...
r6061 diff -r ef63ca68695b -r 40a904bbbe4c c
Christian Ebert
keyword: add very simple mq test
r5894 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/c Thu Jan 01 00:00:01 1970 +0000
@@ -0,0 +1,2 @@
+$Id$
+tests for different changenodes
% qpop
Mads Kiilerich
mq: qpop now tells which patches are popped...
r9110 popping mqtest.diff
Martin Geisler
mq: lowercase output...
r7627 patch queue now empty
Christian Ebert
keyword: add very simple mq test
r5894 % qgoto - should imply qpush
applying mqtest.diff
Martin Geisler
mq: lowercase output...
r7627 now at: mqtest.diff
Christian Ebert
keyword: add very simple mq test
r5894 % cat
Patrick Mezard
test-keyword: make it run under Windows...
r6061 $Id: c,v 40a904bbbe4c 1970/01/01 00:00:01 user $
Christian Ebert
keyword: add very simple mq test
r5894 tests for different changenodes
% qpop and move on
Mads Kiilerich
mq: qpop now tells which patches are popped...
r9110 popping mqtest.diff
Martin Geisler
mq: lowercase output...
r7627 patch queue now empty
Christian Ebert
keyword: add test
r5816 % copy
% kwfiles added
a
c
% commit
c
c: copy a:0045e12f6c5791aac80ca6cbfd97709a88307292
overwriting c expanding keywords
Ronny Pfannschmidt
filelog: sort meta entries, ensure deterministic order
r10490 committed changeset 2:25736cf2f5cbe41f6be4e6784ef6ecf9f3bbcc7d
Christian Ebert
keyword: add test
r5816 % cat a c
Patrick Mezard
test-keyword: make it run under Windows...
r6061 expand $Id: a,v ef63ca68695b 1970/01/01 00:00:00 user $
Christian Ebert
keyword: add test
r5816 do not process $Id:
xxx $
Ronny Pfannschmidt
filelog: sort meta entries, ensure deterministic order
r10490 expand $Id: c,v 25736cf2f5cb 1970/01/01 00:00:01 user $
Christian Ebert
keyword: add test
r5816 do not process $Id:
xxx $
Matt Mackall
tests: remove some unnecessary sleeps
r6328 % touch copied c
Christian Ebert
keyword: add test
r5816 % status
% kwfiles
a
c
Christian Ebert
keyword: make kwfiles -u show untracked files only (like status)...
r9493 % ignored files
I b
I sym
% all files
K a
K c
I b
I sym
Christian Ebert
keyword: add test
r5816 % diff --rev
Patrick Mezard
test-keyword: make it run under Windows...
r6061 diff -r ef63ca68695b c
Christian Ebert
keyword: add test
r5816 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -0,0 +1,3 @@
Christian Ebert
keyword: avoid extra diffs when not comparing against working dir...
r5885 +expand $Id$
Christian Ebert
keyword: add test
r5816 +do not process $Id:
+xxx $
% rollback
rolling back last transaction
% status
A c
% update -C
Benoit Boissinot
update --clean: do not unlink added files (issue575)
r8518 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
Christian Ebert
keyword: add test
r5816 % custom keyword expansion
% try with kwdemo
[extensions]
Christian Ebert
tests highlight, keyword: load extensions with "ext ="
r10125 keyword =
Christian Ebert
keyword: add test
r5816 [keyword]
* =
b = ignore
demo.txt =
[keywordmaps]
Xinfo = {author}: {desc}
Christian Ebert
keyword: mark improved demo commit message for translation...
r10499 $Xinfo: test: hg keyword configuration and expansion example $
Christian Ebert
keyword: add test
r5816 % cat
Patrick Mezard
test-keyword: make it run under Windows...
r6061 expand $Id: a,v ef63ca68695b 1970/01/01 00:00:00 user $
Christian Ebert
keyword: add test
r5816 do not process $Id:
xxx $
ignore $Id$
% hg cat
Patrick Mezard
test-keyword: make it run under Windows...
r6061 expand $Id: a ef63ca68695b Thu, 01 Jan 1970 00:00:00 +0000 user $
Christian Ebert
keyword: add test
r5816 do not process $Id:
xxx $
ignore $Id$
a
% interrupted commit should not change state
Thomas Arendsen Hein
Solaris compatibility fixes for test-keyword:...
r5855 abort: empty commit message
Christian Ebert
keyword: add test
r5816 % status
M a
Benoit Boissinot
update --clean: do not unlink added files (issue575)
r8518 ? c
Christian Ebert
keyword: add test
r5816 ? log
% commit
a
overwriting a expanding keywords
Gilles Moris
Have verbose and debug flag print the changeset rev and hash when committing....
r6935 committed changeset 2:bb948857c743469b22bbf51f7ec8112279ca5d83
Christian Ebert
keyword: add test
r5816 % status
Benoit Boissinot
update --clean: do not unlink added files (issue575)
r8518 ? c
Christian Ebert
keyword: add verify to nokwcommands after refactor in e79a8f36c2a5...
r6867 % verify
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
3 files, 3 changesets, 4 total revisions
Christian Ebert
keyword: add test
r5816 % cat
Patrick Mezard
test-keyword: make it run under Windows...
r6061 expand $Id: a bb948857c743 Thu, 01 Jan 1970 00:00:02 +0000 user $
Christian Ebert
keyword: add test
r5816 do not process $Id:
xxx $
$Xinfo: User Name <user@example.com>: firstline $
ignore $Id$
% hg cat
Patrick Mezard
test-keyword: make it run under Windows...
r6061 expand $Id: a bb948857c743 Thu, 01 Jan 1970 00:00:02 +0000 user $
Christian Ebert
keyword: add test
r5816 do not process $Id:
xxx $
$Xinfo: User Name <user@example.com>: firstline $
ignore $Id$
a
Christian Ebert
keyword: disable expansion for annotate...
r6667 % annotate
1: expand $Id$
1: do not process $Id:
1: xxx $
2: $Xinfo$
Christian Ebert
keyword: add test
r5816 % remove
Gilles Moris
Have verbose and debug flag print the changeset rev and hash when committing....
r6935 committed changeset 3:d14c712653769de926994cf7fbb06c8fbd68f012
Christian Ebert
keyword: add test
r5816 % status
Benoit Boissinot
update --clean: do not unlink added files (issue575)
r8518 ? c
Christian Ebert
keyword: add test
r5816 % rollback
rolling back last transaction
% status
R a
Benoit Boissinot
update --clean: do not unlink added files (issue575)
r8518 ? c
Christian Ebert
keyword: add test
r5816 % revert a
% cat a
Patrick Mezard
test-keyword: make it run under Windows...
r6061 expand $Id: a bb948857c743 Thu, 01 Jan 1970 00:00:02 +0000 user $
Christian Ebert
keyword: add test
r5816 do not process $Id:
xxx $
$Xinfo: User Name <user@example.com>: firstline $
% clone to test incoming
requesting all changes
adding changesets
adding manifests
adding file changes
Patrick Mezard
test-keyword: make it run under Windows...
r6061 added 2 changesets with 3 changes to 3 files
Adrian Buehlmann
hg.clone: report branch name on update
r9611 updating to branch default
Christian Ebert
keyword: add test
r5816 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
% incoming
Jesse Glick
Ensure that absolutized paths from hgrc do not contain ../ segments.
r5943 comparing with test-keyword/Test
Christian Ebert
keyword: add test
r5816 searching for changes
Patrick Mezard
test-keyword: make it run under Windows...
r6061 changeset: 2:bb948857c743
Christian Ebert
keyword: add test
r5816 tag: tip
user: User Name <user@example.com>
date: Thu Jan 01 00:00:02 1970 +0000
summary: firstline
% commit rejecttest
a
overwriting a expanding keywords
Gilles Moris
Have verbose and debug flag print the changeset rev and hash when committing....
r6935 committed changeset 2:85e279d709ffc28c9fdd1b868570985fc3d87082
Christian Ebert
keyword: add test
r5816 % export
% import
applying ../rejecttest.diff
% cat
Patrick Mezard
test-keyword: make it run under Windows...
r6061 expand $Id: a 4e0994474d25 Thu, 01 Jan 1970 00:00:03 +0000 user $ rejecttest
Christian Ebert
keyword: add test
r5816 do not process $Id: rejecttest
xxx $
$Xinfo: User Name <user@example.com>: rejects? $
ignore $Id$
% rollback
rolling back last transaction
% clean update
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
% kwexpand/kwshrink on selected files
% copy a x/a
% kwexpand a
overwriting a expanding keywords
% kwexpand x/a should abort
Christian Ebert
keyword: mimic cmdutil.bail_if_changed even more...
r6672 abort: outstanding uncommitted changes
Christian Ebert
keyword: add test
r5816 x/a
x/a: copy a:779c764182ce5d43e2b1eb66ce06d7b47bfe342e
overwriting x/a expanding keywords
Ronny Pfannschmidt
filelog: sort meta entries, ensure deterministic order
r10490 committed changeset 3:b4560182a3f9a358179fd2d835c15e9da379c1e4
Christian Ebert
keyword: add test
r5816 % cat a
Ronny Pfannschmidt
filelog: sort meta entries, ensure deterministic order
r10490 expand $Id: x/a b4560182a3f9 Thu, 01 Jan 1970 00:00:03 +0000 user $
Christian Ebert
keyword: add test
r5816 do not process $Id:
xxx $
$Xinfo: User Name <user@example.com>: xa $
% kwshrink a inside directory x
overwriting x/a shrinking keywords
% cat a
expand $Id$
do not process $Id:
xxx $
$Xinfo$
% kwexpand nonexistent
Patrick Mezard
test-keyword: make it run under Windows...
r6061 nonexistent:
Christian Ebert
keyword: thorough hgweb testing...
r6927 % hg serve
% expansion
% hgweb file
200 Script output follows
Patrick Mezard
test-keyword: make it run under Windows...
r6061 expand $Id: a bb948857c743 Thu, 01 Jan 1970 00:00:02 +0000 user $
Christian Ebert
keyword: add test
r5816 do not process $Id:
xxx $
$Xinfo: User Name <user@example.com>: firstline $
Christian Ebert
keyword: thorough hgweb testing...
r6927 % no expansion
% hgweb annotate
200 Script output follows
Benoit Boissinot
fix test output broken by a04d8cadb6af
r6968 user@1: expand $Id$
user@1: do not process $Id:
user@1: xxx $
user@2: $Xinfo$
Christian Ebert
keyword: thorough hgweb testing...
r6927
Dirkjan Ochtman
tests: add tests for hgweb to test-keyword
r6354 % hgweb changeset
200 Script output follows
# HG changeset patch
# User User Name <user@example.com>
# Date 3 0
Ronny Pfannschmidt
filelog: sort meta entries, ensure deterministic order
r10490 # Node ID b4560182a3f9a358179fd2d835c15e9da379c1e4
Benoit Boissinot
hgweb: nodeids should be aligned in raw changesets...
r7166 # Parent bb948857c743469b22bbf51f7ec8112279ca5d83
Dirkjan Ochtman
tests: add tests for hgweb to test-keyword
r6354 xa
Ronny Pfannschmidt
filelog: sort meta entries, ensure deterministic order
r10490 diff -r bb948857c743 -r b4560182a3f9 x/a
Dirkjan Ochtman
tests: add tests for hgweb to test-keyword
r6354 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/x/a Thu Jan 01 00:00:03 1970 +0000
@@ -0,0 +1,4 @@
+expand $Id$
+do not process $Id:
+xxx $
+$Xinfo$
% hgweb filediff
200 Script output follows
Martin Geisler
test-keyword: update output to match 5d49fdef6fd0
r9403 diff -r ef63ca68695b -r bb948857c743 a
Dirkjan Ochtman
tests: add tests for hgweb to test-keyword
r6354 --- a/a Thu Jan 01 00:00:00 1970 +0000
+++ b/a Thu Jan 01 00:00:02 1970 +0000
@@ -1,3 +1,4 @@
expand $Id$
do not process $Id:
xxx $
+$Xinfo$
% errors encountered
Christian Ebert
keyword: avoid additional conflicts during merge/resolve...
r6933 % merge/resolve
% simplemerge
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
created new head
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
Ronny Pfannschmidt
filelog: sort meta entries, ensure deterministic order
r10490 $Id: m 27d48ee14f67 Thu, 01 Jan 1970 00:00:00 +0000 test $
Christian Ebert
keyword: avoid additional conflicts during merge/resolve...
r6933 foo
% conflict
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
created new head
merging m
warning: conflicts during merge.
merging m failed!
0 files updated, 0 files merged, 0 files removed, 1 files unresolved
Stuart W Marks
hg: say 'hg update' instead of 'hg up' in merge status message...
r9468 use 'hg resolve' to retry unresolved file merges or 'hg update -C' to abandon
Christian Ebert
keyword: avoid additional conflicts during merge/resolve...
r6933 % keyword stays outside conflict zone
$Id$
<<<<<<< local
bar
=======
foo
>>>>>>> other
% resolve to local
Ronny Pfannschmidt
filelog: sort meta entries, ensure deterministic order
r10490 $Id: m 41efa6d38e9b Thu, 01 Jan 1970 00:00:00 +0000 test $
Christian Ebert
keyword: avoid additional conflicts during merge/resolve...
r6933 bar
Christian Ebert
keyword: go into restricted mode when transplanting...
r10117 % test restricted mode with transplant -b
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
marked working directory as branch foo
created new head
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
Ronny Pfannschmidt
filelog: sort meta entries, ensure deterministic order
r10490 applying 4aa30d025d50
4aa30d025d50 transplanted to 5a4da427c162
Christian Ebert
keyword: go into restricted mode when transplanting...
r10117 % no expansion in changeset
Ronny Pfannschmidt
filelog: sort meta entries, ensure deterministic order
r10490 changeset: 11:5a4da427c162
Christian Ebert
keyword: go into restricted mode when transplanting...
r10117 tag: tip
Ronny Pfannschmidt
filelog: sort meta entries, ensure deterministic order
r10490 parent: 9:41efa6d38e9b
Christian Ebert
keyword: go into restricted mode when transplanting...
r10117 user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: 9foobranch
Ronny Pfannschmidt
filelog: sort meta entries, ensure deterministic order
r10490 diff -r 41efa6d38e9b -r 5a4da427c162 a
Christian Ebert
keyword: go into restricted mode when transplanting...
r10117 --- a/a Thu Jan 01 00:00:00 1970 +0000
+++ b/a Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +1,4 @@
+foobranch
expand $Id$
do not process $Id:
xxx $
% expansion in file
foobranch
Ronny Pfannschmidt
filelog: sort meta entries, ensure deterministic order
r10490 expand $Id: a 5a4da427c162 Thu, 01 Jan 1970 00:00:00 +0000 test $
Christian Ebert
keyword: thorough hgweb testing...
r6927 % switch off expansion
% kwshrink with unknown file u
overwriting a shrinking keywords
Christian Ebert
keyword: avoid additional conflicts during merge/resolve...
r6933 overwriting m shrinking keywords
Christian Ebert
keyword: thorough hgweb testing...
r6927 overwriting x/a shrinking keywords
% cat
expand $Id$
do not process $Id:
xxx $
$Xinfo$
ignore $Id$
% hg cat
expand $Id: a bb948857c743 Thu, 01 Jan 1970 00:00:02 +0000 user $
do not process $Id:
xxx $
$Xinfo: User Name <user@example.com>: firstline $
ignore $Id$
a
% cat
expand $Id$
do not process $Id:
xxx $
$Xinfo$
ignore $Id$
% hg cat
expand $Id$
do not process $Id:
xxx $
$Xinfo$
ignore $Id$
a