2012-07-11 19 views
6

SVN "कोई लक्ष्य के साथ दो शीर्ष-स्तर की रिपोर्ट" को हल करने मैं एक SVN रेपोसबसे अच्छा तरीका है

http://path/to/svn/trunk 

है और

http://path/to/svn/branch 

करने के लिए इसे से कुछ चीजें branched है

का उपयोग करके
svn copy http://path/to/svn/trunk/site1 http://path/to/svn/branch/site1 -m 'message' 

मैंने शाखा पर बहुत सारे काम किए हैं लेकिन इसे वापस विलय कर दिया है, क्योंकि यह इसके लिए तैयार नहीं है।

हालांकि, मैं अब ट्रंक में परिवर्तन के लिए प्रतिबद्ध करने की जरूरत है, और मैं जब इतना

> svn commit -m 'some message' 
svn: Commit failed (details follow): 
svn: Aborting commit: '/path/to/svn/trunk' remains in tree-conflict 

करने के लिए मैंने सोचा कि मैं svn up/पथ पर/to/ट्रंक लेकिन निम्नलिखित चाहिए प्रयास करते समय निम्न हो रही है

> svn up 
svn: Two top-level reports with no target 

एक --force होता स्थिति में सुधार में मदद नहीं करता।

svn status परिणाम + की बहुत सारी में बदली हुई फाइलों

> svn status 
M + site1/changedfile 

किसी को भी करने से पहले यह अनुभव किया है के बगल में है, और आप हाथ में इस मुद्दे पर कुछ प्रकाश डाला सकता है?

उत्तर

2

जिस तरह से मैं हल करने यह एक अस्थायी स्थान पर /path/to/svn/trunk में प्रभावित निर्देशिका ले जाकर था कामयाब रहे, और ट्रंक पर एक svn up किया था।

यह मेरी फ़ाइलों के पुराने संस्करणों में खींचा गया। मैं तो मैन्युअल रूप से फ़ाइलों को भर में प्रतिबद्ध नहीं कर सकता है की नकल की, और एक बार वे घर में वापस थे सब कुछ उम्मीद के रूप में काम किया।

0

Google खोज करना, उत्तर (उदा। this SO thread) सुझाव देते हैं कि आपने कुछ बदलाव किए हैं जो svn को परेशान करते हैं (उदाहरण के लिए फ़ाइल में संशोधन किया गया है, फिर इसे बीच में किए बिना स्थानांतरित किया गया है)।

सबसे अच्छा फिक्स मैं अब तक पा सकता हूं ट्रंक का ताज़ा चेक-आउट करना, मैन्युअल रूप से इसमें परिवर्तन मर्ज करना (उदाहरण के लिए यदि आप विंडोज पर हैं तो WinMerge के माध्यम से) - विभिन्न प्रकार के परिवर्तनों के बीच रास्ते पर काम करना एक ही फाइल/निर्देशिका के लिए - अपने वर्तमान कार्यशील प्रतिलिपि से; फिर उस चेकआउट करते हैं। (इस बिंदु पर आप या तो इस संशोधित ताजा चेकआउट के साथ अपनी वर्तमान कामकाजी प्रतिलिपि को प्रतिस्थापित कर सकते हैं या कार्यशील प्रतिलिपि में सभी परिवर्तनों को त्याग सकते हैं और इसे आपके द्वारा किए गए परिवर्तनों के साथ समन्वयित करने के लिए एक अपडेट कर सकते हैं)

+1

प्रतिक्रिया के लिए धन्यवाद, लेकिन मैं एक नया चेकआउट किए बिना इस समस्या को हल करने का एक तरीका ढूंढ रहा हूं। –

+0

@ darryn.ten - जिज्ञासा से बाहर: ताजा प्रति दृष्टिकोण के साथ क्या गलत है? – Attila

+1

डिस्क स्थान की कमी, ट्रंक का आकार और svn की गति (हाहा)। –

0

'एस' एक स्विच किए गए यूआरएल स्थिति को चिह्नित करता है - निर्देशिका का यूआरएल आपकी वर्तमान कार्यशील निर्देशिका से मेल नहीं खाता है। यह किसी मर्ज या एक स्विच है कि अपने कार्य को पूरा नहीं किया था की वजह से हो सकता है। इस परिदृश्य में मैं आमतौर पर निम्नलिखित करता हूं:

निम्न चरणों के लिए, निर्देशिका 'problem_dir' प्रभावित निर्देशिका हो।

svn switch ^/trunk/problem_dir problem_dir 

एक बार सभी निर्देशिकाओं:

सबसे पहले मैं जहां निर्देशिका भी बदला गया है

svn info problem_dir 

यदि यह एक और यूआरएल को इंगित करता है पता लगाना, फिर URL आप इसे ध्यान खींचना चाहते हैं करने के लिए स्विच सही यूआरएल को इंगित कर रहे हैं, आप वापस कर सकते हैं और अपडेट कर सकते हैं:

svn revert . -R 
svn update 

आयात चींटी! एक बार काम करने में बदलाव करने के बाद ही एक रिकर्सिव रिवर्ट करें।

अगर यह काम नहीं करता है, तो अंतिम उपाय होगा

rm -rf . 
svn update 
1

के बाद मेरे लिए काम किया निम्नलिखित असफल svn mv https://path1 https://path2 एक:

svn revert --depth infinity path2 
svn update path2 

यह बचा मुझे ताजा चेकआउट क्या करने वाले कि दूसरों ने सुझाव दिया है। प्रक्रिया में मेरे कोई भी परिवर्तन खो गया नहीं था।

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