##// END OF EJS Templates
localrepo: use the path relative to "self.vfs" instead of "path" argument...
localrepo: use the path relative to "self.vfs" instead of "path" argument As a part of migration to vfs, this patch uses "self.root", which can be recognized as the path relative to "self.vfs", instead of "path" argument. This fix allows to make invocations of "util.makedirs()" and "os.path.exists()" while ensuring repository directory in "localrepository.__init__()" ones indirectly via vfs. But this fix also raises issue 2528: "hg clone" with empty destination. "path" argument is empty in many cases, so this issue can't be fixed in the view of "localrepository.__init__()". Before this patch, it is fixed by empty-ness check ("not name") of exception handler in "util.makedirs()". try: os.mkdir(name) except OSError, err: if err.errno == errno.EEXIST: return if err.errno != errno.ENOENT or not name: raise This requires "localrepository.__init__()" to invoke "util.makedirs()" with "path" instead of "self.root", because empty "path" is treated as "current directory" and "self.root" becomes valid path. But "hg clone" with empty destination can be detected also in "hg.clone()" before "localrepository.__init__()" invocation, so this patch re-fixes issue2528 by checking it in "hg.clone()".

File last commit:

r17099:1c55d1ad default
r17159:36a30168 default
Show More
test-keyword.t
1139 lines | 24.1 KiB | text/troff | Tads3Lexer
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 $ cat <<EOF >> $HGRCPATH
> [extensions]
> keyword =
> mq =
> notify =
> record =
> transplant =
> [ui]
> interactive = true
> EOF
Mads Kiilerich
tests: add missing no-outer-repo requirements...
r17015 hide outer repo
$ hg init
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 Run kwdemo before [keyword] files are set up
as it would succeed without uisetup otherwise
$ hg --quiet kwdemo
[extensions]
keyword =
[keyword]
demo.txt =
Christian Ebert
keyword: inform user about current keywordset in kwdemo...
r13298 [keywordset]
svn = False
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 [keywordmaps]
Author = {author|user}
Date = {date|utcdate}
Header = {root}/{file},v {node|short} {date|utcdate} {author|user}
Id = {file|basename},v {node|short} {date|utcdate} {author|user}
RCSFile = {file|basename},v
RCSfile = {file|basename},v
Revision = {node|short}
Source = {root}/{file},v
Brodie Rao
tests: improve regexes in unified tests
r12372 $Author: test $
Brodie Rao
tests: add glob matching for unified tests...
r12376 $Date: ????/??/?? ??:??:?? $ (glob)
$Header: */demo.txt,v ???????????? ????/??/?? ??:??:?? test $ (glob)
$Id: demo.txt,v ???????????? ????/??/?? ??:??:?? test $ (glob)
Brodie Rao
tests: improve regexes in unified tests
r12372 $RCSFile: demo.txt,v $
$RCSfile: demo.txt,v $
Brodie Rao
tests: add glob matching for unified tests...
r12376 $Revision: ???????????? $ (glob)
$Source: */demo.txt,v $ (glob)
Matt Mackall
tests: drop big sed from test-keyword.t
r11905
$ hg --quiet kwdemo "Branch = {branches}"
[extensions]
keyword =
[keyword]
demo.txt =
Christian Ebert
keyword: inform user about current keywordset in kwdemo...
r13298 [keywordset]
svn = False
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 [keywordmaps]
Branch = {branches}
$Branch: demobranch $
$ cat <<EOF >> $HGRCPATH
> [keyword]
> ** =
> b = ignore
Christian Ebert
keyword: support copy and rename...
r12626 > i = ignore
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 > [hooks]
Christian Ebert
test-keyword: remove remaining sed calls
r12629 > EOF
$ cp $HGRCPATH $HGRCPATH.nohooks
> cat <<EOF >> $HGRCPATH
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 > commit=
> commit.test=cp a hooktest
> EOF
$ hg init Test-bndl
$ cd Test-bndl
kwshrink should exit silently in empty/invalid repo
$ hg kwshrink
Symlinks cannot be created on Windows.
A bundle to test this was made with:
hg init t
cd t
echo a > a
ln -s a sym
hg add sym
hg ci -m addsym -u mercurial
hg bundle --base null ../test-keyword.hg
Nicolas Dumazet
tests: move test bundles in a bundles/ subdirectory
r14116 $ hg pull -u "$TESTDIR"/bundles/test-keyword.hg
Brodie Rao
tests: add glob matching for unified tests...
r12376 pulling from *test-keyword.hg (glob)
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 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
$ echo 'expand $Id$' > a
$ echo 'do not process $Id:' >> a
$ echo 'xxx $' >> a
$ echo 'ignore $Id$' > b
Output files as they were created
$ cat a b
expand $Id$
do not process $Id:
xxx $
ignore $Id$
no kwfiles
$ hg kwfiles
untracked candidates
$ hg -v kwfiles --unknown
k a
Add files and check status
$ hg addremove
adding a
adding b
$ hg status
A a
A b
Default keyword expansion including commit hook
Interrupted commit should not change state or run commit hook
$ hg --debug commit
abort: empty commit message
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 $ hg status
A a
A b
Commit with several checks
$ hg --debug commit -mabsym -u 'User Name <user@example.com>'
a
b
overwriting a expanding keywords
running hook commit.test: cp a hooktest
committed changeset 1:ef63ca68695bc9495032c6fda1350c71e6d256e9
$ hg status
? hooktest
$ hg debugrebuildstate
$ hg --quiet identify
ef63ca68695b
cat files in working directory with keywords expanded
$ cat a b
expand $Id: a,v ef63ca68695b 1970/01/01 00:00:00 user $
do not process $Id:
xxx $
ignore $Id$
hg cat files and symlink, no expansion
$ hg cat sym a b && echo
expand $Id: a,v ef63ca68695b 1970/01/01 00:00:00 user $
do not process $Id:
xxx $
ignore $Id$
Mads Kiilerich
tests: remove redundant globs...
r12640 a
Matt Mackall
tests: drop big sed from test-keyword.t
r11905
$ diff a hooktest
Christian Ebert
test-keyword: remove remaining sed calls
r12629 $ cp $HGRCPATH.nohooks $HGRCPATH
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 $ rm hooktest
Christian Ebert
keyword: update filectx.cmp monkeypatch to handle '\1\n' at start of file...
r15871 hg status of kw-ignored binary file starting with '\1\n'
Jim Hague
tests: tighten checks for octal escapes in shell printf....
r16098 >>> open("i", "wb").write("\1\nfoo")
Christian Ebert
keyword: update filectx.cmp monkeypatch to handle '\1\n' at start of file...
r15871 $ hg -q commit -Am metasep i
$ hg status
Jim Hague
tests: tighten checks for octal escapes in shell printf....
r16098 >>> open("i", "wb").write("\1\nbar")
Christian Ebert
keyword: update filectx.cmp monkeypatch to handle '\1\n' at start of file...
r15871 $ hg status
M i
$ hg -q commit -m "modify metasep" i
$ hg status --rev 2:3
M i
$ touch empty
$ hg -q commit -A -m "another file"
$ hg status -A --rev 3:4 i
C i
$ hg -q strip -n 2
Test hook execution
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 bundle
$ hg bundle --base null ../kw.hg
2 changesets found
$ cd ..
$ hg init Test
$ cd Test
Notify on pull to check whether keywords stay as is in email
ie. if patch.diff wrapper acts as it should
$ cat <<EOF >> $HGRCPATH
> [hooks]
> incoming.notify = python:hgext.notify.hook
> [notify]
> sources = pull
> diffstat = False
Mads Kiilerich
test-keyword: ignore subject in notify hook mails...
r12648 > maxsubject = 15
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 > [reposubs]
> * = Test
> EOF
Pull from bundle and trigger notify
$ hg pull -u ../kw.hg
pulling from ../kw.hg
requesting all changes
adding changesets
adding manifests
adding file changes
added 2 changesets with 3 changes to 3 files
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Brodie Rao
tests: add glob matching for unified tests...
r12376 Date: * (glob)
Mads Kiilerich
test-keyword: ignore subject in notify hook mails...
r12648 Subject: changeset in...
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 From: mercurial
X-Hg-Notification: changeset a2392c293916
Brodie Rao
tests: add glob matching for unified tests...
r12376 Message-Id: <hg.a2392c293916*> (glob)
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 To: Test
Mads Kiilerich
tests: make (glob) on windows accept \ instead of /...
r15447 changeset a2392c293916 in $TESTTMP/Test (glob)
Martin Geisler
tests: use $TESTTMP more and use (glob) less...
r13572 details: $TESTTMP/Test?cmd=changeset;node=a2392c293916
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 description:
addsym
diffs (6 lines):
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
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Brodie Rao
tests: add glob matching for unified tests...
r12376 Date:* (glob)
Mads Kiilerich
test-keyword: ignore subject in notify hook mails...
r12648 Subject: changeset in...
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 From: User Name <user@example.com>
X-Hg-Notification: changeset ef63ca68695b
Brodie Rao
tests: add glob matching for unified tests...
r12376 Message-Id: <hg.ef63ca68695b*> (glob)
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 To: Test
Mads Kiilerich
tests: make (glob) on windows accept \ instead of /...
r15447 changeset ef63ca68695b in $TESTTMP/Test (glob)
Mads Kiilerich
tests: remove redundant globs...
r12640 details: $TESTTMP/Test?cmd=changeset;node=ef63ca68695b
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 description:
absym
diffs (12 lines):
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
Christian Ebert
test-keyword: remove remaining sed calls
r12629 $ cp $HGRCPATH.nohooks $HGRCPATH
Matt Mackall
tests: drop big sed from test-keyword.t
r11905
Touch files and check with status
$ touch a b
$ hg status
Update and expand
$ rm sym a b
$ hg update -C
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cat a b
expand $Id: a,v ef63ca68695b 1970/01/01 00:00:00 user $
do not process $Id:
xxx $
ignore $Id$
Christian Ebert
keyword: preserve file mode when overwriting
r15070 Check whether expansion is filewise and file mode is preserved
Matt Mackall
tests: drop big sed from test-keyword.t
r11905
$ echo '$Id$' > c
$ echo 'tests for different changenodes' >> c
Adrian Buehlmann
test-keyword: adapt for Windows
r17099 #if unix-permissions
Christian Ebert
keyword: preserve file mode when overwriting
r15070 $ chmod 600 c
$ ls -l c | cut -b 1-10
-rw-------
Adrian Buehlmann
test-keyword: adapt for Windows
r17099 #endif
Matt Mackall
tests: drop big sed from test-keyword.t
r11905
commit file c
$ hg commit -A -mcndiff -d '1 0' -u 'User Name <user@example.com>'
adding c
Adrian Buehlmann
test-keyword: adapt for Windows
r17099 #if unix-permissions
Christian Ebert
keyword: preserve file mode when overwriting
r15070 $ ls -l c | cut -b 1-10
-rw-------
Adrian Buehlmann
test-keyword: adapt for Windows
r17099 #endif
Matt Mackall
tests: drop big sed from test-keyword.t
r11905
force expansion
$ hg -v kwexpand
overwriting a expanding keywords
overwriting c expanding keywords
compare changenodes in a and c
$ cat 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
Christian Ebert
keyword: fix weeding of expansion candidates when recording...
r12684 record
$ echo '$Id$' > r
$ hg add r
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 record chunk
Adrian Buehlmann
test-keyword: adapt for Windows
r17099 >>> lines = open('a', 'rb').readlines()
Christian Ebert
test-keyword: use inline doctest syntax
r15556 >>> lines.insert(1, 'foo\n')
>>> lines.append('bar\n')
Adrian Buehlmann
test-keyword: adapt for Windows
r17099 >>> open('a', 'wb').writelines(lines)
Mads Kiilerich
tests: don't use dates before epoch in test-keyword.t...
r17098 $ hg record -d '10 1' -m rectest a<<EOF
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 > y
> y
> n
> EOF
diff --git a/a b/a
2 hunks, 2 lines changed
A. S. Budden
record: allow splitting of hunks by manually editing patches...
r16324 examine changes to 'a'? [Ynesfdaq?]
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 @@ -1,3 +1,4 @@
expand $Id$
+foo
do not process $Id:
xxx $
A. S. Budden
record: allow splitting of hunks by manually editing patches...
r16324 record change 1/2 to 'a'? [Ynesfdaq?]
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 @@ -2,2 +3,3 @@
do not process $Id:
xxx $
+bar
A. S. Budden
record: allow splitting of hunks by manually editing patches...
r16324 record change 2/2 to 'a'? [Ynesfdaq?]
Matt Mackall
tests: drop big sed from test-keyword.t
r11905
$ hg identify
Mads Kiilerich
tests: don't use dates before epoch in test-keyword.t...
r17098 5f5eb23505c3+ tip
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 $ hg status
M a
Christian Ebert
keyword: fix weeding of expansion candidates when recording...
r12684 A r
Matt Mackall
tests: drop big sed from test-keyword.t
r11905
Cat modified file a
$ cat a
Mads Kiilerich
tests: don't use dates before epoch in test-keyword.t...
r17098 expand $Id: a,v 5f5eb23505c3 1970/01/01 00:00:10 test $
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 foo
do not process $Id:
xxx $
bar
Diff remaining chunk
Christian Ebert
keyword: fix weeding of expansion candidates when recording...
r12684 $ hg diff a
Mads Kiilerich
tests: don't use dates before epoch in test-keyword.t...
r17098 diff -r 5f5eb23505c3 a
--- a/a Thu Jan 01 00:00:09 1970 -0000
Brodie Rao
tests: add glob matching for unified tests...
r12376 +++ b/a * (glob)
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 @@ -2,3 +2,4 @@
foo
do not process $Id:
xxx $
+bar
$ hg rollback
Gilles Moris
rollback: clarifies the message about the reverted state (issue2628)...
r13446 repository tip rolled back to revision 2 (undo commit)
working directory now based on revision 2
Matt Mackall
tests: drop big sed from test-keyword.t
r11905
Record all chunks in file a
$ echo foo > msg
- do not use "hg record -m" here!
Mads Kiilerich
tests: don't use dates before epoch in test-keyword.t...
r17098 $ hg record -l msg -d '11 1' a<<EOF
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 > y
> y
> y
> EOF
diff --git a/a b/a
2 hunks, 2 lines changed
A. S. Budden
record: allow splitting of hunks by manually editing patches...
r16324 examine changes to 'a'? [Ynesfdaq?]
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 @@ -1,3 +1,4 @@
expand $Id$
+foo
do not process $Id:
xxx $
A. S. Budden
record: allow splitting of hunks by manually editing patches...
r16324 record change 1/2 to 'a'? [Ynesfdaq?]
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 @@ -2,2 +3,3 @@
do not process $Id:
xxx $
+bar
A. S. Budden
record: allow splitting of hunks by manually editing patches...
r16324 record change 2/2 to 'a'? [Ynesfdaq?]
Matt Mackall
tests: drop big sed from test-keyword.t
r11905
File a should be clean
$ hg status -A a
C a
Christian Ebert
keyword: support rollback by restoring expansion to previous values...
r12498 rollback and revert expansion
$ cat a
Mads Kiilerich
tests: don't use dates before epoch in test-keyword.t...
r17098 expand $Id: a,v 78e0a02d76aa 1970/01/01 00:00:11 test $
Christian Ebert
keyword: support rollback by restoring expansion to previous values...
r12498 foo
do not process $Id:
xxx $
bar
$ hg --verbose rollback
Gilles Moris
rollback: clarifies the message about the reverted state (issue2628)...
r13446 repository tip rolled back to revision 2 (undo commit)
working directory now based on revision 2
Christian Ebert
keyword: support rollback by restoring expansion to previous values...
r12498 overwriting a expanding keywords
$ hg status a
M a
$ cat a
expand $Id: a,v ef63ca68695b 1970/01/01 00:00:00 user $
foo
do not process $Id:
xxx $
bar
$ echo '$Id$' > y
$ echo '$Id$' > z
$ hg add y
$ hg commit -Am "rollback only" z
$ cat z
$Id: z,v 45a5d3adce53 1970/01/01 00:00:00 test $
$ hg --verbose rollback
Gilles Moris
rollback: clarifies the message about the reverted state (issue2628)...
r13446 repository tip rolled back to revision 2 (undo commit)
working directory now based on revision 2
Christian Ebert
keyword: support rollback by restoring expansion to previous values...
r12498 overwriting z shrinking keywords
Only z should be overwritten
$ hg status a y z
M a
A y
A z
$ cat z
$Id$
$ hg forget y z
$ rm y z
Christian Ebert
keyword: fix weeding of expansion candidates when recording...
r12684 record added file alone
Matt Mackall
tests: drop big sed from test-keyword.t
r11905
Mads Kiilerich
tests: don't use dates before epoch in test-keyword.t...
r17098 $ hg -v record -l msg -d '12 2' r<<EOF
Christian Ebert
keyword: specific regular expressions depending on read mode...
r12630 > y
> EOF
diff --git a/r b/r
new file mode 100644
A. S. Budden
record: allow splitting of hunks by manually editing patches...
r16324 examine changes to 'r'? [Ynesfdaq?]
Christian Ebert
keyword: specific regular expressions depending on read mode...
r12630 r
Mads Kiilerich
tests: don't use dates before epoch in test-keyword.t...
r17098 committed changeset 3:82a2f715724d
Christian Ebert
keyword: specific regular expressions depending on read mode...
r12630 overwriting r expanding keywords
Christian Ebert
keyword: make status test after record and kwexpand/kwshrink reliable...
r15075 - status call required for dirstate.normallookup() check
$ hg status r
Christian Ebert
keyword: specific regular expressions depending on read mode...
r12630 $ hg --verbose rollback
Gilles Moris
rollback: clarifies the message about the reverted state (issue2628)...
r13446 repository tip rolled back to revision 2 (undo commit)
working directory now based on revision 2
Christian Ebert
keyword: specific regular expressions depending on read mode...
r12630 overwriting r shrinking keywords
$ hg forget r
$ rm msg r
Christian Ebert
keyword: fix weeding of expansion candidates when recording...
r12684 $ hg update -C
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
Christian Ebert
keyword: specific regular expressions depending on read mode...
r12630
Christian Ebert
keyword: fix regressions introduced in d87f3ff904ba...
r12844 record added keyword ignored file
$ echo '$Id$' > i
$ hg add i
Mads Kiilerich
tests: don't use dates before epoch in test-keyword.t...
r17098 $ hg --verbose record -d '13 1' -m recignored<<EOF
Christian Ebert
keyword: fix regressions introduced in d87f3ff904ba...
r12844 > y
> EOF
diff --git a/i b/i
new file mode 100644
A. S. Budden
record: allow splitting of hunks by manually editing patches...
r16324 examine changes to 'i'? [Ynesfdaq?]
Christian Ebert
keyword: fix regressions introduced in d87f3ff904ba...
r12844 i
Mads Kiilerich
tests: don't use dates before epoch in test-keyword.t...
r17098 committed changeset 3:9f40ceb5a072
Christian Ebert
keyword: fix regressions introduced in d87f3ff904ba...
r12844 $ cat i
$Id$
$ hg -q rollback
$ hg forget i
$ rm i
Christian Ebert
keyword: support commit --amend (issue3471)...
r16810 amend
$ echo amend >> a
$ echo amend >> b
Mads Kiilerich
tests: don't use dates before epoch in test-keyword.t...
r17098 $ hg -q commit -d '14 1' -m 'prepare amend'
Christian Ebert
keyword: support commit --amend (issue3471)...
r16810
Mads Kiilerich
tests: don't use dates before epoch in test-keyword.t...
r17098 $ hg --debug commit --amend -d '15 1' -m 'amend without changes' | grep keywords
Christian Ebert
keyword: support commit --amend (issue3471)...
r16810 overwriting a expanding keywords
$ hg -q id
Mads Kiilerich
tests: don't use dates before epoch in test-keyword.t...
r17098 577e60613a88
Christian Ebert
keyword: support commit --amend (issue3471)...
r16810 $ head -1 a
Mads Kiilerich
tests: don't use dates before epoch in test-keyword.t...
r17098 expand $Id: a,v 577e60613a88 1970/01/01 00:00:15 test $
Christian Ebert
keyword: support commit --amend (issue3471)...
r16810
$ hg -q strip -n tip
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 Test patch queue repo
$ hg init --mq
$ hg qimport -r tip -n mqtest.diff
$ hg commit --mq -m mqtest
Keywords should not be expanded in patch
$ cat .hg/patches/mqtest.diff
# 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
$ hg qpop
popping mqtest.diff
patch queue now empty
qgoto, implying qpush, should expand
$ hg qgoto mqtest.diff
applying mqtest.diff
now at: mqtest.diff
$ cat c
$Id: c,v 40a904bbbe4c 1970/01/01 00:00:01 user $
tests for different changenodes
$ hg cat c
$Id: c,v 40a904bbbe4c 1970/01/01 00:00:01 user $
tests for different changenodes
Keywords should not be expanded in filelog
$ hg --config 'extensions.keyword=!' cat c
$Id$
tests for different changenodes
qpop and move on
$ hg qpop
popping mqtest.diff
patch queue now empty
Copy and show added kwfiles
$ hg cp a c
$ hg kwfiles
a
c
Commit and show expansion in original and copy
$ hg --debug commit -ma2c -d '1 0' -u 'User Name <user@example.com>'
c
c: copy a:0045e12f6c5791aac80ca6cbfd97709a88307292
Patrick Mezard
repair: no need to call filterunknown() in strip()...
r16623 removing unknown node 40a904bbbe4c from 1-phase boundary
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 overwriting c expanding keywords
committed changeset 2:25736cf2f5cbe41f6be4e6784ef6ecf9f3bbcc7d
$ cat a c
expand $Id: a,v ef63ca68695b 1970/01/01 00:00:00 user $
do not process $Id:
xxx $
expand $Id: c,v 25736cf2f5cb 1970/01/01 00:00:01 user $
do not process $Id:
xxx $
Touch copied c and check its status
$ touch c
$ hg status
Christian Ebert
keyword: support copy and rename...
r12626 Copy kwfile to keyword ignored file unexpanding keywords
$ hg --verbose copy a i
copying a to i
overwriting i shrinking keywords
$ head -n 1 i
expand $Id$
$ hg forget i
$ rm i
Copy ignored file to ignored file: no overwriting
$ hg --verbose copy b i
copying b to i
$ hg forget i
$ rm i
Christian Ebert
keyword: copy: when copied source is a symlink, follow it...
r13069 cp symlink file; hg cp -A symlink file (part1)
- copied symlink points to kwfile: overwrite
Christian Ebert
keyword: support copy and rename...
r12626
Adrian Buehlmann
test-keyword: adapt for Windows
r17099 #if symlink
Christian Ebert
keyword: support copy and rename...
r12626 $ cp sym i
$ ls -l i
Mads Kiilerich
test-keyword: fix test glob to ACL/SELinux flag
r12647 -rw-r--r--* (glob)
Christian Ebert
keyword: support copy and rename...
r12626 $ head -1 i
expand $Id: a,v ef63ca68695b 1970/01/01 00:00:00 user $
$ hg copy --after --verbose sym i
copying sym to i
overwriting i shrinking keywords
$ head -1 i
expand $Id$
$ hg forget i
$ rm i
Adrian Buehlmann
test-keyword: adapt for Windows
r17099 #endif
Christian Ebert
keyword: support copy and rename...
r12626
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 Test different options of hg kwfiles
$ hg kwfiles
a
c
$ hg -v kwfiles --ignore
I b
I sym
$ hg kwfiles --all
K a
K c
I b
I sym
Diff specific revision
Nicolas Dumazet
test-keyword: use regular expressions instead of grepping
r12102 $ hg diff --rev 1
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 diff -r ef63ca68695b c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
Brodie Rao
tests: add glob matching for unified tests...
r12376 +++ b/c * (glob)
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 @@ -0,0 +1,3 @@
+expand $Id$
+do not process $Id:
+xxx $
Status after rollback:
$ hg rollback
Gilles Moris
rollback: clarifies the message about the reverted state (issue2628)...
r13446 repository tip rolled back to revision 1 (undo commit)
working directory now based on revision 1
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 $ hg status
A c
$ hg update --clean
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
Mads Kiilerich
tests: convert some 'hghave symlink' to #if...
r16908 #if symlink
Christian Ebert
keyword: copy: when copied source is a symlink, follow it...
r13069 cp symlink file; hg cp -A symlink file (part2)
- copied symlink points to kw ignored file: do not overwrite
$ cat a > i
$ ln -s i symignored
$ hg commit -Am 'fake expansion in ignored and symlink' i symignored
$ cp symignored x
$ hg copy --after --verbose symignored x
copying symignored to x
$ head -n 1 x
expand $Id: a,v ef63ca68695b 1970/01/01 00:00:00 user $
$ hg forget x
$ rm x
$ hg rollback
Gilles Moris
rollback: clarifies the message about the reverted state (issue2628)...
r13446 repository tip rolled back to revision 1 (undo commit)
working directory now based on revision 1
Christian Ebert
keyword: copy: when copied source is a symlink, follow it...
r13069 $ hg update --clean
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm i symignored
Mads Kiilerich
tests: convert some 'hghave symlink' to #if...
r16908 #endif
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 Custom keywordmaps as argument to kwdemo
$ hg --quiet kwdemo "Xinfo = {author}: {desc}"
[extensions]
keyword =
[keyword]
** =
b = ignore
demo.txt =
Christian Ebert
keyword: support copy and rename...
r12626 i = ignore
Christian Ebert
keyword: inform user about current keywordset in kwdemo...
r13298 [keywordset]
svn = False
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 [keywordmaps]
Xinfo = {author}: {desc}
$Xinfo: test: hg keyword configuration and expansion example $
Configure custom keywordmaps
$ cat <<EOF >>$HGRCPATH
> [keywordmaps]
> Id = {file} {node|short} {date|rfc822date} {author|user}
> Xinfo = {author}: {desc}
> EOF
Cat and hg cat files before custom expansion
$ cat a b
expand $Id: a,v ef63ca68695b 1970/01/01 00:00:00 user $
do not process $Id:
xxx $
ignore $Id$
$ hg cat sym a b && echo
expand $Id: a ef63ca68695b Thu, 01 Jan 1970 00:00:00 +0000 user $
do not process $Id:
xxx $
ignore $Id$
Mads Kiilerich
tests: remove redundant globs...
r12640 a
Matt Mackall
tests: drop big sed from test-keyword.t
r11905
Write custom keyword and prepare multiline commit message
$ echo '$Xinfo$' >> a
$ cat <<EOF >> log
> firstline
> secondline
> EOF
Interrupted commit should not change state
$ hg commit
abort: empty commit message
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 $ hg status
M a
? c
? log
Commit with multiline message and custom expansion
$ hg --debug commit -l log -d '2 0' -u 'User Name <user@example.com>'
a
Patrick Mezard
repair: no need to call filterunknown() in strip()...
r16623 removing unknown node 40a904bbbe4c from 1-phase boundary
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 overwriting a expanding keywords
committed changeset 2:bb948857c743469b22bbf51f7ec8112279ca5d83
$ rm log
Stat, verify and show custom expansion (firstline)
$ hg status
? c
$ hg verify
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
3 files, 3 changesets, 4 total revisions
$ cat a b
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 sym a b && echo
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$
Mads Kiilerich
tests: remove redundant globs...
r12640 a
Matt Mackall
tests: drop big sed from test-keyword.t
r11905
annotate
$ hg annotate a
1: expand $Id$
1: do not process $Id:
1: xxx $
2: $Xinfo$
remove with status checks
$ hg debugrebuildstate
$ hg remove a
$ hg --debug commit -m rma
committed changeset 3:d14c712653769de926994cf7fbb06c8fbd68f012
$ hg status
? c
Rollback, revert, and check expansion
$ hg rollback
Gilles Moris
rollback: clarifies the message about the reverted state (issue2628)...
r13446 repository tip rolled back to revision 2 (undo commit)
working directory now based on revision 2
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 $ hg status
R a
? c
$ hg revert --no-backup --rev tip 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 global and local configurations
$ cd ..
Expansion in destinaton with global configuration
$ hg --quiet clone Test globalconf
$ cat globalconf/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 $
No expansion in destination with local configuration in origin only
$ hg --quiet --config 'keyword.**=ignore' clone Test localconf
$ cat localconf/a
expand $Id$
do not process $Id:
xxx $
$Xinfo$
Clone to test incoming
$ hg clone -r1 Test Test-a
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
$ cd Test-a
$ cat <<EOF >> .hg/hgrc
> [paths]
> default = ../Test
> EOF
$ hg incoming
Mads Kiilerich
tests: make (glob) on windows accept \ instead of /...
r15447 comparing with $TESTTMP/Test (glob)
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 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
Imported patch should not be rejected
Christian Ebert
test-keyword: use inline doctest syntax
r15556 >>> import re
>>> text = re.sub(r'(Id.*)', r'\1 rejecttest', open('a').read())
>>> open('a', 'wb').write(text)
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 $ hg --debug commit -m'rejects?' -d '3 0' -u 'User Name <user@example.com>'
a
overwriting a expanding keywords
committed changeset 2:85e279d709ffc28c9fdd1b868570985fc3d87082
$ hg export -o ../rejecttest.diff tip
$ cd ../Test
$ hg import ../rejecttest.diff
applying ../rejecttest.diff
$ cat a b
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$
$ hg rollback
Greg Ward
import: wrap a transaction around the whole command...
r15198 repository tip rolled back to revision 2 (undo import)
Gilles Moris
rollback: clarifies the message about the reverted state (issue2628)...
r13446 working directory now based on revision 2
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 $ hg update --clean
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
kwexpand/kwshrink on selected files
$ mkdir x
$ hg copy a x/a
Christian Ebert
keyword: fix regressions introduced in d87f3ff904ba...
r12844 $ hg --verbose kwshrink a
overwriting a shrinking keywords
Christian Ebert
keyword: make status test after record and kwexpand/kwshrink reliable...
r15075 - sleep required for dirstate.normal() check
$ sleep 1
Christian Ebert
keyword: fix regressions introduced in d87f3ff904ba...
r12844 $ hg status a
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 $ hg --verbose kwexpand a
overwriting a expanding keywords
Christian Ebert
keyword: fix regressions introduced in d87f3ff904ba...
r12844 $ hg status a
Matt Mackall
tests: drop big sed from test-keyword.t
r11905
kwexpand x/a should abort
$ hg --verbose kwexpand x/a
abort: outstanding uncommitted changes
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 $ cd x
$ hg --debug commit -m xa -d '3 0' -u 'User Name <user@example.com>'
x/a
x/a: copy a:779c764182ce5d43e2b1eb66ce06d7b47bfe342e
overwriting x/a expanding keywords
committed changeset 3:b4560182a3f9a358179fd2d835c15e9da379c1e4
$ cat a
expand $Id: x/a b4560182a3f9 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
$ hg --verbose kwshrink a
overwriting x/a shrinking keywords
$ cat a
expand $Id$
do not process $Id:
xxx $
$Xinfo$
$ cd ..
kwexpand nonexistent
$ hg kwexpand nonexistent
Brodie Rao
tests: add glob matching for unified tests...
r12376 nonexistent:* (glob)
Matt Mackall
tests: drop big sed from test-keyword.t
r11905
Adrian Buehlmann
test-keyword: adapt for Windows
r17099 #if serve
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 hg serve
- expand with hgweb file
- no expansion with hgweb annotate/changeset/filediff
- check errors
$ hg serve -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
$ cat hg.pid >> $DAEMON_PIDS
Mads Kiilerich
tests: prepare get-with-headers.py for MSYS...
r17017 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/tip/a/?style=raw'
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 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 $
Mads Kiilerich
tests: prepare get-with-headers.py for MSYS...
r17017 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'annotate/tip/a/?style=raw'
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 200 Script output follows
user@1: expand $Id$
user@1: do not process $Id:
user@1: xxx $
user@2: $Xinfo$
Mads Kiilerich
tests: prepare get-with-headers.py for MSYS...
r17017 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'rev/tip/?style=raw'
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 200 Script output follows
# HG changeset patch
# User User Name <user@example.com>
# Date 3 0
# Node ID b4560182a3f9a358179fd2d835c15e9da379c1e4
# Parent bb948857c743469b22bbf51f7ec8112279ca5d83
xa
diff -r bb948857c743 -r b4560182a3f9 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$
Mads Kiilerich
tests: prepare get-with-headers.py for MSYS...
r17017 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'diff/bb948857c743/a?style=raw'
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 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$
$ cat errors.log
Adrian Buehlmann
test-keyword: adapt for Windows
r17099 #endif
Matt Mackall
tests: drop big sed from test-keyword.t
r11905
Prepare merge and resolve tests
$ echo '$Id$' > m
$ hg add m
$ hg commit -m 4kw
$ echo foo >> m
$ hg commit -m 5foo
simplemerge
$ hg update 4
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo foo >> m
$ hg commit -m 6foo
created new head
$ hg merge
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg commit -m simplemerge
$ cat m
$Id: m 27d48ee14f67 Thu, 01 Jan 1970 00:00:00 +0000 test $
foo
conflict: keyword should stay outside conflict zone
$ hg update 4
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo bar >> m
$ hg commit -m 8bar
created new head
$ hg merge
merging m
warning: conflicts during merge.
Matt Mackall
merge: give a special message for internal:merge failure (issue3105)
r15501 merging m incomplete! (edit conflicts, then use 'hg resolve --mark')
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
Brodie Rao
merge: suggest 'hg up -C .' for discarding changes, not 'hg up -C'...
r12314 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
Matt Mackall
tests: add exit codes to unified tests
r12316 [1]
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 $ cat m
$Id$
<<<<<<< local
bar
=======
foo
>>>>>>> other
resolve to local
$ HGMERGE=internal:local hg resolve -a
$ hg commit -m localresolve
$ cat m
Peter Arrenbrecht
localrepo: reuse parent manifest in commitctx if no files have changed...
r14162 $Id: m 800511b3a22d Thu, 01 Jan 1970 00:00:00 +0000 test $
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 bar
Test restricted mode with transplant -b
$ hg update 6
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg branch foo
marked working directory as branch foo
Matt Mackall
branch: warn on branching
r15615 (branches are permanent and global, did you want a bookmark?)
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 $ mv a a.bak
$ echo foobranch > a
$ cat a.bak >> a
$ rm a.bak
$ hg commit -m 9foobranch
$ hg update default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg -y transplant -b foo tip
applying 4aa30d025d50
Peter Arrenbrecht
localrepo: reuse parent manifest in commitctx if no files have changed...
r14162 4aa30d025d50 transplanted to e00abbf63521
Matt Mackall
tests: drop big sed from test-keyword.t
r11905
Expansion in changeset but not in file
$ hg tip -p
Peter Arrenbrecht
localrepo: reuse parent manifest in commitctx if no files have changed...
r14162 changeset: 11:e00abbf63521
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 tag: tip
Peter Arrenbrecht
localrepo: reuse parent manifest in commitctx if no files have changed...
r14162 parent: 9:800511b3a22d
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: 9foobranch
Peter Arrenbrecht
localrepo: reuse parent manifest in commitctx if no files have changed...
r14162 diff -r 800511b3a22d -r e00abbf63521 a
Matt Mackall
tests: drop big sed from test-keyword.t
r11905 --- 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 $
$ head -n 2 a
foobranch
Peter Arrenbrecht
localrepo: reuse parent manifest in commitctx if no files have changed...
r14162 expand $Id: a e00abbf63521 Thu, 01 Jan 1970 00:00:00 +0000 test $
Matt Mackall
tests: drop big sed from test-keyword.t
r11905
Christian Ebert
test-keyword: fix typo, rephrase
r12495 Turn off expansion
Matt Mackall
tests: drop big sed from test-keyword.t
r11905
$ hg -q rollback
$ hg -q update -C
kwshrink with unknown file u
$ cp a u
$ hg --verbose kwshrink
overwriting a shrinking keywords
overwriting m shrinking keywords
overwriting x/a shrinking keywords
Keywords shrunk in working directory, but not yet disabled
- cat shows unexpanded keywords
- hg cat shows expanded keywords
$ cat a b
expand $Id$
do not process $Id:
xxx $
$Xinfo$
ignore $Id$
$ hg cat sym a b && echo
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$
Mads Kiilerich
tests: remove redundant globs...
r12640 a
Matt Mackall
tests: drop big sed from test-keyword.t
r11905
Now disable keyword expansion
$ rm "$HGRCPATH"
$ cat a b
expand $Id$
do not process $Id:
xxx $
$Xinfo$
ignore $Id$
$ hg cat sym a b && echo
expand $Id$
do not process $Id:
xxx $
$Xinfo$
ignore $Id$
Mads Kiilerich
tests: remove redundant globs...
r12640 a
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913
$ cd ..