8
我想讓Mercurial服務器保持在四個不同的位置,並且希望它們在任何給定的時間都是相同的。意思是,任何變化都必須傳播到所有其他服務器。怎麼做?如何同步兩個或更多的Mercurial服務器?
我想讓Mercurial服務器保持在四個不同的位置,並且希望它們在任何給定的時間都是相同的。意思是,任何變化都必須傳播到所有其他服務器。怎麼做?如何同步兩個或更多的Mercurial服務器?
您可以使用incoming
鉤子在服務器上添加一個操作。
掛鉤允許您在存儲庫上發生事件時自動執行任務。每當你進入倉庫時,你都可以推到你的鏡子上。
更多關於鉤:http://hgbook.red-bean.com/read/handling-repository-events-with-hooks.html
你最好不要使用「changegroup」掛鉤,而不是「進入」掛鉤。這將一次推送所有的cset,而不是爲每個cset運行一個鉤子。 – 2010-07-16 09:04:32
如果有人推到其中一面鏡子,同時有人推到另一面鏡子,該怎麼辦?如果所有的鏡子只是互相推擠,看起來好像會有競爭條件,推動失敗。謝謝。 – DRayX 2011-12-19 21:12:36
啊,是的,這就是爲什麼你只推一個回購。鏡像的想法是有一個備份。你永遠不會醒來,並說:「我今天要刮臉的是哪一面?我手上的那一面還是鏡子裏面的那一面?」至少,我希望你不要。 :)因此,事情應該只能在其中一臺服務器上進行檢查。這是可以的,因爲你可能比寫回你的回購多讀1000倍。 (歷史,差異,分支變化等)所以,如果「主」服務器很遠,並且簽入速度稍慢,則沒有人會注意到!我希望這有幫助! – leoger 2012-02-06 02:00:04