diff -r 4c37b26c549c -r 8a23ff764a02 tests/test-keyword --- a/tests/test-keyword Fri May 14 10:01:09 2010 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,418 +0,0 @@ -#!/bin/sh - -cat <> $HGRCPATH -[extensions] -keyword = -mq = -notify = -record = -transplant = -[ui] -interactive = true -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 <> $HGRCPATH -[keyword] -** = -b = ignore -[hooks] -commit= -commit.test=cp a hooktest -EOF - -hg init Test-bndl -cd Test-bndl - -echo % kwshrink should exit silently in empty/invalid repo -hg kwshrink - -# 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/' - -echo 'expand $Id$' > a -echo 'do not process $Id:' >> a -echo 'xxx $' >> a -echo 'ignore $Id$' > b -echo % cat -cat a b - -echo % no kwfiles -hg kwfiles -echo % untracked candidates -hg -v kwfiles --unknown - -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 -hg --debug commit -echo % status -hg status - -echo % commit -hg --debug commit -mabsym -u 'User Name ' -echo % status -hg status -echo % identify -hg debugrebuildstate -hg --quiet identify -echo % cat -cat a b -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 - -echo % bundle -hg bundle --base null ../kw.hg - -cd .. -hg init Test -cd Test - -echo % notify on pull to check whether keywords stay as is in email -echo % ie. if patch.diff wrapper acts as it should - -cat <> $HGRCPATH -[hooks] -incoming.notify = python:hgext.notify.hook -[notify] -sources = pull -diffstat = False -[reposubs] -* = Test -EOF - -echo % pull from bundle -hg pull -u ../kw.hg 2>&1 | sed -e '/^Content-Type:/,/^diffs (/ d' - -echo % remove notify config -sed -e '/\[hooks\]/,$ d' "$HGRCPATH" > $HGRCPATH.nonotify -mv "$HGRCPATH".nonotify "$HGRCPATH" - -echo % touch -touch a b -echo % status -hg status - -rm sym a b -echo % update -hg update -C -echo % cat -cat a b - -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 ' -echo % force expansion -hg -v kwexpand -echo % compare changenodes in a c -cat a c - -echo % 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< msg -# do not use "hg record -m" here! -hg record -l msg -d '1 11'<' -echo % cat a c -cat a c -echo % touch copied c -touch c -echo % status -hg status - -echo % kwfiles -hg kwfiles -echo % ignored files -hg -v kwfiles --ignore -echo % all files -hg kwfiles --all - -echo % diff --rev -hg diff --rev 1 | grep -v 'b/c' - -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 <>$HGRCPATH -[keywordmaps] -Id = {file} {node|short} {date|rfc822date} {author|user} -Xinfo = {author}: {desc} -EOF - -echo % cat -cat a b -echo % hg cat -hg cat sym a b - -echo -echo '$Xinfo$' >> a -cat <> log -firstline -secondline -EOF - -echo % interrupted commit should not change state -hg commit -echo % status -hg status - -echo % commit -hg --debug commit -l log -d '2 0' -u 'User Name ' -rm log -echo % status -hg status -echo % verify -hg verify - -echo % cat -cat a b -echo % hg cat -hg cat sym a b -echo -echo % annotate -hg annotate a - -echo % remove -hg debugrebuildstate -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 -cd .. - -echo % expansion in dest -hg --quiet clone Test globalconf -cat globalconf/a -echo % no expansion in dest -hg --quiet --config 'keyword.**=ignore' clone Test localconf -cat localconf/a - -echo % clone to test incoming -hg clone -r1 Test Test-a -cd Test-a -cat <> .hg/hgrc -[paths] -default = ../Test -EOF -echo % incoming -# remove path to temp dir -hg incoming | sed -e 's/^\(comparing with \).*\(test-keyword.*\)/\1\2/' - -sed -e 's/Id.*/& rejecttest/' a > a.new -mv a.new a -echo % commit rejecttest -hg --debug commit -m'rejects?' -d '3 0' -u 'User Name ' -echo % export -hg export -o ../rejecttest.diff tip - -cd ../Test -echo % import -hg import ../rejecttest.diff -echo % cat -cat a b -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 ' -echo % cat a -cat a -echo % kwshrink a inside directory x -hg --verbose kwshrink a -echo % cat a -cat a -cd .. - -echo % kwexpand nonexistent -hg kwexpand nonexistent 2>&1 | sed 's/nonexistent:.*/nonexistent:/' - -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 - -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 -HGMERGE=internal:local hg resolve -a -hg commit -m localresolve -cat m - -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 - -echo % switch off expansion -echo % kwshrink with unknown file u -cp a u -hg --verbose kwshrink -echo % cat -cat a b -echo % hg cat -hg cat sym a b -echo -rm "$HGRCPATH" -echo % cat -cat a b -echo % hg cat -hg cat sym a b -echo