version control इस सेटअप के लिए एक अच्छा मौसमी उपयोग पैटर्न क्या है?




version-control mercurial (3)

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

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

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

https://code.i-harness.com

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

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

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

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


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

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

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

देखने के लिए कि upstream में कौन से परिवर्तनों की कमी है I

% hg outgoing ../upstream

जब मुझे कुछ भेजना है, तो मैं इसका इस्तेमाल कर सकता हूं

% hg bundle changes.hg ../upstream

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

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

% hg incoming changes.hg

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

% hg pull changes.hg

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

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


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





dvcs