Mercurial > hg
view tests/test-keyword @ 6179:36ab165abbe2
patch: fix iterhunks() with trailing binary file removal
Like some renames or copy operations, binary file removal does not generate any
"file" or "hunk" action, but was not tagged as such and let iterhunk() assume
no hunk was applied for the deleted file.
author | Patrick Mezard <pmezard@gmail.com> |
---|---|
date | Thu, 28 Feb 2008 00:07:37 +0100 |
parents | 09b00faa8670 |
children | 991f7518c3f3 |
line wrap: on
line source
#!/bin/sh cat <<EOF >> $HGRCPATH [extensions] hgext.keyword = hgext.mq = hgext.notify = [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-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 % 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 -d '0 0' -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 '/^Date:/,/^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 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 % qinit -c hg qinit -c echo % qimport hg qimport -r tip -n mqtest.diff echo % qcommit hg qcommit -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 % 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 after 1 second sleep 1 touch c echo % status hg status echo % kwfiles hg kwfiles 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 % cat cat a b echo % hg cat hg cat sym a b echo 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 to test incoming cd .. 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 % 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