2008-11-06 16 views
6

हम अपने विकास के लिए सबवर्जन में फीचर शाखाओं का उपयोग कर रहे हैं जो कि संस्करण नियंत्रण में कोड रखने का एक बहुत सुविधाजनक तरीका है जो अभी तक मुख्य लाइन के लिए तैयार नहीं है। हालांकि, जब भी मैं मुख्य रूप से फीचर शाखा संशोधन को मर्ज करने के लिए जाता हूं तो यह दर्द होता है। अभी मैं निम्न चरणों के माध्यम से जाना: एक नया निर्देशिका सबवर्सन में मुख्य पंक्ति में फीचर शाखा को मर्ज करने का सबसे अच्छा तरीका क्या है?

  • के लिए बाहर मूल विशेषता शाखा संशोधन

    1. चेक तुलना करें
    2. परे जैसे उपकरण के साथ मेरे वर्तमान विकास और मूल विशेषता शाखा निर्देशिका के बीच एक अंतर को पूरा करें
    3. एक नई निर्देशिका
    4. वर्तमान मुख्यलाइन निर्देशिका में नई/बदली गई फ़ाइलों को मर्ज करें।
    5. मेरी आईडीई का उपयोग कर फ़ाइलों के सभी सुनिश्चित करने के लिए एक अंतर प्रदर्शन करना ठीक से बाहर जाँच कर रहे हैं/तोड़फोड़
    6. संकलित करें और परीक्षण करने के लिए जोड़ा
    7. प्रतिबद्ध

    मुझे ऐसा लगता है कमरे का एक बहुत है कि वहाँ इस प्रक्रिया में त्रुटियों के लिए और जब भी मैं चरणों के माध्यम से चलता हूं तो यह मुझे परेशान करता है। अनुमोदित, सब कुछ मेरी फीचर शाखा पर सबवर्जन में चेक किया गया है, इसलिए किसी भी चरण में एक गलती वसूली योग्य है।

    मेरा मानना ​​है कि सबवर्जन 1.5 में शाखा को मेनलाइन में विलय करने का एक तरीका है, लेकिन हम अभी भी सबवर्जन 1.4 का उपयोग कर रहे हैं। सबवर्सन में उनके मुख्य लाइन विकास में फीचर शाखा विलय करने के चरणों को सरल बनाने के लिए अन्य लोग क्या उपयोग कर रहे हैं? क्या आप विभिन्न टूल्स का उपयोग कर रहे हैं? क्या आप सबवर्सन 1.5 में विलय सुविधा का उपयोग कर रहे हैं?

  • +0

    मैं एक ही चरण का पालन करता हूं, लेकिन मेरे तुलना टूल के रूप में SourceGear's DiffMerge का उपयोग करता हूं। यह एक पिटा है, एक बात मुझे लगता है कि टीएफएस बहुत अच्छा रहा और मुझे याद आती है। – cfeduke

    +0

    1.5 (एक लक्जरी मेरे पास) को अपग्रेड करने से पहले, मैंने सटीक वही टूल (तुलना 3 से परे, जो बहुत अच्छा है) के साथ एक ही कदम उठाए। यह दर्दनाक और कभी-कभी थकाऊ था, लेकिन मुझे कभी समस्या नहीं थी। एसवीएन 1.5 के साथ (नीचे देखें), जीवन बहुत आसान है ... – Dan

    उत्तर

    6

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

    अपने मूल प्रश्नों के अनुसार, आपको विकास के दौरान अपनी कार्य शाखा में विलय कर चुके मुख्य शाखा संशोधनों के बारे में बहुत कठोर ट्रैक रखने की आवश्यकता है। हालांकि, 1.5 की --reintegrate सुविधा के साथ भी, यह सुनिश्चित करना अभी भी महत्वपूर्ण है कि मुख्य शाखा की पुनर्निर्मित कार्यशील प्रतिलिपि आपके द्वारा प्रतिबद्ध होने से पहले सही और संकलित लगती है। यह मूल रूप से जीवन को बहुत आसान बनाता है (विशेष रूप से लंबे समय तक रहने वाली फीचर शाखाओं के लिए) क्योंकि आपको जो कुछ बदल गया है और जब आपने अन्य शाखाओं से अपनी फीचर शाखा में परिवर्तनों को एकीकृत किया है, तो आपको कठोर लॉग रखना नहीं है।

    subversion.tigris.org पर रिलीज नोट्स प्रलेखन बहुत अच्छी तरह लिखा गया है और मैं 1 के बीच के सभी परिवर्तनों को देखने के लिए संक्षेप में इसे देखने की अनुशंसा करता हूं।4 और 1.5 और नई विलय सुविधाओं पर एक अच्छे विवरण के लिए।

    +0

    अच्छी व्याख्या। मैंने हाल ही में 1.5 तक अपग्रेड किया है और इसे 1.4 से अधिक बढ़ने के लिए ढूंढ लिया है। ऊपर आपका विवरण ऑन-पॉइंट है। – Dan

    +0

    यह 1.5 के लिए वास्तव में सार्थक है, ट्रैकिंग सक्षम करने में सक्षम क्षमताओं के प्रयासों के लायक हैं। –

    +0

    अब आप 1.6 पर भी जा सकते हैं, बेशक :) –

    3

    चरण 1, 2, 4 और 5 उपversण में बनाए गए हैं, कमांड 'svn merge' करता है। मेनलाइन प्रकार की अपनी कामकाजी प्रतिलिपि पर 'svn merge -r startrev: lastref svn: // repository/branchurl'। Startref और lastref को संशोधन-विंडो को इंगित किया जाएगा, जिसे मुख्य रेखा में विलय किया जाना चाहिए। 'svn: // repository/branchurl' आपकी शाखा का यूआरएल होना चाहिए।

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

    Subversion-book में इसके बारे में और पढ़ें।

    2

    तुम वापस मुख्य लाइन शाखा में मर्ज करना चाहते हैं, तो इससे आपके शाखा है (यानी आप कर रहे हैं, न कि किसी समकलक कौन करता है अन्य डेवलपर्स के लिए कि), यहाँ आप क्या करने की जरूरत है:

    • संशोधन को लिख लें जिस पर आपने आखिरी बार अपनी शाखा में मुख्य लाइन को विलय कर दिया था (इसे सिंक में रखने के लिए)। इसे "LASTSYNC" कॉल
    • (MergeFeatureBranchToTrunk) की तरह एक नया निर्देशिका में मुख्य लाइन शाखा बाहर की जांच, यह
    • कि शाखा में
    • निर्माण करते हैं, svn merge "LASTSYNC":HEAD svn://path/to/FeatureBranch .
    • संकल्प संघर्ष का उपयोग करें (यदि हो तो)
    • संकलन
    • परीक्षण
    • यकीन है कि सब कुछ अच्छा लग रहा है
    • वापस प्रतिबद्ध mainline को
    बनाने के लिए एक diff उपकरण के साथ अपने परिवर्तनों की जांच 210
    0

    svnmerge पर एक नज़र डालें; यह ट्रैक करता है कि "मैंने क्या विलय किया है? मैंने विलय करने के लिए क्या चुना है?" आपके लिए नौकरी का हिस्सा है, और भारी उठाने के लिए svn के "विलय" कमांड पर निर्भर करता है।

    संबंधित मुद्दे

     संबंधित मुद्दे