version control कैसे hgsubversion के साथ मर्ज को संभालना है?




version-control mercurial (3)

कुछ अलग शाखाएं मोड के रूप में मर्कुरियल: http://stevelosh.com/blog/2009/08/a-guide-to-branching-in-mercurial/

आप जिसका वर्णन कर रहे हैं वह 'नामांकित शाखाएं' है, जो सबसे लोकप्रिय है जब आप एक रेपो के साथ काम कर रहे हैं जो केवल मर्क्यूरिअल (या एचजी-जीआईटी) के माध्यम से पहुंचा है।

हालांकि, जब आप hg-subversion का उपयोग कर रहे हैं, ताकि आप बदले में / परिवर्तनों को धकेल रहे हैं, जो केवल नाममात्र रूप से शाखाएं हैं, तो आप 'डिफॉल्ट' नामांकित शाखा में अपने सभी पारिवारिक परिवर्तनों को रखने से बेहतर हैं, और 'क्लोन और शाखाएं' पैटर्न (जो मैं वैसे भी पसंद करता हूं)।

विशेष रूप से, उस संदेश को Sorry, can't find svn parent of a merge revision. एक संशोधन का वंशज नहीं है जिसका उलट संस्करण अलग-अलग है

क्या आप थे, मैं एसवीएन से फिर से बदलना चाहता था, और फिर अपने काम को उस प्रियो की 'डिफॉल्ट' शाखा में 'ट्रांसप्लांट' कमांड (पैक एक्सटेंशन) के साथ ले जाता हूं। यदि आप समानांतर w / hg-subversion में एकाधिक विशेषताओं चाहते हैं तो अलग क्लोन (वे बहुत सस्ते हैं) का उपयोग करते हैं, क्योंकि यह अधिक है कि कैसे शाखाओं के बारे में विचलन सोचता है

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

मैं कैसे सुविधा शाखा को डिफ़ॉल्ट शाखा (एचजी बोल) पर होता है, ट्रंक (एसवीएन बोल) को उतारने वाली सामग्री के साथ अद्यतित रखता हूं?

इसलिए मैंने फीचर शाखा में अपडेट करने के लिए hg up feature का इस्तेमाल किया, फिर hg pull जिसने मुझे डिफॉल्ट शाखा पर परिवर्तन करने दिए। इसलिए मैंने hg merge default किया था, मर्ज किए गए, फिर hg push को मेरे परिवर्तनों को सबवर्जन में भेजने के लिए कोशिश की। और मर्कुरियल ने कहा: "क्षमा करें, एक मर्ज संशोधन के एसवीएन मूल को नहीं मिल सकता है।"


मुझे इसे खुद के लिए समझने की जरूरत है और इसे यहां लिखा है:

http://notebook.3gfp.com/2010/05/pushing-a-new-feature-from-a-mercurial-repo-into-an-svn-repo/

मैंने अभी तक पता नहीं लगाया है कि कैसे तोड़फोड़ में एक शाखा को बंद कर दिया जाए और मर्कूरियल ग्राफ़ को सही दिखें।


मैंने अंततः यह पता लगाया है कि प्रश्न में वर्णित घटना के बाद मेरे रिपोजिटरी को अनधिकृत कैसे प्राप्त किया जाए, ताकि मैं माता-पिता के भंडार को फिर से क्लोन किए बिना काम जारी रख सकूं (जो कि जाहिर है, एक बहुत धीमी गति से आप जब सबवर्जन से खींच रहे हैं!)। यदि सबवर्सन की "टिप" आपको इतनी दूर कर देती है कि आप और भी आगे नहीं बढ़ पाएं, तो सुनिश्चित करें कि आपने अपने होमस्क्रीन में $ HOME / .hgrc लाइन के माध्यम से सक्रिय बिल्ट-इन "रीबेस" एक्सटेंशन बनाया है:

[extensions]
rebase =

और तब आपको इस आदेश को चलाने में सक्षम होना चाहिए जब आपकी रिपॉजिटरी को ढंका हो जाए:

$ hg rebase --svn

अगर मैं इसे सही ढंग से समझता हूं, तो यह आपकी वर्तमान शाखा को भंग कर देता है जिसने आपको सबवर्जन हेड से दूर कर दिया है, और इसे ब्रारक में "टिप" के ऊपर पुनर्निर्माण किया है जो बदले में हेड के साथ मेल खाता है। वहां से, आप काम कर रख सकते हैं और सफलतापूर्वक फिर से धक्का दे सकते हैं। यह हमेशा मेरे लिए अब तक काम किया है; मुझे बताएं कि क्या आप किसी भी समस्या में भाग लेते हैं!







hgsubversion