यदि केवल X को वाई के माध्यम से संशोधित किया गया था, तो पुनर्निरोधक का उपयोग केवल तभी किया जा सकता है, जब स्रोत को पुनः प्राप्त करने के लिए <URL> से विलय कर दिया गया हो, लेकिन ऐसा नहीं है


127

कछुआ 1.6 के साथ SVN शाखाओं का उपयोग किया गया। मैं समय-समय पर ट्रंक को शाखा में विलय कर रहा हूं ताकि इसे अद्यतित रखा जा सके।

आज, मुझे लगा कि मैं शाखा को फिर से स्थापित करूंगा। मैंने कछुए से "एक शाखा को फिर से संगठित करना" चुना और निम्नलिखित त्रुटि संदेश प्राप्त किया:

रिइनग्रेट का उपयोग केवल तभी किया जा सकता है जब 5019 के माध्यम से संशोधन 4709 को पहले http://subversion/svn/saxdev/trunkरीइनग्रेगेट स्रोत से मिला दिया गया हो, लेकिन ऐसा नहीं है

यह इस तरह के रूप में विवरण के साथ लगभग 50 फाइलें सूचीबद्ध:

Error: branches/qst/kobalt/sax/businessobjects/util/HistoryParent.java

Error: Missing ranges: /trunk/kobalt/sax/businessobjects/util/HistoryParent.java:4709-5018

संशोधन 5019 हेड रिवीजन है। संशोधन ४ Re३ I संशोधन था जब मैंने एक शाखा बनाई।

मेरे पास 4737 संशोधन के लिए लॉग से है

क्रिया: जोड़ा गया पथ: / शाखाएँ / पथ से कॉपी करें: / ट्रंक

मेरे लिए, वह त्रुटि संदेश कहता है कि शाखा मूल रूप से ट्रंक से नहीं थी, जो सच नहीं है।

कोई विचार?


1
ठीक है। मैं वास्तव में अब तोड़फोड़ का उपयोग नहीं करता, लेकिन इसके लिए अपने शब्द ले जाएगा!
कॉलिनजवेब

1
धन्यवाद दोस्त। मुझे लगता है कि पेज इसके लिए बेहतर है।
ग्रे

जवाबों:


138

यदि आप एक शाखा पर काम कर रहे हैं और इसे दूसरों के साथ अद्यतित रख रहे हैं, तो जब आप ट्रंक की एक कार्य प्रतिलिपि बनाते हैं और यदि आप इस तरह से एक संदेश प्राप्त करते हैं, तो अपनी शाखा को पुनः प्राप्त करने का प्रयास करने के लिए आपके द्वारा उपयोग किए जाने वाले अन्य काम हो सकते हैं:

$ svn merge --reintegrate https://server.blah/source/orb/branches/bronze_services
svn: Reintegrate can only be used if revisions 650 through 694 were previously merged from
     https://server.blah/source/orb/trunk to the reintegrate source, but this is not the
     case:
  branches/bronze_services/occl
    Missing ranges: /trunk/occl:650-693

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

$ svn merge -r 650:693 https://server.blah/source/orb/trunk
$ svn commit -m 'merged revisions 650:693 from trunk'
    Sending        occl
Committed revision 695.

एक बार ऐसा करने के बाद, मैं ट्रंक की वर्किंग कॉपी पर वापस जाने में सक्षम हो गया और बिना किसी समस्या के शाखा को फिर से स्थापित किया।

आशा है कि ये आपकी मदद करेगा


16
अच्छा! "बस क्या तोड़फोड़ संदेश में इशारा कर रहा है"। :)
एडम

7
मैं सहमत हूं, अधिक लोकप्रिय उत्तर आकर्षक है, लेकिन शायद इसे सही ढंग से ठीक करने के लिए बेहतर है। मुझे विशिष्ट समस्याग्रस्त फ़ाइल पर जाना पड़ा और svn mergeइसे ट्रंक से।
स्टीव केहलेट

1
यह मेरे लिए बहुत अच्छा काम किया। मुख्य चाल यह थी कि कछुआ मुझे समस्या संशोधन नहीं बता रहा था। अपनी कमांड लाइन svn क्लाइंट को अपग्रेड करने के बाद मैं इसे प्राप्त करने में सक्षम था जैसे कि मुझे आपके पास एक संदेश देना है, और फिर समस्या संशोधन को मर्ज करने और ट्रंक पर वापस जाने में सक्षम था।
user12861

