2010-01-14 16 views
17

के बाद विलय नहीं कर सकता है, मैं सबवर्सन के लिए बहुत नया हूं, लेकिन मैंने कई संशोधन नियंत्रण प्रणालियों का उपयोग किया है जैसे कि वर्षों के लिए ClearCase।सबवर्सन

मेरे मालिक ने मुझे इस परियोजना को ठीक करने के लिए कहा ताकि इसे चींटी के बजाय मेवेन के साथ बनाया जा सके। src/com से src/main/java/com को स्थानांतरित करने के लिए मुझे महत्वपूर्ण चीजों में से एक था, और test/com से src/test/java/com पर ले जाएं, जिसे मैंने svn mv कमांड का उपयोग किया था। मैंने मूर्खता से माना कि चूंकि मैंने निर्देशिकाओं को स्थानांतरित करने के लिए सबवर्जन कमांड का उपयोग किया था, इसलिए सबवर्सन को पता चलेगा कि चीजें चली गई हैं। और जब मैंने अपनी शाखा को ट्रंक में विलय कर दिया, तो यह काम पर दिखाई दिया। लेकिन अब किसी और ने एक शाखा पर काम खत्म कर दिया है जिसे उसने मेरे काम से पहले ब्रांच किया था। इसलिए हम ट्रंक में अपने सामान विलय करने के लिए जाना है, और मूल रूप से सबवर्सन लगता है प्रतीत होता है "ठीक है, वह परिवर्तन src/com/foo/bar/baz.java करने के लिए बनाया है, लेकिन तो यह अप्रासंगिक है कि निर्देशिका किसी भी अधिक मौजूद नहीं है, है, इसलिए इसे त्यागने" के बजाय मेरी अपेक्षा की है, जो "ठीक है, वह परिवर्तन src/com/foo/bar/baz.java करने के लिए बनाया है, लेकिन src/com ले जाया गया है, तो मैं मर्ज करने के लिए है कि src/main/java/com/foo/bar/baz.java में की जरूरत है" था

वहाँ सबवर्सन संशोधन प्रबंधन करते हैं, या मैं मैन्युअल रूप से अगले दो दिनों तक इस आदमी के परिवर्तन विलय बनने जा रही हूँ बनाने के लिए एक तरीका है?

+1

मुझे अभी भी इस "फीचर" से थोड़ा सा मिला है। और मैन्युअल रूप से विलय करने वाले दुःस्वप्न से बचने की कोशिश कर रहा हूं। – granadaCoder

उत्तर

12

सीधे अपने सवाल का जवाब करने के लिए:

वहाँ सबवर्सन संशोधन प्रबंधन करते हैं बनाने के लिए एक रास्ता है, या मैं मैन्युअल रूप से अगले दो दिनों तक इस आदमी के परिवर्तन विलय होने जा रहा हूँ?

आपको इसे अपने आप थोड़ा आसान बनाने में सक्षम होना चाहिए।

एक बात है कि आप दर्द से कुछ कम करने के लिए क्या कर सकते हैं (इस प्रकार एक लेआउट संभालने)

/branch/foo/src/com 
/branch/foo/test/com 
/trunk/src/main/java/com 
/trunk/src/test/java/com 

इससे पहले कि आप src को src/मुख्य/जावा/कॉम और परीक्षण/कॉम के लिए ले जाया src/कॉम/परीक्षण/जावा/आप कर सकते थे कॉम:

cd $TRUNK 
svn merge -r N:M http://server/branch/foo . 

तुम अब क्या कर सकता है क्या है:

cd $TRUNK 
svn merge -r N:M http://server/branch/foo/src/com src/main/java/com 
svn merge -r N:M http://server/branch/foo/test/com src/test/java/com 

आशा इस मदद करता है आप कुछ को बचाने के लिए पहर।

+0

आह आदमी, मेरी इच्छा है कि मैंने मैन्युअल रूप से सब कुछ विलय करने से पहले इसे देखा होगा। –

2

यह एक बार की समस्या की तरह लगता है। मेरा सुझाव है कि आप फ़ाइल में अपने परिवर्तनों को सहेजने के लिए svn diff > /to/some/file.patch (या सामान्य diff) का उपयोग कर सकते हैं, फिर इसे patch -p0 < /to/some/file.path के साथ अपने स्थानांतरित ट्रंक पर लागू करें।

0

किसी ने इस सॉफ़्टवेयर को आजमाया है? xMerge

इस प्लग SmartSVN है, लेकिन लगता है कि यह चाल है। यदि कोई इसका उपयोग कर रहा है तो मैं इसकी आभारी हूं यदि मैं इसकी समीक्षा भेजूं।

0

मुझे बस एक ही समस्या थी और मैंने इसे गीट के साथ हल किया। मैं , src/test और resources के लिए svn merge -r N:M http://server/branch/foo/test/com src/test/java/com के साथ serveral मॉड्यूल मर्ज करना नहीं चाहता था।

तो मैंने git svn clone file:///some/repo -T trunk -b branches -t tags का उपयोग किया।इस तरह मैं गिट मास्टरsvn trunk के साथ सिंक में रखने में सक्षम था और इसे गिट शाखा के साथ विलय कर सकता था। जब मैं किया गया, तो मैंने गिट शाखा से गिट मास्टर और वहां से svn ट्रंक विलय कर दिया।