test-keyword.t
923 lines
| 19.4 KiB
| text/troff
|
Tads3Lexer
/ tests / test-keyword.t
Matt Mackall
|
r11905 | $ cat <<EOF >> $HGRCPATH | ||
> [extensions] | ||||
> keyword = | ||||
> mq = | ||||
> notify = | ||||
> record = | ||||
> transplant = | ||||
> [ui] | ||||
> interactive = true | ||||
> EOF | ||||
Run kwdemo before [keyword] files are set up | ||||
as it would succeed without uisetup otherwise | ||||
$ hg --quiet kwdemo | ||||
[extensions] | ||||
keyword = | ||||
[keyword] | ||||
demo.txt = | ||||
[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 | ||||
\$Author: test \$ | ||||
\$Date: ..../../.. ..:..:.. \$ | ||||
\$Header: .*/demo.txt,v ............ ..../../.. ..:..:.. test \$ | ||||
\$Id: demo.txt,v ............ ..../../.. ..:..:.. test \$ | ||||
\$RCSFile: demo.txt,v \$ | ||||
\$RCSfile: demo.txt,v \$ | ||||
\$Revision: ............ \$ | ||||
\$Source: .*/demo.txt,v \$ | ||||
$ hg --quiet kwdemo "Branch = {branches}" | ||||
[extensions] | ||||
keyword = | ||||
[keyword] | ||||
demo.txt = | ||||
[keywordmaps] | ||||
Branch = {branches} | ||||
$Branch: demobranch $ | ||||
$ cat <<EOF >> $HGRCPATH | ||||
> [keyword] | ||||
> ** = | ||||
> b = ignore | ||||
> [hooks] | ||||
> 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 | ||||
$ hg pull -u "$TESTDIR"/test-keyword.hg | ||||
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 | ||||
$ 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 | ||||
$ 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$ | ||||
a.* | ||||
Test hook execution | ||||
$ diff a hooktest | ||||
Removing commit hook from config | ||||
$ sed -e '/\[hooks\]/,$ d' "$HGRCPATH" > $HGRCPATH.nohook | ||||
$ mv "$HGRCPATH".nohook "$HGRCPATH" | ||||
$ rm hooktest | ||||
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 | ||||
> [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 | ||||
Date: .* | ||||
Subject: changeset in .* | ||||
From: mercurial | ||||
X-Hg-Notification: changeset a2392c293916 | ||||
Message-Id: <hg.a2392c293916.*> | ||||
To: Test | ||||
changeset a2392c293916 in .* | ||||
details: .*?cmd=changeset;node=a2392c293916 | ||||
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 | ||||
Date:.* | ||||
Subject: changeset in.* | ||||
From: User Name <user@example.com> | ||||
X-Hg-Notification: changeset ef63ca68695b | ||||
Message-Id: <hg.ef63ca68695b.*> | ||||
To: Test | ||||
changeset ef63ca68695b in .* | ||||
details: .*?cmd=changeset;node=ef63ca68695b | ||||
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 | ||||
Remove notify config | ||||
$ sed -e '/\[hooks\]/,$ d' "$HGRCPATH" > $HGRCPATH.nonotify | ||||
$ mv "$HGRCPATH".nonotify "$HGRCPATH" | ||||
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$ | ||||
Check whether expansion is filewise | ||||
$ echo '$Id$' > c | ||||
$ echo 'tests for different changenodes' >> c | ||||
commit file c | ||||
$ hg commit -A -mcndiff -d '1 0' -u 'User Name <user@example.com>' | ||||
adding c | ||||
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 | ||||
record chunk | ||||
$ python -c \ | ||||
> 'l=open("a").readlines();l.insert(1,"foo\n");l.append("bar\n");open("a","w").writelines(l);' | ||||
$ hg record -d '1 10' -m rectest<<EOF | ||||
> y | ||||
> y | ||||
> n | ||||
> EOF | ||||
diff --git a/a b/a | ||||
2 hunks, 2 lines changed | ||||
examine changes to 'a'? [Ynsfdaq?] | ||||
@@ -1,3 +1,4 @@ | ||||
expand $Id$ | ||||
+foo | ||||
do not process $Id: | ||||
xxx $ | ||||
record change 1/2 to 'a'? [Ynsfdaq?] | ||||
@@ -2,2 +3,3 @@ | ||||
do not process $Id: | ||||
xxx $ | ||||
+bar | ||||
record change 2/2 to 'a'? [Ynsfdaq?] | ||||
$ hg identify | ||||
d17e03c92c97+ tip | ||||
$ hg status | ||||
M a | ||||
Cat modified file a | ||||
$ cat a | ||||
expand $Id: a,v d17e03c92c97 1970/01/01 00:00:01 test $ | ||||
foo | ||||
do not process $Id: | ||||
xxx $ | ||||
bar | ||||
Diff remaining chunk | ||||
Nicolas Dumazet
|
r12102 | $ hg diff | ||
Matt Mackall
|
r11905 | diff -r d17e03c92c97 a | ||
--- a/a Wed Dec 31 23:59:51 1969 -0000 | ||||
Nicolas Dumazet
|
r12102 | \+\+\+ b/a .* | ||
Matt Mackall
|
r11905 | @@ -2,3 +2,4 @@ | ||
foo | ||||
do not process $Id: | ||||
xxx $ | ||||
+bar | ||||
$ hg rollback | ||||
rolling back to revision 2 (undo commit) | ||||
Record all chunks in file a | ||||
$ echo foo > msg | ||||
- do not use "hg record -m" here! | ||||
$ hg record -l msg -d '1 11'<<EOF | ||||
> y | ||||
> y | ||||
> y | ||||
> EOF | ||||
diff --git a/a b/a | ||||
2 hunks, 2 lines changed | ||||
examine changes to 'a'? [Ynsfdaq?] | ||||
@@ -1,3 +1,4 @@ | ||||
expand $Id$ | ||||
+foo | ||||
do not process $Id: | ||||
xxx $ | ||||
record change 1/2 to 'a'? [Ynsfdaq?] | ||||
@@ -2,2 +3,3 @@ | ||||
do not process $Id: | ||||
xxx $ | ||||
+bar | ||||
record change 2/2 to 'a'? [Ynsfdaq?] | ||||
File a should be clean | ||||
$ hg status -A a | ||||
C a | ||||
$ rm msg | ||||
$ hg rollback | ||||
rolling back to revision 2 (undo commit) | ||||
$ hg update -C | ||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
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 | ||||
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 | ||||
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
|
r12102 | $ hg diff --rev 1 | ||
Matt Mackall
|
r11905 | diff -r ef63ca68695b c | ||
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 | ||||
Nicolas Dumazet
|
r12102 | \+\+\+ b/c .* | ||
Matt Mackall
|
r11905 | @@ -0,0 +1,3 @@ | ||
+expand $Id$ | ||||
+do not process $Id: | ||||
+xxx $ | ||||
Status after rollback: | ||||
$ hg rollback | ||||
rolling back to revision 1 (undo commit) | ||||
$ hg status | ||||
A c | ||||
$ hg update --clean | ||||
0 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
Custom keywordmaps as argument to kwdemo | ||||
$ hg --quiet kwdemo "Xinfo = {author}: {desc}" | ||||
[extensions] | ||||
keyword = | ||||
[keyword] | ||||
** = | ||||
b = ignore | ||||
demo.txt = | ||||
[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$ | ||||
a.* | ||||
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 | ||||
$ 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 | ||||
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$ | ||||
a.* | ||||
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 | ||||
rolling back to revision 2 (undo commit) | ||||
$ 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 | ||||
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 | ||||
$ cd Test-a | ||||
$ cat <<EOF >> .hg/hgrc | ||||
> [paths] | ||||
> default = ../Test | ||||
> EOF | ||||
$ hg incoming | ||||
comparing with .*test-keyword.t/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 | ||||
Imported patch should not be rejected | ||||
$ sed -e 's/Id.*/& rejecttest/' a > a.new | ||||
$ mv a.new a | ||||
$ 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 | ||||
rolling back to revision 2 (undo commit) | ||||
$ 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 | ||||
$ hg --verbose kwexpand a | ||||
overwriting a expanding keywords | ||||
kwexpand x/a should abort | ||||
$ hg --verbose kwexpand x/a | ||||
abort: outstanding uncommitted changes | ||||
$ 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 | ||||
nonexistent:.* | ||||
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 | ||||
$ $TESTDIR/get-with-headers.py localhost:$HGPORT '/file/tip/a/?style=raw' | ||||
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 $ | ||||
$ $TESTDIR/get-with-headers.py localhost:$HGPORT '/annotate/tip/a/?style=raw' | ||||
200 Script output follows | ||||
user@1: expand $Id$ | ||||
user@1: do not process $Id: | ||||
user@1: xxx $ | ||||
user@2: $Xinfo$ | ||||
$ $TESTDIR/get-with-headers.py localhost:$HGPORT '/rev/tip/?style=raw' | ||||
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$ | ||||
$ $TESTDIR/get-with-headers.py localhost:$HGPORT '/diff/bb948857c743/a?style=raw' | ||||
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 | ||||
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. | ||||
merging m failed! | ||||
0 files updated, 0 files merged, 0 files removed, 1 files unresolved | ||||
Brodie Rao
|
r12314 | use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon | ||
Matt Mackall
|
r11905 | $ cat m | ||
$Id$ | ||||
<<<<<<< local | ||||
bar | ||||
======= | ||||
foo | ||||
>>>>>>> other | ||||
resolve to local | ||||
$ HGMERGE=internal:local hg resolve -a | ||||
$ hg commit -m localresolve | ||||
$ cat m | ||||
$Id: m 41efa6d38e9b Thu, 01 Jan 1970 00:00:00 +0000 test $ | ||||
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 | ||||
$ 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 | ||||
4aa30d025d50 transplanted to 5a4da427c162 | ||||
Expansion in changeset but not in file | ||||
$ hg tip -p | ||||
changeset: 11:5a4da427c162 | ||||
tag: tip | ||||
parent: 9:41efa6d38e9b | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: 9foobranch | ||||
diff -r 41efa6d38e9b -r 5a4da427c162 a | ||||
--- 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 | ||||
expand $Id: a 5a4da427c162 Thu, 01 Jan 1970 00:00:00 +0000 test $ | ||||
Switch of expansion | ||||
$ 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$ | ||||
a.* | ||||
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$ | ||||
a.* | ||||