2009-07-27 16 views
27

मुझे नहीं पता कि जब svn टीम ने हमारे पेड़ के संघर्ष को अंजाम देने का फैसला किया था, लेकिन यह पूरी तरह से svn की विलय कार्यक्षमता को तोड़ दिया है।वृक्ष संघर्षों से टूटी हुई कार्यक्षमता विलय

मेरे पास एक शाखा है और मैं ट्रंक से नवीनतम परिवर्तनों को शाखा में विलय करना चाहता हूं। मैंने पहले से ही ऐसा विलय किया है, लेकिन यह एक पेड़ संघर्ष की वजह से विफल रहता है। यहाँ आदेश है:

$ svn --force merge -r 3185:3192 svn://chamar2/rx-services/SAMS . 
svn: Attempt to add tree conflict that already exists 

पहली बार मैं (--force के बिना) इस मर्ज की कोशिश की तो वह केवल पेड़ संघर्ष बनाया है और कुछ भी सम्मिलित नहीं किए गए। अब यह सिर्फ उपरोक्त संदेश की रिपोर्ट करता है।

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

जब उन्होंने ऐसा किया तो वे क्या सोच रहे थे?

मुझे पेड़ के संघर्ष के कारण किसी भी उपयोगी जानकारी नहीं मिली है और अब मैं काम कैसे जारी रख सकता हूं कि svn ने इन चीजों को बनाया है।

क्या एसवीएन को पेड़ के संघर्षों को भूलने के लिए कहने का कोई तरीका है और बस इस तरह की विलय करें?

मैं 1.6 क्लाइंट और एक पुराना svn सर्वर (शायद 1.3.1) का उपयोग कर रहा हूं।

+2

एसवीएन ने एक विशेषता के रूप में वृक्ष संघर्ष नहीं जोड़ा; वे संशोधन नियंत्रण की प्रकृति के लिए अंतर्निहित हैं। अब, आप यह मुद्दा बना सकते हैं कि एसवीएन पेड़ के संघर्ष के बारे में एक खराब नौकरी प्रबंधन और/या संदेश भेजता है, लेकिन कम से कम यह उन्हें पहचानता है और आपको यह बताने की कोशिश करता है कि क्या हो रहा है। –

उत्तर

12

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

वृक्ष संघर्षों ने नए संदेश अर्थशास्त्र पेश किए हैं जो कुछ उपयोग करने में लगेगा।

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

ऐसा लगता है कि ज्यादातर मामलों में आप पेड़ के संघर्ष को हल करते हैं, और इन मामलों में ऐसा लगता है कि पेड़ के संघर्ष सिर्फ शोर हैं।

मार्क फिपार्ड का कहना है कि एक पुराना सर्वर संस्करण पेड़ के संघर्ष का कारण नहीं बनता है। सर्वर को केवल तभी अपडेट किया जाना चाहिए यदि आप मर्ज ट्रैकिंग समर्थन चाहते हैं और आपका सर्वर प्री-1.5 है। जाहिरा तौर पर विलय ट्रैकिंग केवल एक चीज बड़े SVN सर्वर से लापता है:

http://eclipse.open.collab.net/ds/viewMessage.do?dsForumId=62&dsMessageId=332448 
+1

वृक्ष संघर्ष: एक निर्देशिका के रूप में प्रत्येक उपदिर के साथ एक पंक्ति फ़ाइल के रूप में एक निर्देशिका के रूप में सोचें। अब, उस फ़ाइल से लाइनों को जोड़ें और हटाएं - विलय करें - आपको एक संघर्ष मिलेगा। पेड़ संघर्षों के साथ यह वास्तव में क्या हो रहा है, यह सिर्फ विलय संपादक अस्तित्व में नहीं है (जाहिर है कि जवाब सही जगह पर डीआईआर की प्रतिलिपि बनाना और हल के रूप में चिह्नित करना है)। – gbjbaanb

2

