hghave: be more tolerant to rst2html output
On Windows, rst2html.bat calls rst2html.py, printing something like:
"rst2html.py (Docutils"
(notice the extra ".py")
% hg kwdemo
[extensions]
hgext.keyword =
[keyword]
demo.txt =
[keywordmaps]
RCSFile = {file|basename},v
Author = {author|user}
Header = {root}/{file},v {node|short} {date|utcdate} {author|user}
Source = {root}/{file},v
Date = {date|utcdate}
Id = {file|basename},v {node|short} {date|utcdate} {author|user}
Revision = {node|short}
$RCSFile: demo.txt,v $
$Author: test $
$Header: /TMP/demo.txt,v xxxxxxxxxxxx 2000/00/00 00:00:00 test $
$Source: /TMP/demo.txt,v $
$Date: 2000/00/00 00:00:00 $
$Id: demo.txt,v xxxxxxxxxxxx 2000/00/00 00:00:00 test $
$Revision: xxxxxxxxxxxx $
[extensions]
hgext.keyword =
[keyword]
demo.txt =
[keywordmaps]
Branch = {branches}
$Branch: demobranch $
% kwshrink should exit silently in empty/invalid repo
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
% cat
expand $Id$
do not process $Id:
xxx $
ignore $Id$
% no kwfiles
% untracked candidates
k a
% 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
abort: empty commit message
% status
A a
A b
% commit
a
b
overwriting a expanding keywords
running hook commit.test: cp a hooktest
committed changeset 1:ef63ca68695bc9495032c6fda1350c71e6d256e9
% status
? hooktest
% identify
ef63ca68695b
% cat
expand $Id: a,v ef63ca68695b 1970/01/01 00:00:00 user $
do not process $Id:
xxx $
ignore $Id$
% hg cat
expand $Id: a,v ef63ca68695b 1970/01/01 00:00:00 user $
do not process $Id:
xxx $
ignore $Id$
a
% diff a hooktest
% removing commit hook from config
% bundle
2 changesets found
% notify on pull to check whether keywords stay as is in email
% ie. if patch.diff wrapper acts as it should
% pull from bundle
pulling from ../kw.hg
requesting all changes
adding changesets
adding manifests
adding file changes
added 2 changesets with 3 changes to 3 files
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$
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
% remove notify config
% touch
% status
% update
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
% cat
expand $Id: a,v ef63ca68695b 1970/01/01 00:00:00 user $
do not process $Id:
xxx $
ignore $Id$
% check whether expansion is filewise
% commit c
adding c
% force expansion
overwriting a expanding keywords
overwriting c expanding keywords
% compare changenodes in a c
expand $Id: a,v ef63ca68695b 1970/01/01 00:00:00 user $
do not process $Id:
xxx $
$Id: c,v 40a904bbbe4c 1970/01/01 00:00:01 user $
tests for different changenodes
% qinit -c
% qimport
% qcommit
% keywords should not be expanded in patch
# HG changeset patch
# User User Name <user@example.com>
# Date 1 0
# Node ID 40a904bbbe4cd4ab0a1f28411e35db26341a40ad
# Parent ef63ca68695bc9495032c6fda1350c71e6d256e9
cndiff
diff -r ef63ca68695b -r 40a904bbbe4c c
--- /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
popping mqtest.diff
patch queue now empty
% qgoto - should imply qpush
applying mqtest.diff
now at: mqtest.diff
% cat
$Id: c,v 40a904bbbe4c 1970/01/01 00:00:01 user $
tests for different changenodes
% qpop and move on
popping mqtest.diff
patch queue now empty
% copy
% kwfiles added
a
c
% commit
c
c: copy a:0045e12f6c5791aac80ca6cbfd97709a88307292
overwriting c expanding keywords
committed changeset 2:e22d299ac0c2bd8897b3df5114374b9e4d4ca62f
% cat a c
expand $Id: a,v ef63ca68695b 1970/01/01 00:00:00 user $
do not process $Id:
xxx $
expand $Id: c,v e22d299ac0c2 1970/01/01 00:00:01 user $
do not process $Id:
xxx $
% touch copied c
% status
% kwfiles
a
c
% ignored files
I b
I sym
% all files
K a
K c
I b
I sym
% diff --rev
diff -r ef63ca68695b c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -0,0 +1,3 @@
+expand $Id$
+do not process $Id:
+xxx $
% rollback
rolling back last transaction
% status
A c
% update -C
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
% custom keyword expansion
% try with kwdemo
[extensions]
hgext.keyword =
[keyword]
* =
b = ignore
demo.txt =
[keywordmaps]
Xinfo = {author}: {desc}
$Xinfo: test: hg keyword config and expansion example $
% cat
expand $Id: a,v ef63ca68695b 1970/01/01 00:00:00 user $
do not process $Id:
xxx $
ignore $Id$
% hg cat
expand $Id: a ef63ca68695b Thu, 01 Jan 1970 00:00:00 +0000 user $
do not process $Id:
xxx $
ignore $Id$
a
% interrupted commit should not change state
abort: empty commit message
% status
M a
? c
? log
% commit
a
overwriting a expanding keywords
committed changeset 2:bb948857c743469b22bbf51f7ec8112279ca5d83
% status
? c
% verify
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
3 files, 3 changesets, 4 total revisions
% 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$
% 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
% annotate
1: expand $Id$
1: do not process $Id:
1: xxx $
2: $Xinfo$
% remove
committed changeset 3:d14c712653769de926994cf7fbb06c8fbd68f012
% status
? c
% rollback
rolling back last transaction
% status
R a
? c
% revert a
% cat a
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 $
% clone to test incoming
requesting all changes
adding changesets
adding manifests
adding file changes
added 2 changesets with 3 changes to 3 files
updating to branch default
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
% incoming
comparing with test-keyword/Test
searching for changes
changeset: 2:bb948857c743
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
committed changeset 2:85e279d709ffc28c9fdd1b868570985fc3d87082
% export
% import
applying ../rejecttest.diff
% cat
expand $Id: a 4e0994474d25 Thu, 01 Jan 1970 00:00:03 +0000 user $ rejecttest
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
abort: outstanding uncommitted changes
x/a
x/a: copy a:779c764182ce5d43e2b1eb66ce06d7b47bfe342e
overwriting x/a expanding keywords
committed changeset 3:cfa68229c1167443337266ebac453c73b1d5d16e
% cat a
expand $Id: x/a cfa68229c116 Thu, 01 Jan 1970 00:00:03 +0000 user $
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
nonexistent:
% hg serve
% expansion
% hgweb file
200 Script output follows
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 $
% no expansion
% hgweb annotate
200 Script output follows
user@1: expand $Id$
user@1: do not process $Id:
user@1: xxx $
user@2: $Xinfo$
% hgweb changeset
200 Script output follows
# HG changeset patch
# User User Name <user@example.com>
# Date 3 0
# Node ID cfa68229c1167443337266ebac453c73b1d5d16e
# Parent bb948857c743469b22bbf51f7ec8112279ca5d83
xa
diff -r bb948857c743 -r cfa68229c116 x/a
--- /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
diff -r ef63ca68695b -r bb948857c743 a
--- 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
% 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)
$Id: m 8731e1dadc99 Thu, 01 Jan 1970 00:00:00 +0000 test $
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
use 'hg resolve' to retry unresolved file merges or 'hg update -C' to abandon
% keyword stays outside conflict zone
$Id$
<<<<<<< local
bar
=======
foo
>>>>>>> other
% resolve to local
$Id: m 43dfd2854b5b Thu, 01 Jan 1970 00:00:00 +0000 test $
bar
% switch off expansion
% kwshrink with unknown file u
overwriting a shrinking keywords
overwriting m shrinking keywords
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