test-keyword
299 lines
| 5.3 KiB
| text/plain
|
TextLexer
/ tests / test-keyword
|
r5816 | #!/bin/sh | ||
cat <<EOF >> $HGRCPATH | ||||
[extensions] | ||||
hgext.keyword = | ||||
|
r5894 | hgext.mq = | ||
|
r6116 | hgext.notify = | ||
|
r5816 | [keyword] | ||
* = | ||||
b = ignore | ||||
[hooks] | ||||
commit= | ||||
commit.test=cp a hooktest | ||||
EOF | ||||
echo % help | ||||
hg help keyword | ||||
echo % hg kwdemo | ||||
hg --quiet kwdemo --default \ | ||||
| sed -e 's![^ ][^ ]*demo.txt,v!/TMP/demo.txt,v!' \ | ||||
-e 's/,v [a-z0-9][a-z0-9]* /,v xxxxxxxxxxxx /' \ | ||||
-e '/[$]Revision/ s/: [a-z0-9][a-z0-9]* /: xxxxxxxxxxxx /' \ | ||||
-e 's! 20[0-9][0-9]/[01][0-9]/[0-3][0-9] [0-2][0-9]:[0-6][0-9]:[0-6][0-9]! 2000/00/00 00:00:00!' | ||||
hg --quiet kwdemo "Branch = {branches}" | ||||
|
r6051 | hg init Test-bndl | ||
cd Test-bndl | ||||
|
r5816 | |||
echo % kwshrink should exit silently in empty/invalid repo | ||||
hg kwshrink | ||||
|
r6061 | # Symlinks cannot be created on Windows. The bundle 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" \ | ||||
| sed 's/pulling from.*test-keyword.hg/pulling from test-keyword.hg/' | ||||
|
r5816 | echo 'expand $Id$' > a | ||
echo 'do not process $Id:' >> a | ||||
echo 'xxx $' >> a | ||||
echo 'ignore $Id$' > b | ||||
echo % cat | ||||
|
r6061 | cat a b | ||
|
r5816 | |||
echo % addremove | ||||
hg addremove | ||||
echo % status | ||||
hg status | ||||
echo % default keyword expansion including commit hook | ||||
echo % interrupted commit should not change state or run commit hook | ||||
|
r5855 | hg --debug commit | ||
|
r5816 | echo % status | ||
hg status | ||||
echo % commit | ||||
hg --debug commit -mabsym -d '0 0' -u 'User Name <user@example.com>' | ||||
echo % status | ||||
hg status | ||||
echo % identify | ||||
|
r6157 | hg debugrebuildstate | ||
|
r5816 | hg --quiet identify | ||
echo % cat | ||||
|
r6061 | cat a b | ||
|
r5816 | echo % hg cat | ||
hg cat sym a b | ||||
echo | ||||
echo % diff a hooktest | ||||
diff a hooktest | ||||
echo % removing commit hook from config | ||||
sed -e '/\[hooks\]/,$ d' $HGRCPATH > $HGRCPATH.nohook | ||||
mv $HGRCPATH.nohook $HGRCPATH | ||||
rm hooktest | ||||
|
r6051 | echo % bundle | ||
hg bundle --base null ../kw.hg | ||||
cd .. | ||||
hg init Test | ||||
cd Test | ||||
|
r6116 | echo % notify on pull to check whether keywords stay as is in email | ||
echo % 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 | ||||
|
r6051 | echo % pull from bundle | ||
|
r6116 | hg pull -u ../kw.hg 2>&1 | sed -e '/^Date:/,/^diffs (/ d' | ||
echo % remove notify config | ||||
sed -e '/\[hooks\]/,$ d' $HGRCPATH > $HGRCPATH.nonotify | ||||
mv $HGRCPATH.nonotify $HGRCPATH | ||||
|
r6051 | |||
|
r5816 | echo % touch | ||
touch a b | ||||
echo % status | ||||
hg status | ||||
rm sym a b | ||||
echo % update | ||||
hg update | ||||
echo % cat | ||||
|
r6061 | cat a b | ||
|
r5816 | |||
|
r5856 | echo % check whether expansion is filewise | ||
echo '$Id$' > c | ||||
echo 'tests for different changenodes' >> c | ||||
echo % commit c | ||||
hg commit -A -mcndiff -d '1 0' -u 'User Name <user@example.com>' | ||||
echo % force expansion | ||||
hg -v kwexpand | ||||
echo % compare changenodes in a c | ||||
cat a c | ||||
|
r5894 | |||
|
r6051 | echo % qinit -c | ||
hg qinit -c | ||||
|
r5894 | echo % qimport | ||
hg qimport -r tip -n mqtest.diff | ||||
|
r6051 | echo % qcommit | ||
hg qcommit -mqtest | ||||
|
r5894 | echo % keywords should not be expanded in patch | ||
cat .hg/patches/mqtest.diff | ||||
echo % qpop | ||||
hg qpop | ||||
echo % qgoto - should imply qpush | ||||
hg qgoto mqtest.diff | ||||
echo % cat | ||||
cat c | ||||
echo % qpop and move on | ||||
hg qpop | ||||
|
r5856 | |||
|
r5816 | echo % copy | ||
hg cp a c | ||||
echo % kwfiles added | ||||
hg kwfiles | ||||
echo % commit | ||||
hg --debug commit -ma2c -d '1 0' -u 'User Name <user@example.com>' | ||||
echo % cat a c | ||||
cat a c | ||||
echo % touch copied c after 1 second | ||||
sleep 1 | ||||
touch c | ||||
echo % status | ||||
hg status | ||||
echo % kwfiles | ||||
hg kwfiles | ||||
echo % diff --rev | ||||
|
r6061 | hg diff --rev 1 | grep -v 'b/c' | ||
|
r5816 | |||
echo % rollback | ||||
hg rollback | ||||
echo % status | ||||
hg status | ||||
echo % update -C | ||||
hg update --clean | ||||
echo % custom keyword expansion | ||||
echo % try with kwdemo | ||||
hg --quiet kwdemo "Xinfo = {author}: {desc}" | ||||
cat <<EOF >>$HGRCPATH | ||||
[keywordmaps] | ||||
Id = {file} {node|short} {date|rfc822date} {author|user} | ||||
Xinfo = {author}: {desc} | ||||
EOF | ||||
echo % cat | ||||
|
r6061 | cat a b | ||
|
r5816 | echo % hg cat | ||
hg cat sym a b | ||||
echo | ||||
echo '$Xinfo$' >> a | ||||
cat <<EOF >> log | ||||
firstline | ||||
secondline | ||||
EOF | ||||
echo % interrupted commit should not change state | ||||
|
r5855 | hg commit | ||
|
r5816 | echo % status | ||
hg status | ||||
echo % commit | ||||
hg --debug commit -l log -d '2 0' -u 'User Name <user@example.com>' | ||||
rm log | ||||
echo % status | ||||
hg status | ||||
echo % cat | ||||
|
r6061 | cat a b | ||
|
r5816 | echo % hg cat | ||
hg cat sym a b | ||||
echo | ||||
echo % remove | ||||
|
r6157 | hg debugrebuildstate | ||
|
r5816 | hg remove a | ||
hg --debug commit -m rma | ||||
echo % status | ||||
hg status | ||||
echo % rollback | ||||
hg rollback | ||||
echo % status | ||||
hg status | ||||
echo % revert a | ||||
hg revert --no-backup --rev tip a | ||||
echo % cat a | ||||
cat a | ||||
echo % clone to test incoming | ||||
cd .. | ||||
|
r6061 | hg clone -r1 Test Test-a | ||
|
r5816 | cd Test-a | ||
cat <<EOF >> .hg/hgrc | ||||
[paths] | ||||
default = ../Test | ||||
EOF | ||||
echo % incoming | ||||
# remove path to temp dir | ||||
hg incoming | sed -e 's/^\(comparing with \).*\(test-keyword.*\)/\1\2/' | ||||
|
r5839 | sed -e 's/Id.*/& rejecttest/' a > a.new | ||
mv a.new a | ||||
|
r5816 | echo % commit rejecttest | ||
hg --debug commit -m'rejects?' -d '3 0' -u 'User Name <user@example.com>' | ||||
echo % export | ||||
hg export -o ../rejecttest.diff tip | ||||
cd ../Test | ||||
echo % import | ||||
hg import ../rejecttest.diff | ||||
echo % cat | ||||
|
r6061 | cat a b | ||
|
r5816 | echo | ||
echo % rollback | ||||
hg rollback | ||||
echo % clean update | ||||
hg update --clean | ||||
echo % kwexpand/kwshrink on selected files | ||||
mkdir x | ||||
echo % copy a x/a | ||||
hg copy a x/a | ||||
echo % kwexpand a | ||||
hg --verbose kwexpand a | ||||
echo % kwexpand x/a should abort | ||||
hg --verbose kwexpand x/a | ||||
cd x | ||||
hg --debug commit -m xa -d '3 0' -u 'User Name <user@example.com>' | ||||
echo % cat a | ||||
cat a | ||||
echo % kwshrink a inside directory x | ||||
hg --verbose kwshrink a | ||||
echo % cat a | ||||
cat a | ||||
|
r5855 | cd .. | ||
|
r5816 | |||
echo % kwexpand nonexistent | ||||
|
r6061 | hg kwexpand nonexistent 2>&1 | sed 's/nonexistent:.*/nonexistent:/' | ||
|
r5816 | |||
echo % switch off expansion | ||||
echo % kwshrink with unknown file u | ||||
cp a u | ||||
hg --verbose kwshrink | ||||
echo % cat | ||||
|
r6061 | cat a b | ||
|
r5816 | echo % hg cat | ||
hg cat sym a b | ||||
echo | ||||
rm $HGRCPATH | ||||
echo % cat | ||||
|
r6061 | cat a b | ||
|
r5816 | echo % hg cat | ||
hg cat sym a b | ||||
echo | ||||