2013-10-10 87 views
0

我們有一個bazaar服務器,許多人連接到該服務器。我想爲每個用戶運行一些預先提交的鉤子,對我而言,在服務器上運行這些鉤子是最有意義的,因爲我無法控制所有連接的計算機。我認爲這是一個簡單的任務,但我現在卡住了。Bazaar掛鉤檢查服務器上的提交消息

我目前的狀態是:

  • 如果我安裝我的工作站將掛鉤工作的腳本。
  • 如果我在服務器上安裝腳本,它將在此處執行提交。
  • 它安裝在服務器上,我承諾在我的工作站上加載但是被忽略的 。

我試過有在服務器上都BZR_PLUGIN_PATH~/.bazaar/plugin劇本,如果我這樣做,我認爲這在日誌中:

0.112 looking for plugins in /home/me/.bazaar/plugins 
0.122 looking for plugins in /usr/local/lib64/python2.6/site-packages/bzrlib/plugins 
0.123 Plugin name my_test_hook already loaded 

並從遠程工作站,是如此的插件顯然會被加載,但不會被執行。我已經愚弄它了,所以它現在做的是:

def my_test_hook (local, master, old_revno, old_revid, 
    future_revno, future_revid, tree_delta, future_tree): 
    raise TipChangeRejected("Rejected") 

所以這是它的一種顯而易見的時候它正在執行。有人可以告訴我,我需要做些什麼才能做到這一點?也就是說,當我在我的工作站上執行"bzr ci -m '...'"時,是否希望我的服務器中的鉤子取消提交併說「拒絕」。

該文檔並沒有真正幫助我很多不幸的事情。

回答

0

答案是:你不能。

遠程主機只能看到一個推後,然後停止提交已經太晚了,所以這樣一個掛鉤必須在每個客戶端上本地運行。