2010-07-16 21 views
8

मैं चार अलग-अलग स्थानों पर Mercurial सर्वर रखना चाहता हूं, और किसी भी समय उन्हें समान होना चाहता हूं। मतलब, उनमें से किसी भी बदलाव में अन्य सभी सर्वरों के लिए प्रचार किया जाना चाहिए। उसको कैसे करे?दो या दो से अधिक Mercurial सर्वर सिंक कैसे करें?

उत्तर

8

आप incoming हुक के साथ सर्वर पर एक क्रिया जोड़ सकते हैं।

हुक आपको रिपोजिटरी पर होने वाली घटनाओं को स्वचालित करने की अनुमति देता है। जब भी आप भंडार में धक्का देते हैं, तो आप अपने दर्पणों को भी धक्का दे सकते हैं।

अधिक हुक पर: http://hgbook.red-bean.com/read/handling-repository-events-with-hooks.html

+2

आप भेजे 'हुक के बजाय' changegroup 'हुक का उपयोग कर बेहतर कर रहे हैं। यह प्रत्येक सीसेट के लिए एक हुक चलाने के बजाए सभी सीएस को एक साथ दबाएगा। –

+0

क्या होगा अगर कोई एक दर्पण में से किसी एक को धक्का देता है, तो कोई भी दूसरे को धक्का देता है। यदि सभी दर्पण सिर्फ एक दूसरे को धक्का देते हैं तो ऐसा लगता है कि किसी को दौड़ की स्थिति मिल जाएगी जहां धक्का विफल हो जाएगा। धन्यवाद। – DRayX

+3

आह, हाँ, यही कारण है कि आप केवल एक रेपो को धक्का देते हैं। दर्पण का विचार बैकअप रखना है। आप कभी जागते नहीं और कहते हैं, "मैं किस चेहरे को आज दाढ़ी देने जा रहा हूं? मेरा हाथ हाथ से जुड़ा हुआ है या एक दर्पण में?" कम से कम, मुझे उम्मीद है कि आप नहीं करते हैं। :) इसलिए, उन सर्वरों में से किसी एक को * में * केवल * चेक किया जाना चाहिए। यह ठीक है, क्योंकि आप शायद अपने रेपो को लिखने से 1000x अधिक पढ़ते हैं। (इतिहास, diffs, शाखा परिवर्तन, आदि) तो, यदि "प्राथमिक" सर्वर बहुत दूर है और एक चेकइन थोड़ा धीमा है, कोई भी कभी ध्यान नहीं देगा! आशा है कि ये आपकी मदद करेगा! – leoger

संबंधित मुद्दे