2010-07-09 11 views
7

मैंने देखा कि इस प्रकार की कार्यक्षमता उपversण के लिए मौजूद है और यह बहुत अच्छी तरह से काम करती है। मैं सोच रहा था कि SourceGear वॉल्ट के लिए ऐसी चीज है या नहीं।Mercurial का उपयोग कर SourceGear Vault रिपॉजिटरी से खींच/धक्का देना संभव है?

उत्तर

11

नहीं, मुझे डर है कि हमारे पास केवल Subversion और Git के लिए दो-तरफा पुल हैं। मैंने सोर्स गियर वॉल्ट के लिए पुल लिखने वाले किसी के बारे में नहीं सुना है।

हालांकि, आप अभी भी के शीर्ष पर Mercurial का उपयोग कर सकते हैं। यह एक सामान्य तकनीक है जो सभी संस्करण नियंत्रण प्रणाली (वीसीएस) के लिए काम करती है। आप क्या करते हैं:

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

# checkout foreign VCS 
$ hg init 
$ hg addremove 
$ hg commit 

काम कर प्रति अब एक मर्क्युरियल काम कर प्रति रूप में अच्छी तरह के रूप में विदेशी प्रणाली के लिए एक काम की नकल दोनों है। आप Mercurial में विकास कर रहे हैं और समय-समय पर इसे विदेशी प्रणाली में आयात करेंगे, और आप समय-समय पर विदेशी वीसीएस से मर्कुरियल में परिवर्तन आयात करेंगे।

हम विदेशी प्रणाली के इतिहास को ट्रैक करने के लिए default नामक शाखा का उपयोग करेंगे, और मेरकुरियल में किए गए विकास को ट्रैक करने के लिए hg नाम की एक नाम वाली शाखा का उपयोग करेंगे।

नोट: एंटोन टिप्पणियां नीचे दी गई हैं कि अगर आप नाम की शाखाओं का उपयोग दो पंक्तियों को अलग करने के लिए करते हैं तो दो क्लोन का उपयोग करें - यदि यह आपके लिए एक समस्या है तो दो क्लोन का उपयोग करें।

$ hg branch hg 
$ hg commit -m "Started hg branch" 

अब आप कुछ विकसित कर सकते हैं:

हमें hg शाखा करते हैं

# work, work, work... 
$ hg commit -m 'Fixed bug 42' 
# work, hack, work... 
$ hg commit -m 'Customers will love this feature!' 

आप इस तरह के साथ काम के रूप में, default शाखा hg शाखा से अलग करने के लिए शुरू हो जाएगा - - अंतर वास्तव में उन बदलावों को है जिन्हें अभी तक विदेशी प्रणाली में निर्यात किया जाना है। आप

$ hg diff default:hg 

के साथ मतभेदों को देख सकते हैं वास्तव में परिवर्तन निर्यात के लिए, आपको default शाखा को अद्यतन करते हैं, इसे में hg विलय करने और अपने विदेशी व्यवस्था करने के लिए परिवर्तन के लिए प्रतिबद्ध:

$ hg update default 
$ hg merge hg 
$ hg commit -m 'Merge with hg' 
# get list of renamed files: 
$ hg status --added --copies --change . | grep -A 1 '^ ' 
# commit to foreign VCS 

फिर आप अद्यतन कर सकते हैं hg शाखा को वापस और मर्क्युरियल

$ hg update hg 
# work, work, wok... 

परिवर्तन विदेशी VCS में दूसरों के द्वारा किया जाता है जब उनके साथ काम करते हैं, तो आप उन्हें अपनी hg शाखा में वापस विलय करना होगा। आप पहले default शाखा में अपडेट करते हैं। यह सुनिश्चित करता है कि कार्यशील प्रतिलिपि दिखती है कि विदेशी वीसीएस कैसे दिखता है। इसके बाद आप काम कर प्रतिलिपि को अपडेट कर सकते हैं - इस मर्क्युरियल परिवर्तन, जो आप मर्क्युरियल के लिए प्रतिबद्ध देखने में आता है:

$ hg update default 
# update working copy using foreign VCS 
$ hg addremove --similarity 90 
$ hg commit -m 'Imported changes from foreign VCS' 

hg addremove कदम यह सुनिश्चित करें कि मर्क्युरियल किसी भी renames कि विदेशी VCS में हुई ऊपर उठाता है बनाता है।आपको उपयुक्त सेटिंग ढूंढने के लिए आपको समानता पैरामीटर के साथ प्रयोग करने की आवश्यकता होगी। अनुसूचित नाम देखने के लिए hg status -C का उपयोग करें।

अब आपको अपने बदलाव hg शाखा में वापस मर्ज करने के लिए की जरूरत है ताकि आप उन्हें अपने आगे मर्क्युरियल आधारित काम में शामिल कर सकते हैं:

$ hg update hg 
$ hg merge default 
$ hg commit -m 'Merge with default' 

आप इस तरह काम करना जारी रख - हमेशा पर नए स्थानीय विकास कर रही है hg शाखा, और विदेशी VCS कमांड (अपडेट, प्रतिबद्ध, आदि) का उपयोग करने से पहले default शाखा में हमेशा अद्यतन करना।

मुझे आशा है कि यह मार्गदर्शिका आपको या किसी और की मदद कर सकती है! :-)

+0

उत्तर के लिए धन्यवाद। मुझे लगता है कि मुझे अपने सहयोगियों को मर्क्यूरियल का प्रयास करने के लिए अन्य तरीकों को ढूंढना होगा (ताकि हम सभी प्रबंधन को समझ सकें कि हमें वॉल्ट पसंद नहीं है)। :/ – Paulius

+0

पॉलियस: मैंने आपके मौजूदा वीसीएस के शीर्ष पर हाइब्रिड तरीके से Mercurial का उपयोग करने के लिए एक गाइड जोड़ा है - मुझे आशा है कि आपको यह उपयोगी लगेगा। –

+0

हाँ, अच्छा लग रहा है। एक चीज जो मुझे परेशान करती है, यह है कि मुझे एचजी शाखा पर किए गए सभी नामों को मैन्युअल रूप से ट्रैक करना होगा और उन्हें विदेशी वीसीएस में आयात करना होगा। यह भी सुनिश्चित नहीं है कि वॉल्ट स्वचालित रूप से नाम ढूंढ सकता है या नहीं। वैसे भी, गाइड अच्छा दिखता है - मैं इसे आज़माउंगा। – Paulius