7
यह मेरे लिए काम नहीं करता था क्योंकि सूचीबद्ध "लापता" विलय पहले ही शाखा (पुनर्निवेश स्रोत) में किया जा चुका था।
सैम

6
हालांकि यह जवाब उचित लगता है, यह मेरे लिए काम नहीं किया। मुझे वही त्रुटि संदेश मिलते रहे। मदद की, svn को हटाने के लिए क्या किया गया था: सूचीबद्ध फ़ाइलों से मर्जिनफाइ गुण, जैसे स्वीकृत उत्तर का सुझाव दे रहा है।
जेनी ओ'रेली

85

[[हालांकि मेरे समाधान ने अतीत में मेरे लिए काम किया है, लेकिन यह आधुनिक एसवीएन ग्राहकों के साथ अनुचित परिणाम पैदा कर सकता है। हमारे मामले में मर्ज की गड़बड़ी ऑटोमेशन के बायप्रोडक्ट के रूप में प्रतीत हो रही थी जो हमारे एसवीएन इतिहास को भ्रमित कर रहे थे और वास्तविक गतिविधि को नहीं। मैं इसे यहाँ पोस्टरिटी के लिए छोड़ रहा हूँ लेकिन कृपया इसके बजाय स्वीकृत उत्तर पर विचार करें। ]]

मेरे लिए समाधान यह था svn:mergeinfoकि किसी भी गुण को हटा दिया जाए जो किसी भी तरह पदानुक्रम में अलग-अलग फाइलों से जुड़ा हो।

svn merge --reintegrate svn+ssh://svn/usr/local/svn/repos/all/trunk 
svn: Reintegrate can only be used if revisions 18765 through 18921 were
    previously merged from svn+ssh://svn/usr/local/svn/repos/all/trunk to the
    reintegrate source, but this is not the case:
trunk/proj/src/main/java/com/foo/furniture.java
Missing ranges: /trunk/proj/src/main/java/com/foo/furniture.java:18765-18920

आप जो कर सकते हैं वह मर्जिनफो जानकारी वाली फाइलों को खोजने के लिए:

cd ~/svn/branches/2.7
svn propget -R svn:mergeinfo .

तब आप मर्जिनफॉफ़ गुण हटा सकते हैं:

svn propdel svn:mergeinfo proj/src/main/java/com/foo/furniture.java ...
svn commit -m 'removed mergeinfo' proj/src/main/java/com/foo/furniture.java ...

मैंने इसे पूरा करने के बाद, मेरे मर्ज को ठीक निष्पादित किया।


2
इससे वास्तव में मुझे अपने मुद्दे को हल करने में मदद मिली, लेकिन मेरा रूट फ़ोल्डर में ऐसा करने के बजाय एक बाल फ़ोल्डर से संशोधन को मर्ज करने के कारण था। मेरा मुद्दा था - मैंने मर्ज का प्रदर्शन किया था, लेकिन रूट फ़ोल्डर ने यह नहीं पहचाना था कि मर्ज हुआ था, इसका मतलब यह था कि मुझे लापता संशोधन संख्या के साथ मर्जिनोफ़ प्रोप को मैन्युअल रूप से अपडेट करना था। ध्यान दें कि मैं केवल ऐसा कर सकता था क्योंकि संशोधन के लिए कोई अन्य फ़ाइल परिवर्तन नहीं थे और अप्रत्याशित व्यवहार का कारण होगा यदि अन्य फ़ाइलों को विलय करने की आवश्यकता है - यदि यह स्थिति है तो आपको संशोधन को फिर से मर्ज करने की आवश्यकता होगी।
एक्ज़ीक्यूशनऑर्डर

5
TortoiseSVN में, आप फ़ाइल को राइट क्लिक कर सकते हैं, "TortoiseSVN" -> "गुण" का चयन करें और svn: mergeinfo प्रॉपर्टी को हटा दें।
StarCub

3
@StephenKennedy एक शाखा के पुन: उपयोग की समस्या में आप भाग रहे होंगे जो पहले से ही सुदृढ़ हो चुका है। यदि हां, तो svnbook.red-bean.com/en/1.7/… के अंतिम भाग की जाँच करें "एक बार - areintegrate मर्ज शाखा से ट्रंक करने के लिए किया जाता है, के साथ शुरू, शाखा अब आगे के काम के लिए उपयोग करने योग्य नहीं है।"
एलेक्सा

