tests/test-keyword
changeset 782 09bae16e7a6d
parent 781 c7a471b49819
child 783 8a23ff764a02
child 785 77154fe0e3a5
--- a/tests/test-keyword	Sat Aug 14 09:47:41 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,418 +0,0 @@
-#!/bin/sh
-
-cat <<EOF >> $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 <<EOF >> $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 <user@example.com>'
-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 <<EOF >> $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 <user@example.com>'
-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<<EOF
-y
-y
-n
-EOF
-echo
-hg identify
-hg status
-echo % cat modified file
-cat a
-hg diff | grep -v 'b/a'
-hg rollback
-
-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
-hg update -C
-
-echo % init --mq
-hg init --mq
-echo % qimport
-hg qimport -r tip -n mqtest.diff
-echo % commit --mq
-hg commit --mq -m mqtest
-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 % hg cat
-hg cat c
-echo % keyword should not be expanded in filelog
-hg --config 'extensions.keyword=!' cat c
-echo % qpop and move on
-hg qpop
-
-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
-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 <<EOF >>$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 <<EOF >> 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 <user@example.com>'
-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 <<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 -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 <user@example.com>'
-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 <user@example.com>'
-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