2010-07-08 11 views
7

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

+0

नया सर्वर प्राप्त करें और svn सर्वर को फिर से सेट करें। – RageZ

+0

क्या इसका मतलब है कि आपने भंडार खो दिया है? – Groo

+3

@ ग्रूओ: मुझे गंभीरता से उम्मीद है कि उन्होंने भंडार के बैकअप बनाए हैं। यदि नहीं, तो यह जीवन के लिए एक महान सबक है ;-) – Joey

उत्तर

9

क्या इसका मतलब है कि आपने भंडार खो दिया है?

उस मामले में मैं ऐसा करने का सरलतम बात लगता है कि हो सकता है (आप सभी में कोई बैकअप है तो):

  1. कहीं एक नया भंडार बनाने के लिए।
  2. अपनी कार्यशील प्रतियों में से एक चुनें (सबसे पुराने से शुरू करें, यानी कम परिवर्तन वाले वाले)।
  3. उस मशीन पर एक खाली फ़ोल्डर में अपने नए भंडार का चेक-आउट बनाएं।
  4. निर्यात अपने काम की नकल (इसे कॉपी नहीं है) खाली फ़ोल्डर आप चरण 3. में मिल गया के बाद से आप शायद पुराने काम कर रहे प्रतियां बाद में आप हटाना जा रहे हैं, यह को बुद्धिमान होगा निर्यात unversioned फ़ाइलों भी (यदि आप कछुए एसवीएन का उपयोग कर रहे हैं, तो निर्यात संवाद के शीर्ष पर एक चेकबॉक्स है)।
  5. प्रतिबद्धता आप बदलते हैं।

आपके पास सभी कार्यशील प्रतियों के लिए चरण 2. से 5. दोहराएं। चरण 5 के दौरान, आपको चीजों को मैन्युअल रूप से मर्ज करने की आवश्यकता होगी। यदि आवश्यक हो, तो किसी भी विचलित फ़ाइलों को जोड़ने के लिए सावधानी बरतें।

आप पिछले सभी संशोधन इतिहास खो देंगे, लेकिन इस तरह से कोई कामकाजी डेटा खोना नहीं चाहिए, बशर्ते कि आपके पास सभी कार्यशील प्रतियां हों।

+0

यदि आपके पास रेपो का बैक अप नहीं है तो एक अच्छा, साफ फिक्स। – Steven

3

svn diff > a.patch का उपयोग करके प्रत्येक कार्यशील प्रति में पैच बनाएं, फिर अन्य दो: patch -p0 < a.patch से एक कार्यशील प्रति पैच पर लागू करें।

अगली बार, कुछ DVCS, Git या मर्क्युरियल :) की तरह कुछ का उपयोग

1

आप भंडार का एक बैकअप है? यदि हां, तो इसे कहीं svnadmin से लोड करें और फिर इस नए स्थान पर परिवर्तन करें। अपने कामकाजी प्रतियों को नए सर्वर पर इंगित करने के लिए svn switch का उपयोग करें।

यदि नहीं, तो आप अपने प्रोजेक्ट का इतिहास खो चुके हैं और इसे वापस पाने का कोई तरीका नहीं है।

आप बस एक नया भंडार बनाने के लिए कर सकते हैं और तीन अलग-अलग प्रतियों को एक दूसरे के बाद प्रतिबद्ध कर सकते हैं। ऐसा करने के लिए आपको अपनी कार्यशील प्रतियों में सभी .svn निर्देशिकाएं हटाना पड़ सकता है।

DVCSMercurial या Git जैसे परिस्थितियों से बचने के लिए (और कई अन्य समस्याओं) का उपयोग करें।

+2

मुझे विश्वास नहीं है कि बैकअप रणनीति के बजाय डीवीसीएस की वकालत करना विशेष रूप से अच्छी सलाह है। –

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