6
+1। आपको सभी मर्जिनफॉस को हटाने की आवश्यकता नहीं है; बस जो लापता रेंज है। TortoiseSVN त्रुटि आउटपुट को फ़िल्टर करके सिर्फ समस्या मर्जिनफ़ॉस को हटाने के तरीके के लिए मेरा उत्तर देखें ।
इयान सैमुअल मैकलीन एल्डर

4
-1। जब तक आप वास्तव में आप क्या कर रहे हैं इसके बारे में सुनिश्चित नहीं हैं, तब तक आपको मर्जिनॉफ गुण नहीं निकालना चाहिए। बहुत से लोग इसे पढ़ सकते हैं, इन गुणों को हटा सकते हैं, और अनजाने में अन्य समस्याओं का परिचय दे सकते हैं। पॉल व्हिप का बेहतर जवाब है।
बिस्मार्क

15

यदि आप अपनी शाखा को ट्रंक से पुन: व्यवस्थित करने का प्रयास करते हैं और आपको TortoiseSVN से इस तरह की त्रुटियां दिखाई देती हैं:

मर्ज़ रीइन्ग्रेटेट टेस्ट केवल फेल हो गया !: "रिइनग्रेटेट का उपयोग केवल तभी किया जा सकता है जब कुछ संशोधन पहले ट्रंक से मर्ज किए गए थे, लेकिन यह मामला नहीं है"

सभी टेक्स्ट को कॉपी करने के लिए एरर टेक्स्ट पर क्लिक करें और CTRL+ A, CTRL+ दबाएं C

पाठ को इस PowerShell स्क्रिप्ट के स्ट्रिंग में चिपकाएँ:

