服务器
$ hg --version
Mercurial Distributed SCM (version 2.0.2)
/usr/share/mercurial-server$ cat mercurial_server-1.1.egg-info
Metadata-Version: 1.1
Name: mercurial-server
Version: 1.1
$ cat /etc/mercurial-server/remote-hgrc.d/check.rc
[ui]
debug = true
[hooks]
commit.h1 = echo "executing commit USER:$REMOTE_USER"
precommit.h2 = echo "executing precommit USER:$REMOTE_USER"
pretxncommit.h3 = echo "executing pretxncommit USER:$REMOTE_USER"
pretxnchangegroup.h4 = echo "executing pretxnchangegroup USER:$REMOTE_USER"本地机器
unity@unity:~/hgtst/hgadmin$ vi keys/users/user.m/user.m.pub
unity@unity:~/hgtst/hgadmin$ hg commit -m "Test L"
unity@unity:~/hgtst/hgadmin$ hg push
pushing to ssh://hg@repo/hgadmin
searching for changes
remote: adding changesets
remote: changesets: 1 chunks
remote: add changeset 9cb298911d0c
remote: adding manifests
remote: manifests: 1/1 chunks (100.00%)
remote: adding file changes
remote: adding keys/users/user.m/user.m.pub revisions
remote: files: 1/1 chunks (100.00%)
remote: added 1 changesets with 1 changes to 1 files
remote: calling hook pretxnchangegroup.access: mercurialserver.access.hook
remote: running hook pretxnchangegroup.h4: echo "executing pretxnchangegroup USER:$REMOTE_USER"
remote: executing pretxnchangegroup USER:
remote: updating the branch cache
remote: calling hook changegroup.aaaaa_servelog: mercurialserver.servelog.hook
remote: running hook changegroup.aaaab_update: hg update -C default > /dev/null
remote: running hook changegroup.aaaac_purge: hg purge --all > /dev/null
remote: calling hook changegroup.refreshauth: mercurialserver.refreshauth.hook
unity@unity:~/hgtst/hgadmin$ 当我通过ssh将一些更改从本地计算机推送到mercurial-server时,将执行pretxnchangegroup挂钩,但不会执行任何其他挂钩。
发布于 2014-02-02 00:29:54
这是意料之中的。您不是在远程服务器上提交,而是将更改推送到远程服务器。这就是您正在使用的changegroup的用途。
对我来说,似乎一切都像它应该的那样工作。
希望这能帮上忙,TW
https://stackoverflow.com/questions/21154827
复制相似问题