V2 को v3 FSFS तोड़फोड़ फाइलसिस्टम में कैसे अपग्रेड किया जाए


9

सबसे पहले, मैं ट्रंक (TortoiseSVN का उपयोग करके) के साथ एक शाखा को फिर से स्थापित करने की कोशिश कर रहा हूं, लेकिन मुझे त्रुटि संदेश मिल रहा है "क्वेरिंग मर्ज जानकारी के लिए FSFS फाइलसिस्टम स्कीमा के संस्करण 3 की आवश्यकता है; फाइलसिस्टम E / MyRepository / केवल संस्करण 2 का उपयोग करता है"।

क्या तोड़फोड़ के पूर्व संस्करणों में शाखाओं को फिर से स्थापित करना वास्तव में संभव नहीं था? या ऐसा करने का एक और तरीका है?

वैसे भी, मैं फ़ाइल सिस्टम को संस्करण 2 से संस्करण 3 में कैसे अपग्रेड कर सकता हूं?


जवाबों:


6

आपने तोड़फोड़ के संस्करण को निर्दिष्ट नहीं किया है कि आपका सर्वर चल रहा है। लेकिन आपके द्वारा प्रश्न में दिए गए संदेश के आधार पर, यह शायद 1.4.x संस्करण या अधिक पुराना है। मुझे याद नहीं है कि 1.4.x से 1.5.x में रूपांतरण के लिए कोई अपग्रेड कमांड दी गई थी या नहीं, लेकिन आपके रिपॉजिटरी को वर्जन 2 से वर्जन में लाने के लिए सुनिश्चित फाइल तरीका एक डंप और लोड है। लेकिन यह ज्यादा मायने नहीं रखता है, आप नवीनतम के साथ जाने के लिए वैसे भी 1.6.x स्थापित करना चाहते हैं। इसलिए, यहां आपको वे चरण करने हैं जो आपको करने हैं:

  • यदि पहले से ही नहीं है, तो तोड़फोड़ 1.6.x पर अपग्रेड करें
  • Svnadmin डंप का उपयोग करके अपने मौजूदा भंडार को डंप करें
  • एक नया रेपो बनाएं, इसे _new कहें
  • Svnadmin लोड का उपयोग करके पुराने के डंप के साथ अपने नए रेपो को लोड करें
  • पुराने रिपॉजिटरी से नई रिपॉजिटरी में यूआईडी फाइल कॉपी करें
  • पुराने रिपॉजिटरी का नाम बदलकर _old कर दिया
  • करने के लिए नए भंडार का नाम बदलें

एक ठोस उदाहरण के लिए तोड़फोड़ FAQ http://subversion.apache.org/faq.html#dumpload भी देखें ।

आपको इस बात का ध्यान रखना चाहिए और uuid फ़ाइल आपके क्लाइंट्स को बाहर रखने से रोक देगी। हालांकि सुनिश्चित करने के लिए एक svn अद्यतन करें।


2
से svnadmin help loadसंदेश: --force-uuid : set repos UUID to that found in stream, if any। संक्षेप में: फ़ाइलों के साथ खेलने की आवश्यकता नहीं है
ह्यूबर्ट करियो

@ हर्ट करियो: हाँ, कमांड लाइन में वह विकल्प है। लेकिन सभी GUI क्लाइंट नहीं करते हैं। और, यदि आप इसे सर्वर की तरफ कर सकते हैं, तो यह उपयोगकर्ताओं के लिए आसान बनाता है। लेकिन मैं अगली बार उस समस्या को ध्यान में रखते हुए उस स्विच को ध्यान में रखूंगा। पारितोषिक के लिए धन्यवाद!
jgifford25

अपना नया भंडार बनाते समय, अनुमतियाँ सेट करने में सावधानी बरतें। उदाहरण के लिए, आप भंडार तक पहुँच रहे हैं, तो के माध्यम से अपाचे mod_svn, उपयोगकर्ता "www" के तहत अपाचे रन, कुछ समूह "www" और आप के रूप में "फ्रेड" में लॉग इन किया, तो आप शायद आवश्यकता होगी की तरह: sudo chown -R fred:www myrepositoryएक के बाद sudo chmod g+wकरने के लिए myrepository/db/repcache.dbऔरmyrepository/db/uuid
xgretsch

8

सबवर्सन रिपॉजिटरी को अपग्रेड करने के लिए डंप / लोड की आवश्यकता नहीं है। Svnadmin उन्नयन कमांड का उपयोग करें:

svnadmin upgrade <path-to-repos>

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


1
ध्यान दें, हालाँकि, यह "केवल रिपॉजिटरी की अखंडता को बनाए रखते हुए इसे पूरा करने के लिए आवश्यक न्यूनतम कार्य करता है। जबकि एक डंप और बाद में लोड सबसे अनुकूलित रिपॉजिटरी राज्य की गारंटी देता है, svnadmin उन्नयन नहीं करता है।" - svnbook.red-bean.com/en/1.7/svn.ref.svnadmin.c.upgrad.html
Jörg

1
ध्यान दें, साथ ही, "आपको svnadmin उन्नयन का उपयोग करने से पहले" हमेशा अपने रिपॉजिटरी का बैकअप लेना चाहिए, जबकि डंप / लोड के साथ आपके बैकअप का निहितार्थ है।
जोर्ग

5

इवान एक अच्छा टिप है जो काम करता है, मैंने इसे आज़माया और यह बहुत सरल है।

svnadmin upgrade <path-to-repos>

एक बात जो इवांस उदाहरण में याद आती है जो दूसरों के लिए उपयोगी हो सकती है:

पूर्व।

<path-to-repos> = C:\repos\theRepo
(ie. NOT C:\repos\theRepo\db)

बिंदु निर्देशिका में svnadmin को इंगित न करें, लेकिन निर्देशिका जिसमें db निर्देशिका है।

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