##// END OF EJS Templates
mq: catch attempt to qpush to an earlier patch (issue2587)...
mq: catch attempt to qpush to an earlier patch (issue2587) We can't assume that all pushable patches early in the series have already been applied. If a hg qselect is done while you already have patches applied, some patches with guards may now be pushable, even though they come earlier in the series. So instead of checking only applied patches, explicitly check where we are in the series against the position of the patch we want to qpush to.

File last commit:

r13207:1775382f default
r13369:69238d0c stable
Show More
test-hook.t
483 lines | 16.9 KiB | text/troff | Tads3Lexer
Nicolas Dumazet
tests: unify test-hook
r11793 $ cp "$TESTDIR"/printenv.py .
Matt Mackall
tests: fix a bunch of pointless #s in unified tests
r12328 commit hooks can see env vars
Nicolas Dumazet
tests: unify test-hook
r11793
$ hg init a
$ cd a
$ echo "[hooks]" > .hg/hgrc
$ echo 'commit = unset HG_LOCAL HG_TAG; python ../printenv.py commit' >> .hg/hgrc
$ echo 'commit.b = unset HG_LOCAL HG_TAG; python ../printenv.py commit.b' >> .hg/hgrc
$ echo 'precommit = unset HG_LOCAL HG_NODE HG_TAG; python ../printenv.py precommit' >> .hg/hgrc
$ echo 'pretxncommit = unset HG_LOCAL HG_TAG; python ../printenv.py pretxncommit' >> .hg/hgrc
$ echo 'pretxncommit.tip = hg -q tip' >> .hg/hgrc
$ echo 'pre-identify = python ../printenv.py pre-identify 1' >> .hg/hgrc
$ echo 'pre-cat = python ../printenv.py pre-cat' >> .hg/hgrc
$ echo 'post-cat = python ../printenv.py post-cat' >> .hg/hgrc
$ echo a > a
$ hg add a
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg commit -m a
Nicolas Dumazet
tests: unify test-hook
r11793 precommit hook: HG_PARENT1=0000000000000000000000000000000000000000
Mads Kiilerich
tests: remove redundant globs...
r12640 pretxncommit hook: HG_NODE=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b HG_PARENT1=0000000000000000000000000000000000000000 HG_PENDING=$TESTTMP/a
Martin Geisler
tests: remove unneeded -d flags...
r12156 0:cb9a9f314b8b
commit hook: HG_NODE=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b HG_PARENT1=0000000000000000000000000000000000000000
commit.b hook: HG_NODE=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b HG_PARENT1=0000000000000000000000000000000000000000
Nicolas Dumazet
tests: unify test-hook
r11793
$ hg clone . ../b
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd ../b
Matt Mackall
tests: fix a bunch of pointless #s in unified tests
r12328 changegroup hooks can see env vars
Nicolas Dumazet
tests: unify test-hook
r11793
$ echo '[hooks]' > .hg/hgrc
$ echo 'prechangegroup = python ../printenv.py prechangegroup' >> .hg/hgrc
$ echo 'changegroup = python ../printenv.py changegroup' >> .hg/hgrc
$ echo 'incoming = python ../printenv.py incoming' >> .hg/hgrc
Matt Mackall
tests: fix a bunch of pointless #s in unified tests
r12328 pretxncommit and commit hooks can see both parents of merge
Nicolas Dumazet
tests: unify test-hook
r11793
$ cd ../a
$ echo b >> a
$ hg commit -m a1 -d "1 0"
Martin Geisler
tests: remove unneeded -d flags...
r12156 precommit hook: HG_PARENT1=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b
Mads Kiilerich
tests: remove redundant globs...
r12640 pretxncommit hook: HG_NODE=ab228980c14deea8b9555d91c9581127383e40fd HG_PARENT1=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b HG_PENDING=$TESTTMP/a
Martin Geisler
tests: remove unneeded -d flags...
r12156 1:ab228980c14d
commit hook: HG_NODE=ab228980c14deea8b9555d91c9581127383e40fd HG_PARENT1=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b
commit.b hook: HG_NODE=ab228980c14deea8b9555d91c9581127383e40fd HG_PARENT1=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b
Nicolas Dumazet
tests: unify test-hook
r11793 $ hg update -C 0
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo b > b
$ hg add b
$ hg commit -m b -d '1 0'
Martin Geisler
tests: remove unneeded -d flags...
r12156 precommit hook: HG_PARENT1=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b
Mads Kiilerich
tests: remove redundant globs...
r12640 pretxncommit hook: HG_NODE=ee9deb46ab31e4cc3310f3cf0c3d668e4d8fffc2 HG_PARENT1=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b HG_PENDING=$TESTTMP/a
Martin Geisler
tests: remove unneeded -d flags...
r12156 2:ee9deb46ab31
commit hook: HG_NODE=ee9deb46ab31e4cc3310f3cf0c3d668e4d8fffc2 HG_PARENT1=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b
commit.b hook: HG_NODE=ee9deb46ab31e4cc3310f3cf0c3d668e4d8fffc2 HG_PARENT1=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b
Nicolas Dumazet
tests: unify test-hook
r11793 created new head
$ hg merge 1
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg commit -m merge -d '2 0'
Martin Geisler
tests: remove unneeded -d flags...
r12156 precommit hook: HG_PARENT1=ee9deb46ab31e4cc3310f3cf0c3d668e4d8fffc2 HG_PARENT2=ab228980c14deea8b9555d91c9581127383e40fd
Mads Kiilerich
tests: remove redundant globs...
r12640 pretxncommit hook: HG_NODE=07f3376c1e655977439df2a814e3cc14b27abac2 HG_PARENT1=ee9deb46ab31e4cc3310f3cf0c3d668e4d8fffc2 HG_PARENT2=ab228980c14deea8b9555d91c9581127383e40fd HG_PENDING=$TESTTMP/a
Martin Geisler
tests: remove unneeded -d flags...
r12156 3:07f3376c1e65
commit hook: HG_NODE=07f3376c1e655977439df2a814e3cc14b27abac2 HG_PARENT1=ee9deb46ab31e4cc3310f3cf0c3d668e4d8fffc2 HG_PARENT2=ab228980c14deea8b9555d91c9581127383e40fd
commit.b hook: HG_NODE=07f3376c1e655977439df2a814e3cc14b27abac2 HG_PARENT1=ee9deb46ab31e4cc3310f3cf0c3d668e4d8fffc2 HG_PARENT2=ab228980c14deea8b9555d91c9581127383e40fd
Nicolas Dumazet
tests: unify test-hook
r11793
Matt Mackall
tests: fix a bunch of pointless #s in unified tests
r12328 test generic hooks
Nicolas Dumazet
tests: unify test-hook
r11793
$ hg id
pre-identify hook: HG_ARGS=id HG_OPTS={'tags': None, 'rev': '', 'num': None, 'branch': None, 'id': None} HG_PATS=[]
warning: pre-identify hook exited with status 1
Matt Mackall
tests: add exit codes to unified tests
r12316 [1]
Nicolas Dumazet
tests: unify test-hook
r11793 $ hg cat b
pre-cat hook: HG_ARGS=cat b HG_OPTS={'rev': '', 'decode': None, 'exclude': [], 'output': '', 'include': []} HG_PATS=['b']
post-cat hook: HG_ARGS=cat b HG_OPTS={'rev': '', 'decode': None, 'exclude': [], 'output': '', 'include': []} HG_PATS=['b'] HG_RESULT=0
b
$ cd ../b
$ hg pull ../a
prechangegroup hook: HG_SOURCE=pull HG_URL=file:
Martin Geisler
tests: remove unneeded -d flags...
r12156 changegroup hook: HG_NODE=ab228980c14deea8b9555d91c9581127383e40fd HG_SOURCE=pull HG_URL=file:
incoming hook: HG_NODE=ab228980c14deea8b9555d91c9581127383e40fd HG_SOURCE=pull HG_URL=file:
incoming hook: HG_NODE=ee9deb46ab31e4cc3310f3cf0c3d668e4d8fffc2 HG_SOURCE=pull HG_URL=file:
incoming hook: HG_NODE=07f3376c1e655977439df2a814e3cc14b27abac2 HG_SOURCE=pull HG_URL=file:
Nicolas Dumazet
tests: unify test-hook
r11793 pulling from ../a
searching for changes
adding changesets
adding manifests
adding file changes
added 3 changesets with 2 changes to 2 files
(run 'hg update' to get a working copy)
Matt Mackall
tests: fix a bunch of pointless #s in unified tests
r12328 tag hooks can see env vars
Nicolas Dumazet
tests: unify test-hook
r11793
$ cd ../a
$ echo 'pretag = python ../printenv.py pretag' >> .hg/hgrc
$ echo 'tag = unset HG_PARENT1 HG_PARENT2; python ../printenv.py tag' >> .hg/hgrc
$ hg tag -d '3 0' a
Martin Geisler
tests: remove unneeded -d flags...
r12156 pretag hook: HG_LOCAL=0 HG_NODE=07f3376c1e655977439df2a814e3cc14b27abac2 HG_TAG=a
precommit hook: HG_PARENT1=07f3376c1e655977439df2a814e3cc14b27abac2
Mads Kiilerich
tests: remove redundant globs...
r12640 pretxncommit hook: HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_PARENT1=07f3376c1e655977439df2a814e3cc14b27abac2 HG_PENDING=$TESTTMP/a
Martin Geisler
tests: remove unneeded -d flags...
r12156 4:539e4b31b6dc
commit hook: HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_PARENT1=07f3376c1e655977439df2a814e3cc14b27abac2
commit.b hook: HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_PARENT1=07f3376c1e655977439df2a814e3cc14b27abac2
tag hook: HG_LOCAL=0 HG_NODE=07f3376c1e655977439df2a814e3cc14b27abac2 HG_TAG=a
Nicolas Dumazet
tests: unify test-hook
r11793 $ hg tag -l la
Martin Geisler
tests: remove unneeded -d flags...
r12156 pretag hook: HG_LOCAL=1 HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_TAG=la
tag hook: HG_LOCAL=1 HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_TAG=la
Nicolas Dumazet
tests: unify test-hook
r11793
Matt Mackall
tests: fix a bunch of pointless #s in unified tests
r12328 pretag hook can forbid tagging
Nicolas Dumazet
tests: unify test-hook
r11793
$ echo 'pretag.forbid = python ../printenv.py pretag.forbid 1' >> .hg/hgrc
$ hg tag -d '4 0' fa
Martin Geisler
tests: remove unneeded -d flags...
r12156 pretag hook: HG_LOCAL=0 HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_TAG=fa
pretag.forbid hook: HG_LOCAL=0 HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_TAG=fa
Nicolas Dumazet
tests: unify test-hook
r11793 abort: pretag.forbid hook exited with status 1
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-hook
r11793 $ hg tag -l fla
Martin Geisler
tests: remove unneeded -d flags...
r12156 pretag hook: HG_LOCAL=1 HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_TAG=fla
pretag.forbid hook: HG_LOCAL=1 HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_TAG=fla
Nicolas Dumazet
tests: unify test-hook
r11793 abort: pretag.forbid hook exited with status 1
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-hook
r11793
Matt Mackall
tests: fix a bunch of pointless #s in unified tests
r12328 pretxncommit hook can see changeset, can roll back txn, changeset no
more there after
Nicolas Dumazet
tests: unify test-hook
r11793
$ echo 'pretxncommit.forbid0 = hg tip -q' >> .hg/hgrc
$ echo 'pretxncommit.forbid1 = python ../printenv.py pretxncommit.forbid 1' >> .hg/hgrc
$ echo z > z
$ hg add z
$ hg -q tip
Martin Geisler
tests: remove unneeded -d flags...
r12156 4:539e4b31b6dc
Nicolas Dumazet
tests: unify test-hook
r11793 $ hg commit -m 'fail' -d '4 0'
Martin Geisler
tests: remove unneeded -d flags...
r12156 precommit hook: HG_PARENT1=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10
Mads Kiilerich
tests: remove redundant globs...
r12640 pretxncommit hook: HG_NODE=6f611f8018c10e827fee6bd2bc807f937e761567 HG_PARENT1=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_PENDING=$TESTTMP/a
Martin Geisler
tests: remove unneeded -d flags...
r12156 5:6f611f8018c1
5:6f611f8018c1
Mads Kiilerich
tests: remove redundant globs...
r12640 pretxncommit.forbid hook: HG_NODE=6f611f8018c10e827fee6bd2bc807f937e761567 HG_PARENT1=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_PENDING=$TESTTMP/a
Nicolas Dumazet
tests: unify test-hook
r11793 transaction abort!
rollback completed
abort: pretxncommit.forbid1 hook exited with status 1
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-hook
r11793 $ hg -q tip
Martin Geisler
tests: remove unneeded -d flags...
r12156 4:539e4b31b6dc
Nicolas Dumazet
tests: unify test-hook
r11793
Matt Mackall
tests: fix a bunch of pointless #s in unified tests
r12328 precommit hook can prevent commit
Nicolas Dumazet
tests: unify test-hook
r11793
$ echo 'precommit.forbid = python ../printenv.py precommit.forbid 1' >> .hg/hgrc
$ hg commit -m 'fail' -d '4 0'
Martin Geisler
tests: remove unneeded -d flags...
r12156 precommit hook: HG_PARENT1=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10
precommit.forbid hook: HG_PARENT1=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10
Nicolas Dumazet
tests: unify test-hook
r11793 abort: precommit.forbid hook exited with status 1
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-hook
r11793 $ hg -q tip
Martin Geisler
tests: remove unneeded -d flags...
r12156 4:539e4b31b6dc
Nicolas Dumazet
tests: unify test-hook
r11793
Matt Mackall
tests: fix a bunch of pointless #s in unified tests
r12328 preupdate hook can prevent update
Nicolas Dumazet
tests: unify test-hook
r11793
$ echo 'preupdate = python ../printenv.py preupdate' >> .hg/hgrc
$ hg update 1
Martin Geisler
tests: remove unneeded -d flags...
r12156 preupdate hook: HG_PARENT1=ab228980c14d
Nicolas Dumazet
tests: unify test-hook
r11793 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
Matt Mackall
tests: fix a bunch of pointless #s in unified tests
r12328 update hook
Nicolas Dumazet
tests: unify test-hook
r11793
$ echo 'update = python ../printenv.py update' >> .hg/hgrc
$ hg update
Martin Geisler
tests: remove unneeded -d flags...
r12156 preupdate hook: HG_PARENT1=539e4b31b6dc
update hook: HG_ERROR=0 HG_PARENT1=539e4b31b6dc
Nicolas Dumazet
tests: unify test-hook
r11793 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
Matt Mackall
tests: fix a bunch of pointless #s in unified tests
r12328 prechangegroup hook can prevent incoming changes
Nicolas Dumazet
tests: unify test-hook
r11793
$ cd ../b
$ hg -q tip
Martin Geisler
tests: remove unneeded -d flags...
r12156 3:07f3376c1e65
Nicolas Dumazet
tests: unify test-hook
r11793 $ echo '[hooks]' > .hg/hgrc
$ echo 'prechangegroup.forbid = python ../printenv.py prechangegroup.forbid 1' >> .hg/hgrc
$ hg pull ../a
prechangegroup.forbid hook: HG_SOURCE=pull HG_URL=file:
pulling from ../a
searching for changes
abort: prechangegroup.forbid hook exited with status 1
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-hook
r11793
Matt Mackall
tests: fix a bunch of pointless #s in unified tests
r12328 pretxnchangegroup hook can see incoming changes, can roll back txn,
incoming changes no longer there after
Nicolas Dumazet
tests: unify test-hook
r11793
$ echo '[hooks]' > .hg/hgrc
$ echo 'pretxnchangegroup.forbid0 = hg tip -q' >> .hg/hgrc
$ echo 'pretxnchangegroup.forbid1 = python ../printenv.py pretxnchangegroup.forbid 1' >> .hg/hgrc
$ hg pull ../a
Martin Geisler
tests: remove unneeded -d flags...
r12156 4:539e4b31b6dc
Mads Kiilerich
tests: remove redundant globs...
r12640 pretxnchangegroup.forbid hook: HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_PENDING=$TESTTMP/b HG_SOURCE=pull HG_URL=file:
Nicolas Dumazet
tests: unify test-hook
r11793 pulling from ../a
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
transaction abort!
rollback completed
abort: pretxnchangegroup.forbid1 hook exited with status 1
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-hook
r11793 $ hg -q tip
Martin Geisler
tests: remove unneeded -d flags...
r12156 3:07f3376c1e65
Nicolas Dumazet
tests: unify test-hook
r11793
Matt Mackall
tests: fix a bunch of pointless #s in unified tests
r12328 outgoing hooks can see env vars
Nicolas Dumazet
tests: unify test-hook
r11793
$ rm .hg/hgrc
$ echo '[hooks]' > ../a/.hg/hgrc
$ echo 'preoutgoing = python ../printenv.py preoutgoing' >> ../a/.hg/hgrc
$ echo 'outgoing = python ../printenv.py outgoing' >> ../a/.hg/hgrc
$ hg pull ../a
preoutgoing hook: HG_SOURCE=pull
Martin Geisler
tests: remove unneeded -d flags...
r12156 outgoing hook: HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_SOURCE=pull
Nicolas Dumazet
tests: unify test-hook
r11793 pulling from ../a
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
(run 'hg update' to get a working copy)
$ hg rollback
rolling back to revision 3 (undo pull)
Matt Mackall
tests: fix a bunch of pointless #s in unified tests
r12328 preoutgoing hook can prevent outgoing changes
Nicolas Dumazet
tests: unify test-hook
r11793
$ echo 'preoutgoing.forbid = python ../printenv.py preoutgoing.forbid 1' >> ../a/.hg/hgrc
$ hg pull ../a
preoutgoing hook: HG_SOURCE=pull
preoutgoing.forbid hook: HG_SOURCE=pull
pulling from ../a
searching for changes
abort: preoutgoing.forbid hook exited with status 1
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-hook
r11793
Matt Mackall
tests: fix a bunch of pointless #s in unified tests
r12328 outgoing hooks work for local clones
Nicolas Dumazet
tests: unify test-hook
r11793
$ cd ..
$ echo '[hooks]' > a/.hg/hgrc
$ echo 'preoutgoing = python ../printenv.py preoutgoing' >> a/.hg/hgrc
$ echo 'outgoing = python ../printenv.py outgoing' >> a/.hg/hgrc
$ hg clone a c
preoutgoing hook: HG_SOURCE=clone
outgoing hook: HG_NODE=0000000000000000000000000000000000000000 HG_SOURCE=clone
updating to branch default
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm -rf c
Matt Mackall
tests: fix a bunch of pointless #s in unified tests
r12328 preoutgoing hook can prevent outgoing changes for local clones
Nicolas Dumazet
tests: unify test-hook
r11793
$ echo 'preoutgoing.forbid = python ../printenv.py preoutgoing.forbid 1' >> a/.hg/hgrc
$ hg clone a zzz
preoutgoing hook: HG_SOURCE=clone
preoutgoing.forbid hook: HG_SOURCE=clone
abort: preoutgoing.forbid hook exited with status 1
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-hook
r11793 $ cd b
$ cat > hooktests.py <<EOF
> from mercurial import util
>
> uncallable = 0
>
> def printargs(args):
> args.pop('ui', None)
> args.pop('repo', None)
> a = list(args.items())
> a.sort()
> print 'hook args:'
> for k, v in a:
> print ' ', k, v
>
> def passhook(**args):
> printargs(args)
>
> def failhook(**args):
> printargs(args)
> return True
>
> class LocalException(Exception):
> pass
>
> def raisehook(**args):
> raise LocalException('exception from hook')
>
> def aborthook(**args):
> raise util.Abort('raise abort from hook')
>
> def brokenhook(**args):
> return 1 + {}
>
> class container:
> unreachable = 1
> EOF
Matt Mackall
tests: fix a bunch of pointless #s in unified tests
r12328 test python hooks
Nicolas Dumazet
tests: unify test-hook
r11793
$ PYTHONPATH="`pwd`:$PYTHONPATH"
$ export PYTHONPATH
$ echo '[hooks]' > ../a/.hg/hgrc
$ echo 'preoutgoing.broken = python:hooktests.brokenhook' >> ../a/.hg/hgrc
$ hg pull ../a 2>&1 | grep 'raised an exception'
error: preoutgoing.broken hook raised an exception: unsupported operand type(s) for +: 'int' and 'dict'
$ echo '[hooks]' > ../a/.hg/hgrc
$ echo 'preoutgoing.raise = python:hooktests.raisehook' >> ../a/.hg/hgrc
$ hg pull ../a 2>&1 | grep 'raised an exception'
error: preoutgoing.raise hook raised an exception: exception from hook
$ echo '[hooks]' > ../a/.hg/hgrc
$ echo 'preoutgoing.abort = python:hooktests.aborthook' >> ../a/.hg/hgrc
$ hg pull ../a
pulling from ../a
searching for changes
error: preoutgoing.abort hook failed: raise abort from hook
abort: raise abort from hook
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-hook
r11793
$ echo '[hooks]' > ../a/.hg/hgrc
$ echo 'preoutgoing.fail = python:hooktests.failhook' >> ../a/.hg/hgrc
$ hg pull ../a
pulling from ../a
searching for changes
hook args:
hooktype preoutgoing
source pull
abort: preoutgoing.fail hook failed
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-hook
r11793
$ echo '[hooks]' > ../a/.hg/hgrc
$ echo 'preoutgoing.uncallable = python:hooktests.uncallable' >> ../a/.hg/hgrc
$ hg pull ../a
pulling from ../a
searching for changes
abort: preoutgoing.uncallable hook is invalid ("hooktests.uncallable" is not callable)
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-hook
r11793
$ echo '[hooks]' > ../a/.hg/hgrc
$ echo 'preoutgoing.nohook = python:hooktests.nohook' >> ../a/.hg/hgrc
$ hg pull ../a
pulling from ../a
searching for changes
abort: preoutgoing.nohook hook is invalid ("hooktests.nohook" is not defined)
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-hook
r11793
$ echo '[hooks]' > ../a/.hg/hgrc
$ echo 'preoutgoing.nomodule = python:nomodule' >> ../a/.hg/hgrc
$ hg pull ../a
pulling from ../a
searching for changes
abort: preoutgoing.nomodule hook is invalid ("nomodule" not in a module)
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-hook
r11793
$ echo '[hooks]' > ../a/.hg/hgrc
$ echo 'preoutgoing.badmodule = python:nomodule.nowhere' >> ../a/.hg/hgrc
$ hg pull ../a
pulling from ../a
searching for changes
abort: preoutgoing.badmodule hook is invalid (import of "nomodule" failed)
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-hook
r11793
$ echo '[hooks]' > ../a/.hg/hgrc
$ echo 'preoutgoing.unreachable = python:hooktests.container.unreachable' >> ../a/.hg/hgrc
$ hg pull ../a
pulling from ../a
searching for changes
abort: preoutgoing.unreachable hook is invalid (import of "hooktests.container" failed)
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-hook
r11793
$ echo '[hooks]' > ../a/.hg/hgrc
$ echo 'preoutgoing.pass = python:hooktests.passhook' >> ../a/.hg/hgrc
$ hg pull ../a
pulling from ../a
searching for changes
hook args:
hooktype preoutgoing
source pull
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
(run 'hg update' to get a working copy)
Matt Mackall
tests: fix a bunch of pointless #s in unified tests
r12328 make sure --traceback works
Nicolas Dumazet
tests: unify test-hook
r11793
$ echo '[hooks]' > .hg/hgrc
$ echo 'commit.abort = python:hooktests.aborthook' >> .hg/hgrc
$ echo aa > a
$ hg --traceback commit -d '0 0' -ma 2>&1 | grep '^Traceback'
Traceback (most recent call last):
$ cd ..
$ hg init c
$ cd c
$ cat > hookext.py <<EOF
> def autohook(**args):
> print "Automatically installed hook"
>
> def reposetup(ui, repo):
> repo.ui.setconfig("hooks", "commit.auto", autohook)
> EOF
$ echo '[extensions]' >> .hg/hgrc
$ echo 'hookext = hookext.py' >> .hg/hgrc
$ touch foo
$ hg add foo
$ hg ci -d '0 0' -m 'add foo'
Automatically installed hook
$ echo >> foo
Nicolas Dumazet
tests: remove useless sed in test-hook
r11794 $ hg ci --debug -d '0 0' -m 'change foo'
Nicolas Dumazet
tests: unify test-hook
r11793 foo
Brodie Rao
tests: add glob matching for unified tests...
r12376 calling hook commit.auto: <function autohook at *> (glob)
Nicolas Dumazet
tests: unify test-hook
r11793 Automatically installed hook
committed changeset 1:52998019f6252a2b893452765fcb0a47351a5708
Nicolas Dumazet
tests: remove useless sed in test-hook
r11794 $ hg showconfig hooks
Brodie Rao
tests: add glob matching for unified tests...
r12376 hooks.commit.auto=<function autohook at *> (glob)
Nicolas Dumazet
tests: unify test-hook
r11793
Matt Mackall
tests: fix a bunch of pointless #s in unified tests
r12328 test python hook configured with python:[file]:[hook] syntax
Nicolas Dumazet
tests: unify test-hook
r11793
$ cd ..
$ mkdir d
$ cd d
$ hg init repo
$ mkdir hooks
$ cd hooks
$ cat > testhooks.py <<EOF
> def testhook(**args):
> print 'hook works'
> EOF
$ echo '[hooks]' > ../repo/.hg/hgrc
$ echo "pre-commit.test = python:`pwd`/testhooks.py:testhook" >> ../repo/.hg/hgrc
$ cd ../repo
$ hg commit -d '0 0'
hook works
nothing changed
Matt Mackall
tests: add exit codes to unified tests
r12316 [1]
Nicolas Dumazet
tests: unify test-hook
r11793
$ cd ../../b
Matt Mackall
tests: fix a bunch of pointless #s in unified tests
r12328 make sure --traceback works on hook import failure
Nicolas Dumazet
tests: unify test-hook
r11793
$ cat > importfail.py <<EOF
> import somebogusmodule
> # dereference something in the module to force demandimport to load it
> somebogusmodule.whatever
> EOF
$ echo '[hooks]' > .hg/hgrc
$ echo 'precommit.importfail = python:importfail.whatever' >> .hg/hgrc
$ echo a >> a
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg --traceback commit -ma 2>&1 | egrep '^(exception|Traceback|ImportError)'
Nicolas Dumazet
tests: unify test-hook
r11793 exception from first failed import attempt:
Traceback (most recent call last):
ImportError: No module named somebogusmodule
exception from second failed import attempt:
Traceback (most recent call last):
ImportError: No module named hgext_importfail
Traceback (most recent call last):
Martin Geisler
tests: added a short description to issue numbers...
r12399 Issue1827: Hooks Update & Commit not completely post operation
commit and update hooks should run after command completion
Nicolas Dumazet
tests: unify test-hook
r11793
$ echo '[hooks]' > .hg/hgrc
$ echo 'commit = hg id' >> .hg/hgrc
$ echo 'update = hg id' >> .hg/hgrc
$ echo bb > a
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg ci -ma
223eafe2750c tip
Nicolas Dumazet
tests: unify test-hook
r11793 $ hg up 0
Martin Geisler
tests: remove unneeded -d flags...
r12156 cb9a9f314b8b
Nicolas Dumazet
tests: unify test-hook
r11793 1 files updated, 0 files merged, 0 files removed, 0 files unresolved