2010-11-11 13 views
16

मैं "svnsync init" (उदाहरण #https: // जो भी svn: // जो कुछ भी हो) का उपयोग करते हुए दर्पण भंडार बनाते समय दर्ज किया गया एक उपवर्तन यूआरएल कैसे बदल सकता है?svnsync में svn url को कैसे बदलें?

svnsync नया यूआरएल के साथ फिर से init लेकिन

svnsync init file:///<path_to_mirror> http:///<new_url> 
svnsync: Destination repository is already synchronizing from 'http:///<old_url>' 
+0

आप बाद में सिंक के लिए नए यूआरएल साथ svnsync उपयोग करने का प्रयास किया था। मेरा आंत महसूस करता है कि यह काम करना चाहिए। –

+0

नया यूआरएल के साथ init svnsync फिर से फोन करने की कोशिश की थी, लेकिन यह काम नहीं करता है - svnsync का कहना है कि दर्पण भंडार के साथ समन्वयित है "पुराने" यूआरएल – sdu

उत्तर

19

सिंक-से URL दर्पण रेपो में एक revprop के रूप में संग्रहीत किया जाता है भागने की कोशिश की। दर्पण भंडार (मेरी स्थिति) के साथ मशीन पर हैं, तो svnlook बदलने के लिए देखने के लिए उपकरण और svnadmin का उपयोग करें:

[email protected][~]$ svnlook pg --revprop -r0 /path/to/mirror/repo svn:sync-from-url 
svn+ssh://svn.abc.com:1234/svn/[email protected][~]$ 

आप रेपो का URL जो आपके दर्पण वर्तमान में समन्वयित हो रहा है देखेंगे । उपरोक्त उदाहरण में, मास्टर रेपो यूआरएल के साथ समाप्त होता है ... /foo। अंत में इसकी एक नई लाइन नहीं हो सकती है, इसलिए आपका शेल प्रॉम्प्ट का पालन किया जा सकता है। अब आपको इसे फ़ाइल में लाने की आवश्यकता है क्योंकि svnadmin सुधार के लिए इनपुट के लिए फ़ाइल का उपयोग करता है।

[email protected][~]$ svnlook pg --revprop -r0 /path/to/mirror/repo svn:sync-from-url > t.txt 
[email protected][~]$ 

अब t.txt संपादित मास्टर रेपो के लिए यूआरएल को बदलने के लिए। इससे t.txt के अंत में एक नई लाइन दिखाई दे सकती है और परिणामस्वरूप svnsync से अस्पष्ट/अर्थहीन त्रुटि संदेश हो सकते हैं। तो यह से छुटकारा पाने:

[email protected][~]$ cat t.txt | tr -d '\n' > t2.txt 

नोट है कि अब हम t2.txt है जो स्वच्छ फ़ाइल है। तो बस संपादित और स्वच्छ फ़ाइल की सामग्री को बदलने के लिए revprop svnadmin का उपयोग करें:

[email protected][~]$ svnadmin setrevprop /path/to/mirror/repo -r0 svn:sync-from-url t2.txt 
[email protected][~]$ 

ध्यान दें कि t2.txt प्रयोग किया जाता है t.txt नहीं। अंत में, अपने परिवर्तनों की जांच:

[email protected][~]$ svnlook pg --revprop -r0 /path/to/mirror/repo svn:sync-from-url 
svn+ssh://svn.def.com:5678/svn/[email protected][~]$ 

आप कोई नई पंक्ति के साथ अपने नए रेपो यूआरएल तुरंत खोल प्रोम्प्ट दिखता है, देखना चाहिए। उपर्युक्त उदाहरण में यूआरएल foo में समाप्त होता है और तुरंत शेल प्रॉम्प्ट [email protected] [~] $ के बाद होता है। आप के मैनुअल में निर्देशों का पालन किया और एक पूर्व राजस्व-सहारा हुक है कि हर कोई लेकिन svnsync से इनकार करते हैं जोड़ा है

svn propset --revprop -r 0 svn:sync-from-url http://my.new/url url://to.my.repo 

:

+0

मैं इस चरणों का पालन किया और त्रुटि मिलती है जब svnsync सिंक/रेपो/पथ की कोशिश कर रहा svnsync: रिपोजिटरी यूयूआईडी '72fa8357-5795-f84a-b72d-10573eb4d6c2' अपेक्षित यूयूआईडी 'a3f6904a-36ca-4011-b160-aab731c98da0' से मेल नहीं खाता – popalka

+2

फ़ाइल डीबी \ revprops \ 0 \ 0 संशोधित करें और svn बदलें: sync-from- यूयूआईडी संपत्ति। अब ठीक है – popalka

13

आप खाते का उपयोग करते आप के साथ आप बस का उपयोग कर सकते svnsync को चलाने के लिए उपयोग करें प्रयोक्ता को संशोधित करने के लिए उपयोगकर्ता को संशोधित करना चाहिए।

0

Svnsync भंडार दर्पण के पहले संशोधन के संशोधन गुणों में दूरस्थ भंडार URL संग्रहीत करता है। इस प्रकार, आप इस तरह अपने स्थानीय दर्पण पर वर्तमान में कॉन्फ़िगर भंडार यूआरएल view कर सकते हैं:

$ svn pg --revprop -r0 svn:sync-from-url file:///path/to/svn-mirror 

दूरस्थ भंडार यूआरएल तुम सिर्फ change the revision property करने के लिए है बदलने के लिए इसका मतलब है कि।

$ svn ps --revprop -r0 svn:sync-from-url https://svn.example.org/repo \ 
     file:///path/to/svn-mirror/ 

उदाहरण आउटपुट: उदाहरण के लिए:

property 'svn:sync-from-url' set on repository revision 0 
संबंधित मुद्दे