1

サーバ

$ 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 pretxnchangegroup フックを介してローカル マシンから mercurial-server にいくつかの変更をプッシュすると、フックが実行されますが、他のフックは実行されません。

4

1 に答える 1

2

これは予想されることです。リモートサーバーでコミットするのではなく、変更をリモートサーバーにプッシュします。それchangegroupがあなたが使用しているものです。

私には、すべてが正常に機能しているように見えます。

これが役に立てば幸いです、TW

于 2014-02-01T16:29:54.337 に答える