2011-11-24 13 views
6

सेटअप नहीं पहुँच सकते हैं:पुश कि एक दूसरे

  • एक लैपटॉप एल
  • एक कार्यालय सर्वर होस्टिंग विभिन्न खजाने soffice
  • एक ग्राहक के डेटाबेस सर्वर SCustomer

मैं एक ग्राहक के लिए एल पर कोड लिख रहा हूं, और नियमित रूप से इसे दोनों को सोफिस के साथ-साथ स्केलर को धक्का देना चाहता हूं।

मुझे पता है कि मैं changegroup हुक का उपयोग दूसरे से तीसरे भंडार को धक्का देने के लिए कर सकता हूं (जैसा कि in this answer वर्णित है), लेकिन इसके लिए यह आवश्यक है कि दूसरा तीसरा नेटवर्क-वार तक पहुंच सके।

मेरे मामले में, प्रत्येक फ़ायरवॉल के पीछे है, और केवल मेरा लैपटॉप आमतौर पर वीपीएन (या शारीरिक रूप से वहां) दोनों के माध्यम से उपयोग करता है। मैं SCustomer पर जाने के लिए सोफिस पर वीपीएन स्थापित कर सकता था, लेकिन मैं नहीं चाहता था।

क्या कोई तरीका है, मैं कह सकता हूं, defaultदो भंडारों को सेट करें?

उत्तर

3

एक MultirepoExtension है जो एकाधिक भंडारों पर कोई भी संचालन करने के लिए आदेश जोड़ता है।

या आप दोनों की तरह करने के लिए पुश करने के लिए एक उपनाम बना सकते हैं:

[aliases] 
pushboth = !$HG push http://first ; $HG push http://second 

या आप एक पूर्व धक्का हुक कि एक दूसरे को धक्का बना सकते हैं। कुछ ऐसा:

[hooks] 
pre-push = hg push http://second 

लेकिन मुझे krtek का उत्तर सबसे अधिक पसंद है (और ऊपर उठाया गया है)। बस प्रत्येक पथ उपनाम दें और URL के बजाय छोटे नामों के साथ दो बार पुश चलाएं।

+1

हुक किसी प्रकार का अनंत लूप नहीं बनाएगा?क्या हुक दूसरे धक्का से ट्रिगर नहीं होता है? बीटीडब्लू, विस्तार के लिए धन्यवाद, मुझे इसके बारे में पता नहीं था – krtek

+0

हाँ, आपको यह सुनिश्चित करने के लिए परीक्षण करना होगा कि यह केवल पहले धक्का पर ट्रिगर्स हो। मैं इसे सुझाव देने के बजाय दो बार रन पुश के साथ रहूंगा। अपने वर्कफ़्लो में इस तरह के छोटे-छोटे कटौती डालने से आपको नाराज हो जाता है जब आप उनके बिना सिस्टम पर होते हैं और भ्रमित हो जाते हैं जब उनके पास साइड इफेक्ट होता है जिसे आपने उम्मीद नहीं की थी। –

+1

एक्सटेंशन के साथ-साथ पुशबोथ कमांड उर्फ ​​संभवतः इस मुद्दे के साथ आते हैं कि उन्हें TorgoiseHg Workbench से आसानी से/सीधे नियंत्रित नहीं किया जा सकता है; मेरे द्वारा ठीक है, लेकिन मैं गैर-देवताओं के लिए अपेक्षाकृत सुविधाजनक समाधान की तलाश में हूं। फिर भी, ये निकटतम हैं। –

5

क्या आप एक हुक के साथ भंडार का दूसरा क्लोन बना सकते हैं जो स्वचालित रूप से दोनों बाह्य भंडारों को धक्का देता है? फिर अपने कामकाजी क्लोन से दूसरे क्लोन में धक्का दें।

[paths] 
default= /path/to/first/repo 
scustomer = /path/to/second/repo 

फिर आप scustomer भंडार स्पष्ट रूप से करने के लिए धक्का कर सकते हैं::

hg push scustomer 

+0

क्रिएटिव उत्तर :) – krtek

+0

यह चालाक है। :) –

7

आप नहीं default दो खजाने को कर सकते हैं, लेकिन आप अपने hgrc फ़ाइल में एक से अधिक भंडार परिभाषित कर सकते हैं यदि आप एक ही समय में दोनों भंडारों को धक्का देने की प्रक्रिया को स्वचालित करना चाहते हैं, तो मुझे ऐसा करने के लिए एक Mercurial विधि से अवगत नहीं है, लेकिन दोनों आदेशों को चलाने के लिए एक खोल स्क्रिप्ट, उपनाम या कुछ और बनाना वास्तव में आसान हैअन्य।

आप स्वचालित रूप से दूसरे को धक्का देने के लिए भंडार पर एक हुक का भी उपयोग कर सकते हैं, लेकिन आपको "मैनुअल" पुश और हुक में स्वचालित धक्का के बीच भेदभाव करना होगा, और मुझे लगता है कि यह वास्तव में होगा गंदा।

+0

मुझे यह स्पष्ट करना चाहिए था कि मुझे पता है कि मैं 'hgrc' में एकाधिक पुश स्थानों को सेट कर सकता हूं। –

+0

फिर आपको @ Ry4an द्वारा दिए गए एक्सटेंशन पर एक नज़र डालना चाहिए, ऐसा लगता है कि आप वास्तव में क्या खोज रहे हैं। – krtek