Mercurial > public > mercurial-scm > hg-stable
diff tests/test-keyword @ 5816:3bd22fd3b750
keyword: add test
author | Christian Ebert <blacktrash@gmx.net> |
---|---|
date | Fri, 04 Jan 2008 18:22:39 +0100 |
parents | |
children | 59fba5caa94b |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-keyword Fri Jan 04 18:22:39 2008 +0100 @@ -0,0 +1,229 @@ +#!/bin/sh + +cat <<EOF >> $HGRCPATH +[extensions] +hgext.keyword = +[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}" + +hg init Test +cd Test + +echo % kwshrink should exit silently in empty/invalid repo +hg kwshrink + +echo 'expand $Id$' > a +echo 'do not process $Id:' >> a +echo 'xxx $' >> a +echo 'ignore $Id$' > b +ln -s a sym +echo % cat +cat sym a b + +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 +HGEDITOR=false hg --debug commit +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 +hg --quiet identify +echo % cat +cat sym 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 % touch +touch a b +echo % status +hg status + +rm sym a b +echo % update +hg update +echo % cat +cat sym a b + +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 +hg diff --rev 0 | 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 <<EOF >>$HGRCPATH +[keywordmaps] +Id = {file} {node|short} {date|rfc822date} {author|user} +Xinfo = {author}: {desc} +EOF + +echo % cat +cat sym a b +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 +HGEDITOR=false hg commit +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 +cat sym a b +echo % hg cat +hg cat sym a b +echo + +echo % remove +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 .. +hg clone -r0 Test Test-a +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/' + +sed -i.bak -e 's/Id.*/& rejecttest/' a +rm a.bak +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 +cat sym 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 <user@example.com>' +echo % cat a +cat a +echo % kwshrink a inside directory x +hg --verbose kwshrink a +echo % cat a +cat a +cd - > /dev/null 2>&1 + +echo % kwexpand nonexistent +hg kwexpand nonexistent + +echo % switch off expansion +echo % kwshrink with unknown file u +cp a u +hg --verbose kwshrink +echo % cat +cat sym a b +echo % hg cat +hg cat sym a b +echo +rm $HGRCPATH +echo % cat +cat sym a b +echo % hg cat +hg cat sym a b +echo