2014-01-06 36 views
0

我有一箇中央主存儲庫和幾個工作副本。Mercurial鉤,當別人拉

工作副本從主人拉,我需要在這一刻與主人做一些工作。所以,我想要一個鉤子,當另一個存儲庫拉動或試圖從存儲庫中拉出(=無新增功能)時,它會被觸發。

我試過preoutgoing,但只有在有一些外出的變更集可用時纔會觸發。

我怎麼能解決這個問題在主存儲庫端?

+0

難道人蒲凌通過HTTP或ssh? Theres的答案都不錯,但它們有所不同。 –

+0

'local'或'http'。 –

回答

1

對於本地文件訪問,您運氣不好。通過http,你應該能夠在你的web服務器的http層面上攔截它。通常在hgweb前面有apache或nginx或者gunicorn或者其他的wsgi容器,你可以在腳本上運行GET代碼。

你說得對,outgoing鉤子只有在有變化將被髮送時纔會被觸發。

+0

很遺憾,不過謝謝。 –

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

+0

我不明白這與我的問題有何關係,請你解釋一下吧? –

+0

我以爲你的問題是你正在處理一個存儲庫,但不希望你的改變被拉入其他存儲庫。你試圖通過鉤子解決它,但另一種方法是將這些更改標記爲祕密。我誤解了你的問題是什麼。 –

+0

我的問題是,我想在有人拉動時「得到通知」......這是我第一個想法如何獲得加密的mercurial repo的一個步驟。同時我沒有這一步解決它:http://www.codeduce.com/extra/secure_mercurial –