2010-01-15 13 views
8

मैं अब कुछ समय से शाखाओं के साथ काम कर रहा हूं, लेकिन मैंने हमेशा वास्तविक विलय करने के लिए कमांड लाइन उपकरण का उपयोग किया। हालांकि, अब मुझे केवल ग्रहण से ही ऐसा करने की ज़रूरत है। ब्रांचिंग और विलय कई वर्षों से एससीएम सिस्टम की व्यापक रूप से उपयोग की जाने वाली विशेषता है, मुझे उम्मीद थी कि एक्लिप्स को इसके लिए अच्छा समर्थन मिलेगा, लेकिन ऐसा लगता है कि यह मामला नहीं है।ग्रहण में बड़ी परियोजनाओं को कैसे विलय करें?

वर्तमान में मैं एक उत्पाद है कि कई परियोजनाओं को एक साथ branched करने की आवश्यकता है के बनाया गया है पर काम कर रहा हूँ। जब एक शाखा में ट्रंक से परिवर्तन विलय, आम तौर पर मैं शाखाओं की जड़ से निम्नलिखित को निष्पादित होगा चेकआउट: (मैं यहाँ एक उदाहरण के रूप सबवर्सन उपयोग कर रहा हूँ, लेकिन समस्याओं के साथ-साथ अन्य एससीएम उपकरणों के लिए आवेदन करना चाहिए।)

svn update 
svn merge ^/trunk 
svn commit -m "Merged from trunk" 

हो सकता है कि बीच में कुछ मतभेद को ठीक है, लेकिन यह सब मैं क्या करना है के बारे में है।

  • मैं जड़ फ़ोल्डर की सामग्री, केवल अलग-अलग परियोजनाओं की सामग्री को मर्ज नहीं कर सकते हैं: हालांकि, ग्रहण में मैं केवल परियोजना स्तर है, जो निम्नलिखित नुकसान है पर विलय कर सकते हैं। बीटीडब्ल्यू अपडेट करने के लिए ही चला जाता है।
  • यदि परियोजना संरचना ट्रंक पर संशोधित की गई है (उदा। एक नई परियोजना को जोड़ा गया है), तो उन परिवर्तनों को विलय नहीं किया जाता है। अद्यतन के लिए, फिर से।
  • विलय परमाणु नहीं है। यदि मर्ज के दौरान ट्रंक पर कोई प्रतिबद्धता होती है, तो मेरी कामकाजी प्रति में चीजें गड़बड़ हो सकती हैं। (यह चारों ओर आसानी से काम किया जा सकता है लेकिन नहीं।)

ये सीमाएं तथ्य यह है कि ग्रहण, रूट फ़ोल्डर के बारे में पता नहीं है के रूप में यह SVN से अलग-अलग परियोजनाओं द्वारा चेक आउट करने से बिल्कुल स्पष्ट लग रहे हैं।

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

+1

जो SVN प्लगइन आप ग्रहण में उपयोग कर रहे हैं? –

+0

मैं वर्तमान में एसवीएनकिट 1.3 के साथ सबवर्सिव का उपयोग कर रहा हूं, लेकिन मुझे नहीं लगता कि इन समस्याओं के प्लगइन के साथ कुछ भी करना है, या एसवीएन के साथ ही। या, Mercurial, या शायद सीवीएस के लिए बेहतर समर्थन है? –

उत्तर

3

आपका अवलोकन सही है। ग्रहण केवल परियोजना स्तर पर svn जैसे "टीम" संचालन का प्रबंधन करता है। तो, आप कुछ भी याद आ रही नहीं कर रहे हैं ;-)

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

0

जो आप उल्लेख करते हैं वह वास्तव में एक सीमा है। मैं आम तौर पर पूरे फ़ोल्डर संरचना की जांच करता हूं और फिर व्यक्तिगत परियोजनाओं को ग्रहण में आयात करता हूं। जब मुझे पूरे भंडार पर एक ऑपरेशन करने की आवश्यकता होती है, तो मैं इसे कमांड लाइन या कछुआ एसवीएन का उपयोग करके ग्रहण से बाहर करता हूं।

यह भी दर्द है, कि जब कोई नया प्लग-इन जोड़ता है (मैं एक ग्रहण आरसीपी अनुप्रयोग विकसित कर रहा हूं), मुझे इसे मैन्युअल रूप से प्रोजेक्ट सूची में जोड़ना होगा क्योंकि ग्रहण सभी की जड़ के बारे में नहीं जानता है परियोजनाओं।

0

ग्रहण में, एसवीएन शाखाकरण और विलय एकल परियोजनाओं के लिए अच्छी तरह से काम करता है, मुझे ब्रांच किए गए एकल परियोजनाओं से निपटने के दौरान कोई समस्या नहीं है और विलय करने की आवश्यकता है।

हालांकि, यदि एकाधिक परियोजनाओं को एक इकाई के साथ निपटाया जाना आवश्यक है, तो ग्रहण में सीधे निपटने के लिए ऐसा प्रतीत नहीं होता है, प्रत्येक परियोजना को व्यक्तिगत रूप से निपटाया जाना चाहिए।

3

मल्टी-प्रोजेक्ट विलय ग्रहण प्लगइन कोलाबनेट सबवर्जन मर्ज क्लाइंट के साथ किया जा सकता है। आप इसे com.collabnet.subversion पर पा सकते हैं। विलय करें।

वरीयताओं में यह सक्षम करें:

Eclipse Preferences > Team > SVN > Diff/Merge 

और वहाँ: Merge Implementation: CollabNet Desktop

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