2009-05-18 14 views
21

मर्ज किए जाने के बाद एक फीचर शाखा हटा दी जानी चाहिए (पुनः संयोजित) ट्रंक पर वापस?ट्रंक में पुन: एकीकृत करने के बाद एक सबवर्जन फीचर शाखा का उपयोग करना सुरक्षित है?

मैं अपनी फीचर शाखा से आगे और आगे परिवर्तनों को मर्ज करना पसंद करता हूं - मेरा मानना ​​है कि यह संघर्ष को कम से कम रखता है। फिर भी मैं समझता हूं कि एक बार जब आप ट्रंक में पुनर्जन्म विलय का उपयोग करते हैं, तो एक फीचर शाखा हटा दी जानी चाहिए।

क्या ऐसा है? क्यूं कर? इसे रोकने के लिए मैं क्या कर सकता हूं?

अद्यतन मैं तकनीकी समस्याओं उपकरण, नहीं "कार्यप्रणाली चिंताओं" से आते हैं के बारे में पूछ रहा हूँ। मैं मर्ज के बाद फीचर शाखा पर काम करना चाहता हूं।

अद्यतन शीर्ष उत्तर वास्तव में एक जटिल प्रक्रिया निर्दिष्ट करता है (मर्ज करें, & रीब्रैंच हटाएं)। क्या TortoiseSVN में इसे पूरा करने का कोई आसान तरीका है? क्या नहीं होना चाहिए?

उत्तर

24

संपादित करें: यह समस्या एसवीएन 1.8 में तय की गई प्रतीत होती है।section on basic merging from the SVN 1.8 book को यह कहने के लिए अद्यतन किया गया है कि एक सुविधा शाखा का पुन: उपयोग करना ठीक है। नीचे दिया गया जवाब पुराने एसवीएन संस्करणों के लिए केवल प्रासंगिक है।


SVN पुस्तक में basic merging पर अनुभाग से:

सबवर्सन 1.5 में, एक बार एक --reintegrate मर्ज ट्रंक करने के लिए शाखा से किया जाता है, शाखा नहीं अब आगे के लिए प्रयोग करने योग्य है काम। यह नए ट्रंक परिवर्तनों को सही ढंग से अवशोषित करने में सक्षम नहीं है, और न ही यह ठीक से फिर से ट्रंक करने के लिए पुन: व्यवस्थित किया जा सकता है।

यह अभी भी SVN 1.6 और 1.7 में मामला है: इस कारण से, आप अपनी सुविधा शाखा पर काम कर रखना चाहते हैं, हम इसे नष्ट और फिर इसे फिर से बनाने के तने से सलाह देते हैं।

यह excellent article on reflective mergesक्यों वास्तव में आप नहीं या किसी सुविधा शाखा पुनरावृत्ति नहीं होनी चाहिए कर सकते हैं बताते हैं।सबसे महत्वपूर्ण अंक का सारांश:

  • आप जब ट्रंक
  • एकीकरण ट्रंक में प्रतिबद्ध के साथ reintegrating संघर्ष को हल करने का काम कर सकते हैं इसलिए दोनों परिवर्तन शामिल सुविधा शाखा और संघर्ष से आ रही रिज़ॉल्यूशन वर्क
  • हालांकि, उपversण आपकी मदद नहीं करेगा इस संघर्ष समाधान कार्य को सुविधा शाखा में वापस विलय करें। यह बस mergeinfo को देखता है और सोचता है "ये परिवर्तन मूल रूप से सुविधा शाखा से आए थे, उन्हें फिर से उनके मूल में विलय करने की आवश्यकता नहीं है"।

फीचर शाखा और रीब्रैंचिंग को हटाना सस्ता है और इस पूरे मुद्दे से बचाता है।

+0

लेख का लिंक टूटा हुआ है। यहां काम कर रहे यूआरएल है: http://blogs.collab.net/subversion/2008/07/subversion-merg/ –

+0

@bob: तय, धन्यवाद –

+1

@WimCoenen आपके संपादन के बारे में, क्या मुझे एसवीएन 1.8 क्लाइंट + सर्वर होना चाहिए या ग्राहक केवल पर्याप्त है? –

-1

यह सब आपकी व्यक्तिगत राय और ट्रंक में विलय करने वाले लोगों की संख्या पर निर्भर करता है।

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

हालांकि, यदि आपके पास कई उप-शाखाएं नहीं हैं, और आप विवर्तन 1.5+ का उपयोग कर रहे हैं, तो आप इससे दूर हो सकते हैं, और यह विलयों को मर्ज करने से बचने में मदद कर सकता है।

बेशक, यदि आपका "ट्रंक" बीटा/रिलीज उम्मीदवार/रिलीज रिपोजिटरी के रूप में उपयोग किया जाता है, तो आप इसे नहीं करते हैं।

8

हम अक्सर ऐसा करते हैं (एसवीएन 1.5 और ऊपर)। आपको बस यह सुनिश्चित करना होगा कि उन परिवर्तनों को वापस शाखा में वापस न करें।

के संशोधन शाखा में ट्रंक से मर्ज कि बस एक सीमा कर ऐसा करने के लिए। उस ट्रंक में संशोधन निर्दिष्ट करें जिसे आपने शाखा के पुनर्निर्मित किया था और इसे ट्रंक संशोधन से शाखा में "केवल विलय रिकॉर्ड करें" के रूप में चिह्नित किया था।

एक बार ऐसा करने के बाद आपको जाने के लिए अच्छा होना चाहिए।

संपादित
बिंदु wcoenen संघर्षों के बारे में लेख से लाता है मान्य है। यदि आप पुनर्वितरण करने से पहले शाखा में ट्रंक परिवर्तनों को सिंक नहीं करते हैं तो आपको संघर्ष समस्या होगी। हम शाखा को सिंक्रनाइज़ करते रहते हैं और कई पुनर्गठन के बाद शाखा का पुन: उपयोग जारी रखने में कोई समस्या नहीं होती है।

संपादित 2

एक reintegrated शाखा जिंदा (http://svnbook.red-bean.com/en/1.7/svn.branchmerge.advanced.html)

रखते हुए को नष्ट करने और एकीकरण के बाद एक शाखा को पुन: बनाने के लिए एक विकल्प नहीं है। यह समझने के लिए कि यह क्यों काम करता है आपको यह समझने की आवश्यकता है कि शाखा फिर से शुरू होने के बाद आगे के उपयोग के लिए क्यों अनुपयुक्त है।

+0

जैसा कि मैंने समझा, पुनर्संरचना के बाद फीचर शाखा को हटाने की सिफारिश इस बात पर ध्यान दिए बिना कि क्या आप शाखाओं को सिंक करते हैं या नहीं। – ripper234

+0

मैं मानता हूं कि यह सिफारिश है। मैं बस इतना कह रहा हूं कि हम बिना किसी समस्या के इस तरह से कर रहे हैं। –

4

हाँ, आप एक कर सकते हैं रिकार्ड केवल शाखा जीवित रखने के लिए विलय।

में सबवर्सन बुक Keeping a reintegrated branch alive देखें।