@"
Command: Reintegrate merge http://svn.cloudcorp.com/branches/myproject into C:\Users\iain\Documents\Repositories\CloudCorp\trunk  
Error: Reintegrate can only be used if revisions 18089 through 18612 were previously  
Error:  merged from http://svn.corp.skyscanner.local/svn/SkyScannerDatabase/trunk to  
Error:  the reintegrate source, but this is not the case:  
Error:    
Error:  branches/myproject/userdata/usermanagementservice  
Error:   
Error:     Missing ranges:  
Error:  /trunk/userdata/usermanagementservice:18365,18404  
Error:    
Error:  branches/myproject/userdata/auto_create_db.sql  
Error:   
Error:     Missing ranges:  
Error:  /trunk/userdata/auto_create_db.sql:18406  
Error:   
Error:    
Error:  branches/myproject/userdata/create_audit_tables_triggers_uds.sql  
Error:   
Error:     Missing ranges:  
Error:  /trunk/userdata/create_audit_tables_triggers_uds.sql:18406  
"@ -split "`n" |
? { $_ -match ('Error: +branches') } |
% { $_.Substring($_.IndexOf('userdata')) } |
% { "svn propdel svn:mergeinfo $_" }

स्क्रिप्ट समस्या मर्जिनफ़ो के साथ फ़ाइलों के सापेक्ष पथ निकालती है और हर एक को ठीक करने के लिए कमांड की एक सूची आउटपुट करती है।

आपको 'userdata'अपनी रिपॉजिटरी संरचना के अनुरूप मूल्य बदलना पड़ सकता है ।

समस्या मर्जिनफ़ॉस को निकालने के लिए आवश्यक आदेशों को आउटपुट करने के लिए स्क्रिप्ट निष्पादित करें।

इस उदाहरण में, स्क्रिप्ट इस आउटपुट का उत्पादन करेगी:

svn propdel svn:mergeinfo userdata/usermanagementservice  
svn propdel svn:mergeinfo userdata/auto_create_db.sql  
svn propdel svn:mergeinfo userdata/create_audit_tables_triggers_uds.sql  

कमांड प्रॉम्प्ट पर आप ब्रांच बेस (myproject) पर नेविगेट कर सकते हैं और कमांड को निष्पादित कर सकते हैं ताकि समस्या मर्जिनफॉस को हटा सकें।

आपको इस तरह आउटपुट देखना चाहिए:

property 'svn:mergeinfo' deleted from 'userdata\usermanagementservice'.
property 'svn:mergeinfo' deleted from 'userdata\auto_create_db.sql'.
property 'svn:mergeinfo' deleted from 'userdata\create_audit_tables_triggers_uds.sql'.

जैसा कि ग्रे के जवाब में , अब आपको शाखा में परिवर्तन करना चाहिए और फिर से पुन: व्यवस्थित करने का प्रयास करना चाहिए। इस समय यह काम करना चाहिए!


1
पुन: व्यवस्थित करने से बहुत पहले मैंने अपनी शाखा से ट्रंक में कुछ परिवर्तन नहीं किए (विलय नहीं किया) क्योंकि मैंने गलती से अपनी शाखा के लिए प्रतिबद्ध किया था जब मुझे ट्रंक के लिए प्रतिबद्ध होना था। क्या इन पुन: व्यवस्थित त्रुटियों के पीछे यह कारण हो सकता है?
इयान सैमुअल मैकलीन एल्डर

ठीक यही मेरे मामले में इस समस्या का कारण बना है। स्क्रिप्ट लिखने के लिए समय निकालने के लिए धन्यवाद!
सैम

@ सलाम आपको यह मददगार लगा। क्या आपको \s+इसे काम करने के लिए शाब्दिक स्थान को बदलने की आवश्यकता थी ?
इयान सैमुअल मैकलीन एल्डर

की तरह; यह +मेरे लिए काम करने के लिए अधिक आवश्यक था। मेरे मामले में, कुछ लाइनों में दो स्थान थे और अन्य में तीन थे, इसलिए रिक्त स्थान की चर संख्या के लिए समर्थन की आवश्यकता थी। मुझे यकीन नहीं है कि मैंने अंतरिक्ष को ए में क्यों बदल दिया \s; कि शायद जरूरत नहीं थी, इसलिए उस हिस्से के लिए खेद है!
सैम

@Sam कोई चिंता नहीं है, लेकिन मैं इसे अब तक के लिए एक शाब्दिक स्थान पर वापस बदल दूंगा जब तक कि TortoiseSVN इसे टैब या जो कुछ भी साथ मिलाना शुरू कर देता है :-) मैंने छोड़ दिया है +क्योंकि यह आपके लिए उपयोगी था।
इयान सैमुअल मैकलीन एल्डर

11

वास्तव में मैंने ट्रंक और शाखा को मेरी कार्यशील प्रतिलिपि में विलय करने के लिए "दो अलग शाखाओं को मर्ज" विकल्प का उपयोग करके इसे ठीक किया। फिर मैंने उसे ट्रंक के लिए प्रतिबद्ध किया।

अनोखा


4
यह उत्तर वास्तव में नहीं समझाता है कि आपने क्या किया। कोई उदाहरण नहीं, मैनुअल के आवश्यक अनुभाग का लिंक भी नहीं।
zigg

दृष्टिहीनता में, नहीं, यह नहीं है। हालांकि, इस सवाल के रूप में उसी दिन मेरा अपना जवाब था, यह कुछ महीनों के लिए सबसे अच्छा जवाब था। अगर आप अभी भी कछुआ SVN 1.6 का उपयोग करते हैं, तो यह समझ में आता है। मैंने ग्रे के उत्तर को स्वीकार किए गए उत्तर के रूप में स्वीकार कर लिया है।
कॉलिनजवेब

उदाहरण: svn मर्ज ^ / टैग / wx ^ / टैग / yz। 1.8 का उपयोग करते समय पुनर्सृजित त्रुटि मेरे लिए पॉप अप हो गई और ट्रंक में विलय हो गई जहां विलय स्रोत में एक विशिष्ट संशोधन था जो पहले ट्रंक से इसमें विलीन हो गया था। 1.8 ने निर्णय लिया कि पुनर्बलन मर्ज का प्रयास किया जा रहा है, जो यह नहीं था। 1.6 के साथ एक ड्राई-रन मर्ज ठीक काम करेगा, लेकिन दो URL मर्ज भी फिट बैठता है।
निक

1
सटीक परिदृश्य जो 1.8 के साथ विफल हो गया था, पैच रिलीज़ के लिए कुछ संशोधन से एक टैग की प्रतिलिपि बना रहा था, चेरी ने ट्रंक से बैकपोर्ट में एक मर्ज द्वारा पैच टैग में एक बदलाव करके, पैच किए गए टैग में एक और परिवर्तन किया, और उस बैक को विलय कर दिया। ट्रंक में। बेस टैग और पैच किए गए संस्करण के बीच के बदलावों को ट्रंक में वापस मर्ज करने की आवश्यकता है, और 2 URL मर्ज उसके लिए एक उपचार का काम करता है।
निक

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

6

कछुआ एसवीएन में मेरे लिए काम करने वाला कुछ: शाखा से सभी संशोधनों को मर्ज करने के बजाय, विशिष्ट श्रेणी चुनें और शाखा से मैन्युअल रूप से अपने सभी संशोधनों का चयन करें।


1
इस तरह के मूल विचार के लिए धन्यवाद। सभी उत्तरों में से, यह न केवल सबसे कम जटिल था, बल्कि यह एकमात्र ऐसा था जो मेरे लिए काम करता था।
Redman

3

जैसा एसवीएन आपको बता रहा है वैसा ही करें।

  1. एसवीएन आपको बता रही है कि रिवर्स से शाखा को मिलाएं
  2. शाखा से ट्रंक को फिर से विभाजित करें

2
मेरे लिए काम नहीं किया। शाखा में पहले से ही परिवर्तन मौजूद थे। आपके निर्देश ऐसे दिखते हैं जैसे उन्हें कुछ मामलों के लिए काम करना चाहिए, लेकिन वे एक धारणा पर आधारित प्रतीत होते हैं, इसलिए वे सार्वभौमिक नहीं लगते हैं।
सैम

1

इसी तरह के मामले के साथ मेरे अनुभव के लिए यहां भी मेरा जवाब देखें । मुझे यकीन नहीं है कि अगर यह आपकी समस्या का स्रोत है, लेकिन यह दिखता है कि सबवर्सन 1.8 में मर्जिनफॉ की समस्या है जब दो बदलाव एक दूसरे को रद्द करते हैं।


0

मैं इस मुद्दे में भाग गया। मैंने अपनी शाखा पर एक SVN लॉग किया था ताकि मैं अपनी शाखा में ट्रंक को मर्ज कर सकूं।

मैंने सभी संशोधन नोट किए।

फिर मैंने मैन्युअल रूप से संशोधनों को निर्दिष्ट करके अपनी शाखा का विलय कर दिया। मैंने उन सभी श्रेणियों को निर्दिष्ट किया था जिनमें संशोधन शामिल नहीं थे, मैं ट्रंक को मिला दिया गया था। मैं अपनी शाखा को विलय करने का प्रबंधन करता हूं।

मुझे मर्जिनफो पर कुछ श्रद्धा करनी थी, लेकिन मुझे अपना कोड मर्ज हो गया।

मैंने तुरंत अपनी शाखा हटा दी।


0

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


0

इस मुद्दे पर मिल गया

  • TortoiseSVN 1.9.7, 27907 बिल्ड - 64 बिट, 2017/08/08 19:34:38
  • तोड़फोड़ 1.9.7
  • अप्रैल 1.5.2
  • अप्रैल-उपयोग 1.5.4
  • सरफान 1.3.9
  • ओपनएसएसएल 1.0.2l 25 मई 2017
  • ज़ालिब 1.2.8
  • SQLite 3.14.1

उस शाखा पर राइट क्लिक करें जहाँ आप मर्ज करना चाहते हैं (लेकिन यह संदेश प्राप्त कर रहे हैं) और "रिविजन टू अपडेट" विकल्प चुनें और फिर खुलने वाले संवाद पर (नीचे स्क्रीनशॉट) उन संशोधनों का चयन करें और ठीक पर क्लिक करें - एक बार सभी पिछले संशोधनों को मर्ज कर दिया जाए, आपको यह संदेश नहीं मिलेगा

यहाँ छवि विवरण दर्ज करें

इसे जोड़ने के लिए जो कछुआ एसवीएन का उपयोग कर रहा है, उसकी सहायता के लिए


-1

मुझे पता है कि यह एक पुरानी पोस्ट है, लेकिन मैं इस मुद्दे को हल करने के लिए संघर्ष कर रहा था जब तक मुझे पता नहीं चला कि त्रुटि संदेश में सूचीबद्ध फ़ाइलों में SVN संपत्ति का मुद्दा है।

मैंने परेशान फाइलों पर सही क्लिक किया: TortoiseSVN> गुण, और पाया कि फ़ाइल में दो svn: mergeinfo थे, और उनमें से एक को डेटा से विरासत में नहीं मिला था। इसलिए मैंने उस मर्जिनफॉइ को हटा दिया।

मैं TortoiseSVN 1.12.2, 28653 बिल्ड - 64 बिट का उपयोग करता हूं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.