2010-02-21 12 views
6

दुर्घटना से मैंने गलत निर्देशिका में "svn import ..." कहा। क्या इस गलती को पूर्ववत करने का कोई समझदार तरीका है?क्या उपversण में आयात पूर्ववत करना संभव है?

गुगलिंग मुझे कोई उपयोगी उत्तर नहीं मिला, और स्टैक ओवरफ्लो पर मिली मेरी समस्या के सबसे नज़दीक importing the correct data to the wrong place था, जबकि मैंने सही जगह पर गलत डेटा आयात किया था।

और: भंडार नया नहीं है, इसलिए इसे हटाना सवाल से बाहर है।

यह एक प्रकार का विडंबनापूर्ण होगा, अगर मैं संस्करण नियंत्रण प्रणाली में संचालन पूर्ववत नहीं कर सका। तो क्या कोई मेरी मदद कर सकता है? (धन्यवाद!)

संपादित करें: मुझे अपनी रिपॉजिटरी को बर्कले डेटाबेस में संग्रहीत किया गया है, यानी, यह फ़ाइल सिस्टम में है। सभी फाइलों/निर्देशिकाओं की संशोधन तिथि को देखकर और संशोधित फ़ाइलों की सामग्री पर मैं काम करने में सक्षम था कि एक चीज़ को छोड़कर क्या करना है: क्या किसी को पता है कि फ़ाइल txn-current क्या है? मुझे लगता है कि यह लेनदेन हैंडलिंग से जुड़ा हुआ है, लेकिन इसकी सामग्री का अर्थ क्या है (लंबाई 2 बाइट्स है)?

संपादित 2: उपयोगी उत्तर दोनों के लिए धन्यवाद। मैंने मार्टिन के जवाब को स्वीकार कर लिया क्योंकि इसे करने का उचित तरीका प्रदान करना चाहिए (जैसा कि मैं समय के दबाव में हूं, मैंने कुछ फाइलों को हटा दिया है जैसा कि मैंने अपने पहले EDIT में संकेत दिया है कि टीएक्सएन-वर्तमान की सामग्री को अनदेखा कर रहा है और अभी तक ठीक है)। लेकिन विम ने अपनी टिप्पणी में दिए गए लिंक को देखें!

उत्तर

10

कुछ प्रतिबद्ध अगर कोई अन्य प्रतिबद्ध थे के बाद से आप अपनी फ़ाइलों को आयात किया है, तो आप svn dump का उपयोग कर अंतिम संशोधन को आसानी से हटा सकते हैं।

निम्न उदाहरण this page से लिया जाता है:

  • (यह मानते हुए संशोधन 1-125 ठीक कर रहे हैं, 126 है कि पिछले संशोधन है, समस्या का कारण)
  • भंडार का एक बैकअप बनाने के लिए, तो भंडार डंप (पिछले संशोधन को छोड़कर):
    • > svnadmin dump -r1:125 myrepo > my.dump
  • अब एक नया भंडार बना सकते हैं और लोड डंप:
    • > svnadmin create myrepo
    • > svnadmin load myrepo < my.dump
11

आप पूर्ववत नहीं कर सकते एक सीधे प्रतिबद्ध, इस के लिए एकमात्र विकल्प यह svnadmin load फिर से एक svnadmin dump ऐसा करने के लिए, (या तो हाथ से एक पाठ संपादक का उपयोग, या svndumpfilter का उपयोग कर हटाने डंपफाइल से प्रतिबद्ध है, और।

यदि यह एक वास्तविक समस्या यह है कि डेटा एक पुराने संशोधन के रूप में भंडार में कहीं रहता नहीं है, तो आप सिर्फ svn delete यह कर सकते हैं और किसी और के बजाय।

+0

धन्यवाद, लेकिन वहाँ गलत निर्देशिका में कुछ बाइनरी थे और मैं चाहता हूँ उनमें से छुटकारा पाने के लिए। मैं डंप का उपयोग कर डेटा कैसे हटा सकता हूं? –

+2

एसवीएन बुक के पुराने संस्करण में svndumpfilter का उपयोग करने के बारे में कुछ और जानकारी है: http://svnbook.red-bean.com/en/1.2/svn.reposadmin.maint.html#svn.reposadmin.maint.tk.svndumpfilter – Wim

+0

बहुत उपयोगी लिंक, फिर से धन्यवाद! मैं इस समय एक अलग रास्ते पर हूं (मेरे प्रश्न के आने वाले संपादन को देखें), लेकिन अगर यह काम नहीं करता है, तो मैं svndumpfilter को आजमाउंगा। –

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