Mercurial钩,当别人拉

时间:2014-01-06 00:02:11

标签: version-control mercurial mercurial-hook

我有一个中央主存储库和几个工作副本。

工作副本从主人那里拉出来,此时我需要与主人做一些工作。所以,我希望有一个钩子,当另一个存储库从存储库中拉出或试图拉动(=没有新的可用)时,它会被触发。

我尝试了preoutgoing,但只有在有一些外向变更集可用时才会触发。

如何在主存储库端解决此问题?

2 个答案:

答案 0 :(得分:1)

对于本地文件访问,你运气不好。通过http,您应该能够在Web服务器的http级别上获取它。一个人通常在hgweb前面有apache或nginx或gunicorn或其他一些wsgi容器,你可以在GET上运行代码到脚本。

你是对的,只有在有变化的情况下才会触发outgoing挂钩。

答案 1 :(得分:0)

对主人进行更改"秘密"。如果他们是,那么当他们拉动时,其他人也不会看到他们。

在主人身上添加这个.hgrc:

[phases]
new-commit=secret

或者如果您不希望每次提交都是秘密的,只需要奇怪的一两次,请使用......

$ hg commit --config phases.new-commit=secret

当您想要公开更改时,请更改它的阶段'公开。

$ hg phase --public -r <revision>

如果您不熟悉各个阶段,建议您阅读this three part series (2) (3)hg help phases