इस सेटअप के लिए एक अच्छा Mercurial उपयोग पैटर्न क्या है?

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

मैं दो बंद नेटवर्क डेवलपर्स में से एक हूं, हमें "मास्टर" स्थान पर विचार करें।

समूह के लिए सबसे अच्छा Mercurial सेटअप / पैटर्न क्या है? रिमोट डेवलपर्स में / से परिवर्तनों को ट्रेस करने का सबसे अच्छा तरीका क्या है? जैसा कि मैं प्रभारी हूं, मुझे लगा कि मुझे कम से कम एक मास्टर रेपो रखना होगा जिसमें एक और स्थानीय रिपो है जिसमें मैं विकसित कर सकता हूं। एक दूसरे व्यक्ति को सिर्फ मास्टर के क्लोन की आवश्यकता होनी चाहिए। क्या यह सही है? मुझे लगता है कि यह मुझे विलय के लिए ज़िम्मेदार बनाता है?

जैसा कि आप देख सकते हैं, मैं अभी भी वितरित संस्करण नियंत्रण के आसपास अपने सिर को लपेटने की कोशिश कर रहा हूं। मुझे नहीं लगता कि कनेक्टिविटी की स्थिति के साथ ऐसा करने का कोई और तरीका है।

0

3 उत्तर

नेटवर्क के बाहर के उपयोगकर्ता पैच बना सकते हैं, और / या < मुख्य repo या किसी के अपडेट को भेजने के लिए एक href = "http://hgbook.red-bean.com/hgbookch14.html#x18-32100014.4" rel = "nofollow noreferrer"> ईमेल उन्हें मर्ज करें। अन्य आंतरिक लोगों में स्थानीय प्रतियां हो सकती हैं, जैसे कि आप विलय करते हैं - लेकिन यदि आप इन्हें नेटवर्क पैच से बाहर कर रहे हैं, तो यह बेहतर हो सकता है कि एक व्यक्ति उनके साथ सौदा करे ताकि कोई भी भ्रमित न हो, लेकिन ऐसा कुछ है जो आपको करना होगा स्वयं विचार करो।

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

वे मेरे एकमात्र सुझाव हैं - बिलकुल स्पष्ट, उन्हें एक वीपीएन कनेक्शन प्राप्त करें! मुझे यह सुनना अच्छा लगेगा कि यह कैसे जाता है, साप्ताहिक नाली, एट कैटेरा में क्या योजनाएं स्थिर होती हैं।

0
जोड़ा

सही बात। बंद नेटवर्क पर इसे किसी भी तरह से बनाता है फ्लैश ड्राइव के माध्यम से।

0
जोड़ा

पैच एक साधारण और बहुमुखी समाधान हैं।

परिवर्तनों के बड़े समूहों (विशेष रूप से बाइनरी परिवर्तन और विलय) के चारों ओर जाने के लिए, Mercurial बाइनरी बंडल प्रदान करता है। एक बंडल मूल रूप से बाइनरी सामान होता है जो नेटवर्क पर भेजा जाता है जब आप hg push करते हैं, लेकिन यहां इसे फ़ाइल में कैप्चर किया जाता है।

आइए कल्पना करें कि मुझे किसी भी तरह क्लोन मिला है (फ्लैश ड्राइव, डीवीडी, आदि द्वारा)। इसे अपस्ट्रीम पर कॉल करें। मैं फिर दूसरा क्लोन बना देता हूं, इसे devel कहता हूं। मैं अपने सभी विकास devel में करता हूं और बहुत सारे काम करता हूं, विलय करता हूं, आदि। Mercurial वितरित होने के बाद से मैं यह सब ऑफ़लाइन कर सकता हूं।

यह देखने के लिए कि अपस्ट्रीम में कौन से परिवर्तन गुम हैं

% hg outgoing ../upstream

जब मेरे पास भेजने के लिए कुछ है, तो मैं इसका उपयोग कर सकता हूं

% hg bundle changes.hg ../upstream

एक बाइनरी संपीड़ित फ़ाइल प्राप्त करने के लिए जिसमें उनके सभी मेटा डेटा समेत परिवर्तन शामिल हैं। मैं फिर इस फाइल को एक सीडी पर जला सकता हूं और इसे मेल द्वारा भेज सकता हूं ...

बंडल के प्राप्तकर्ता कर सकते हैं

% hg incoming changes.hg

परिवर्तन सूची देखने के लिए और

% hg pull changes.hg

अनपॅक करने और अपने भंडार में परिवर्तन जोड़ने के लिए। उसके बाद उसे सबसे अधिक विलय करना होगा - यह बिल्कुल वैसा ही है जैसे उसने सीधे आपके भंडार से HTTP या SSH पर खींच लिया था।

नोट, अपस्ट्रीम रिपोजिटरी को केवल यह याद रखने के लिए एक सुविधाजनक तरीका के रूप में उपयोग किया जाता है कि अपस्ट्रीम रिपॉजिटरी में कौन से बदलाव पहले ही पाए गए हैं। बेस (सामान्य) परिवर्तन निर्दिष्ट करने के लिए बंडल करते समय आप बस परिवर्तन आईडी को भी कम कर सकते हैं और hg bundle --base का उपयोग कर सकते हैं। hg help bundle या विकी में देखें देखें।

0
जोड़ा