मेरे पास एक जंगली अनुमान है कि आप 1.6 क्लाइंट और 1.3 सर्वर के बीच एक खराब बातचीत देख रहे हैं। पेड़ संघर्ष का पता लगाने 1.6 की एक नई सुविधा है। इसके अलावा, मर्ज समर्थन 1.5 में बदल दिया गया है (और तब अधिक उपयोग करने योग्य बना दिया गया है)।

मैं सर्वर को अपग्रेड करने और 1.6 में रेपो प्रारूप को चलाने का प्रयास करता हूं, कोशिश करने के लिए एक और चीज 1.5 (कोई पेड़ संघर्ष नहीं) या 1.4 (और कोई नया विलय न तो) क्लाइंट का उपयोग करना है।

फिर, यह सब एक अनुमान है और वास्तव में उपयोगी नहीं हो सकता है ...

+0

मैंने अपने क्लाइंट को 1.5 तक डाउनग्रेड करने के बारे में सोचा था, लेकिन एसवीएन के पास प्रत्येक नए संस्करण के साथ काम कर रहे कॉपी प्रारूप को बदलने की यह बुरा आदत है और मेरी 1.6 कार्यशील प्रति 1.5 क्लाइंट के साथ काम नहीं करेगी। मुझे क्लाइंट को डाउनग्रेड करना पड़ सकता है और एक नया चेकआउट करना पड़ सकता है। –

10

SVN: पेड़ संघर्ष है कि पहले से ही मौजूद

सबवर्सन जोड़ने का प्रयास शिकायत कर रहा है क्योंकि के बाद आप एक किया मर्ज करें जो एक संघर्ष उत्पन्न करता है, फिर आप वही विलय फिर से किया। एसवीएन ने एक संघर्ष जोड़ने की कोशिश की लेकिन ध्यान दिया कि संघर्ष पहले से ही मर्ज ऑपरेशन द्वारा बनाया गया है। तो यह सही ढंग से एक चेतावनी आउटपुट करता है।

यदि आप विलय ऑपरेशन करते हैं और आप परिणाम से खुश नहीं हैं, तो कुछ और करने की कोशिश करने से पहले आपको स्थानीय परिवर्तनों को वापस करना चाहिए।

मूल वृक्ष संघर्ष के लिए: यह समझने के लिए कि पुराने ग्राहकों से व्यवहार अलग क्यों है और इस तरह के संघर्षों को हल करने का तरीका, आपको svn पुस्तक में section on tree conflicts पढ़ना होगा। कछुआ एसवीएन मैनुअल में भी एक अच्छा topic on tree conflicts है।

+4

मुझे अभी एक ब्रांड नया विलय करने के लिए "पेड़ संघर्ष जोड़ने का प्रयास है जो पहले से मौजूद है"। "स्पूल किए गए रिपोर्ट अनुरोध प्रतिक्रिया पढ़ने में त्रुटि" द्वारा पीछा किया गया – fiddlesticks

+2

-1: मुझे यह त्रुटि किसी विलय के साथ एक नए विलय पर प्राप्त नहीं होती है। मेरा मानना ​​है कि इस मुद्दे के कारण एक ही विलय में दो पेड़ संघर्ष हैं। – darreljnz

-1

अरे दोस्तों मैं बिल्कुल वैसा ही मुद्दा था, पेड़ संघर्ष जब मैं एक SVN मर्ज करने के लिए कोशिश कर रहा था। यह पता चला है कि लॉरीनास बिल्कुल सही था। ऐसा इसलिए हो रहा था क्योंकि svn भंडार एक पुराना संस्करण था। सर्वर पर मैं निर्देशिका {repopath} \ db \ प्रारूप में गया और प्रारूप फ़ाइल के अंदर "2" निहित था।

सभी मैंने किया था एक

svnadmin upgrade {repopath} 

जो बहुत दर्द रहित था था।

ऐसा करने के बाद, जब मैंने मर्ज ट्रैकिंग का उपयोग करने की कोशिश की, तो मुझे और पेड़ के संघर्ष नहीं मिले! पारितोषिक के लिए धन्यवाद!

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