在我的计算机上,我有一些Mercurial提交挂钩,可以在每次提交时运行,确保我正确分支并执行其他一些操作。但我只需要这些用于工作项目。
以下是〜/ .hgrc文件中实现的钩子:
[hooks]
# This hook will warn you if you make a commit directly to trunk.
pretxncommit.default_check=/virtualhosts/mercurial-hooks/default_check.sh
# This hook will warn you if you branch from something other than default.
pretxncommit.branch_check=/virtualhosts/mercurial-hooks/branch_check.sh
对于我的个人项目,我不想使用相同的,烦人的钩子(设置为全局)。我想从bitbucket结帐的所有回购都不使用那些钩子。如何设置它?
答案 0 :(得分:3)
创建一个名为from_bitbucket.sh
的文件,其中包含以下内容:
#!/bin/sh
test -f $HG_PENDING/.hg/hgrc || exit 1
egrep -q 'default.*bitbucket\.org' $HG_PENDING/.hg/hgrc || exit 1
exit 0
授予脚本执行权限(例如chmod 755 from_bitbucket.sh
)并将其移动到您希望永久保留的目录。
将你的钩子改为:
pretxncommit.default_check=/path/to/from_bitbucket.sh || /virtualhosts/mercurial-hooks/default_check.sh
如果脚本成功,这将首先执行from_bitbucket.sh
并提前中止。该脚本仅检查存储库的default.*bitbucket\.org
文件中是否存在与.hg/hgrc
匹配的行(如果您从bitbucket推送/拉出,则通常应存在于[paths]
部分中)。如果没有.hg/hgrc
或者文件不包含匹配的行,它将失败。