##// END OF EJS Templates
convert: warn on superfluous / in paths...
convert: warn on superfluous / in paths shlex is really a bad parser for this line-based format ...

File last commit:

r11678:f5aa20e1 stable
r11680:7fefef3c default
Show More
test-keyword
409 lines | 7.4 KiB | text/plain | TextLexer
Christian Ebert
keyword: add test
r5816 #!/bin/sh
cat <<EOF >> $HGRCPATH
[extensions]
Christian Ebert
tests highlight, keyword: load extensions with "ext ="
r10125 keyword =
mq =
notify =
Christian Ebert
keyword: test recording
r11046 record =
Christian Ebert
tests highlight, keyword: load extensions with "ext ="
r10125 transplant =
Christian Ebert
keyword: test recording
r11046 [ui]
interactive = true
Christian Ebert
test-keyword: run kwdemo before setting up [keyword] files...
r9462 EOF
# demo before [keyword] files are set up
# would succeed without uisetup otherwise
echo % hg kwdemo
hg --quiet kwdemo \
| 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}"
cat <<EOF >> $HGRCPATH
Christian Ebert
keyword: add test
r5816 [keyword]
Christian Ebert
keyword: remove mq commands from restricted list...
r11044 ** =
Christian Ebert
keyword: add test
r5816 b = ignore
[hooks]
commit=
commit.test=cp a hooktest
EOF
Christian Ebert
keyword: safeguards against erroneous behaviour or aborts...
r6051 hg init Test-bndl
cd Test-bndl
Christian Ebert
keyword: add test
r5816
echo % kwshrink should exit silently in empty/invalid repo
hg kwshrink
Patrick Mezard
test-keyword: make it run under Windows...
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/'
Christian Ebert
keyword: add test
r5816 echo 'expand $Id$' > a
echo 'do not process $Id:' >> a
echo 'xxx $' >> a
echo 'ignore $Id$' > b
echo % cat
Patrick Mezard
test-keyword: make it run under Windows...
r6061 cat a b
Christian Ebert
keyword: add test
r5816
Christian Ebert
keyword: make kwfiles -u show untracked files only (like status)...
r9493 echo % no kwfiles
hg kwfiles
echo % untracked candidates
hg -v kwfiles --unknown
Christian Ebert
keyword: add test
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
Thomas Arendsen Hein
Solaris compatibility fixes for test-keyword:...
r5855 hg --debug commit
Christian Ebert
keyword: add test
r5816 echo % status
hg status
echo % commit
Martin Geisler
tests: removed redundant "-d '0 0'" from test scripts...
r8167 hg --debug commit -mabsym -u 'User Name <user@example.com>'
Christian Ebert
keyword: add test
r5816 echo % status
hg status
echo % identify
Alexis S. L. Carvalho
keyword: remove "identify" and "remove" from nokwcommands...
r6157 hg debugrebuildstate
Christian Ebert
keyword: add test
r5816 hg --quiet identify
echo % cat
Patrick Mezard
test-keyword: make it run under Windows...
r6061 cat a b
Christian Ebert
keyword: add test
r5816 echo % hg cat
hg cat sym a b
echo
echo % diff a hooktest
diff a hooktest
echo % removing commit hook from config
Mads Kiilerich
Tests with spaces in paths...
r10775 sed -e '/\[hooks\]/,$ d' "$HGRCPATH" > $HGRCPATH.nohook
mv "$HGRCPATH".nohook "$HGRCPATH"
Christian Ebert
keyword: add test
r5816 rm hooktest
Christian Ebert
keyword: safeguards against erroneous behaviour or aborts...
r6051 echo % bundle
hg bundle --base null ../kw.hg
cd ..
hg init Test
cd Test
Christian Ebert
keyword: add test for patch.diff monkey
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
Christian Ebert
keyword: safeguards against erroneous behaviour or aborts...
r6051 echo % pull from bundle
Christian Ebert
notify: mime-encode messages...
r7116 hg pull -u ../kw.hg 2>&1 | sed -e '/^Content-Type:/,/^diffs (/ d'
Christian Ebert
keyword: add test for patch.diff monkey
r6116
echo % remove notify config
Mads Kiilerich
Tests with spaces in paths...
r10775 sed -e '/\[hooks\]/,$ d' "$HGRCPATH" > $HGRCPATH.nonotify
mv "$HGRCPATH".nonotify "$HGRCPATH"
Christian Ebert
keyword: safeguards against erroneous behaviour or aborts...
r6051
Christian Ebert
keyword: add test
r5816 echo % touch
touch a b
echo % status
hg status
rm sym a b
echo % update
Matt Mackall
merge: allow merging going backwards...
r8742 hg update -C
Christian Ebert
keyword: add test
r5816 echo % cat
Patrick Mezard
test-keyword: make it run under Windows...
r6061 cat a b
Christian Ebert
keyword: add test
r5816
Christian Ebert
keyword: test that expansion is done filewise...
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
Christian Ebert
keyword: add very simple mq test
r5894
Christian Ebert
keyword: force dirstate normal when all changes in a file are recorded...
r11252 echo % record chunk
Christian Ebert
keyword: cleanup test and make it portable...
r11065 python -c \
'l=open("a").readlines();l.insert(1,"foo\n");l.append("bar\n");open("a","w").writelines(l);'
Christian Ebert
keyword: test recording
r11046 hg record -d '1 10' -m rectest<<EOF
y
y
n
EOF
echo
hg identify
hg status
echo % cat modified file
cat a
hg diff | grep -v 'b/a'
hg rollback
Christian Ebert
keyword: force dirstate normal when all changes in a file are recorded...
r11252
echo % record file
echo foo > msg
# do not use "hg record -m" here!
hg record -l msg -d '1 11'<<EOF
y
y
y
EOF
echo % a should be clean
hg status -A a
rm msg
hg rollback
Christian Ebert
keyword: test recording
r11046 hg update -C
Christian Ebert
keyword: replace deprecated mq commands in test
r10931 echo % init --mq
hg init --mq
Christian Ebert
keyword: add very simple mq test
r5894 echo % qimport
hg qimport -r tip -n mqtest.diff
Christian Ebert
keyword: replace deprecated mq commands in test
r10931 echo % commit --mq
hg commit --mq -m mqtest
Christian Ebert
keyword: add very simple mq test
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
Christian Ebert
keyword: remove mq commands from restricted list...
r11044 echo % hg cat
hg cat c
echo % keyword should not be expanded in filelog
hg --config 'extensions.keyword=!' cat c
Christian Ebert
keyword: add very simple mq test
r5894 echo % qpop and move on
hg qpop
Christian Ebert
keyword: test that expansion is done filewise...
r5856
Christian Ebert
keyword: add test
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
Matt Mackall
tests: remove some unnecessary sleeps
r6328 echo % touch copied c
Christian Ebert
keyword: add test
r5816 touch c
echo % status
hg status
echo % kwfiles
hg kwfiles
Christian Ebert
keyword: make kwfiles -u show untracked files only (like status)...
r9493 echo % ignored files
hg -v kwfiles --ignore
echo % all files
hg kwfiles --all
Christian Ebert
keyword: add test
r5816
echo % diff --rev
Patrick Mezard
test-keyword: make it run under Windows...
r6061 hg diff --rev 1 | grep -v 'b/c'
Christian Ebert
keyword: add test
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
Patrick Mezard
test-keyword: make it run under Windows...
r6061 cat a b
Christian Ebert
keyword: add test
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
Thomas Arendsen Hein
Solaris compatibility fixes for test-keyword:...
r5855 hg commit
Christian Ebert
keyword: add test
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
Christian Ebert
keyword: add verify to nokwcommands after refactor in e79a8f36c2a5...
r6867 echo % verify
hg verify
Christian Ebert
keyword: add test
r5816
echo % cat
Patrick Mezard
test-keyword: make it run under Windows...
r6061 cat a b
Christian Ebert
keyword: add test
r5816 echo % hg cat
hg cat sym a b
echo
Christian Ebert
keyword: disable expansion for annotate...
r6667 echo % annotate
hg annotate a
Christian Ebert
keyword: add test
r5816
echo % remove
Alexis S. L. Carvalho
keyword: remove "identify" and "remove" from nokwcommands...
r6157 hg debugrebuildstate
Christian Ebert
keyword: add test
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 ..
Patrick Mezard
test-keyword: make it run under Windows...
r6061 hg clone -r1 Test Test-a
Christian Ebert
keyword: add test
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/'
Will Maier
Don't use the -i option with sed...
r5839 sed -e 's/Id.*/& rejecttest/' a > a.new
mv a.new a
Christian Ebert
keyword: add test
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
Patrick Mezard
test-keyword: make it run under Windows...
r6061 cat a b
Christian Ebert
keyword: add test
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
Thomas Arendsen Hein
Solaris compatibility fixes for test-keyword:...
r5855 cd ..
Christian Ebert
keyword: add test
r5816
echo % kwexpand nonexistent
Patrick Mezard
test-keyword: make it run under Windows...
r6061 hg kwexpand nonexistent 2>&1 | sed 's/nonexistent:.*/nonexistent:/'
Christian Ebert
keyword: add test
r5816
Christian Ebert
keyword: thorough hgweb testing...
r6927 echo % hg serve
hg serve -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
cat hg.pid >> $DAEMON_PIDS
echo % expansion
echo % hgweb file
("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/tip/a/?style=raw')
echo % no expansion
echo % hgweb annotate
("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/annotate/tip/a/?style=raw')
echo % hgweb changeset
("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/rev/tip/?style=raw')
echo % hgweb filediff
("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/diff/bb948857c743/a?style=raw')
echo % errors encountered
cat errors.log
Christian Ebert
keyword: avoid additional conflicts during merge/resolve...
r6933 echo % merge/resolve
echo '$Id$' > m
hg add m
hg commit -m 4kw
echo foo >> m
hg commit -m 5foo
echo % simplemerge
hg update 4
echo foo >> m
hg commit -m 6foo
hg merge
hg commit -m simplemerge
cat m
echo % conflict
hg update 4
echo bar >> m
hg commit -m 8bar
hg merge
echo % keyword stays outside conflict zone
cat m
echo % resolve to local
Matt Mackall
resolve: require -a switch to resolve all files...
r7527 HGMERGE=internal:local hg resolve -a
Christian Ebert
keyword: avoid additional conflicts during merge/resolve...
r6933 hg commit -m localresolve
cat m
Christian Ebert
keyword: go into restricted mode when transplanting...
r10117 echo % test restricted mode with transplant -b
hg update 6
hg branch foo
mv a a.bak
echo foobranch > a
cat a.bak >> a
rm a.bak
hg commit -m 9foobranch
hg update default
hg -y transplant -b foo tip
echo % no expansion in changeset
hg tip -p
echo % expansion in file
head -n 2 a
hg -q rollback
hg -q update -C
Christian Ebert
keyword: add test
r5816 echo % switch off expansion
echo % kwshrink with unknown file u
cp a u
hg --verbose kwshrink
echo % cat
Patrick Mezard
test-keyword: make it run under Windows...
r6061 cat a b
Christian Ebert
keyword: add test
r5816 echo % hg cat
hg cat sym a b
echo
Mads Kiilerich
Tests with spaces in paths...
r10775 rm "$HGRCPATH"
Christian Ebert
keyword: add test
r5816 echo % cat
Patrick Mezard
test-keyword: make it run under Windows...
r6061 cat a b
Christian Ebert
keyword: add test
r5816 echo % hg cat
hg cat sym a b
echo