मैं स्थानीय SVN रिपॉजिटरी से डेटा कैसे निकाल सकता हूं?


2

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

मैंने SVN रिपॉजिटरी डायर में देखा और एक विशाल फ़ाइल "db / revs / 67" मिली, जो मुझे लगता है कि संशोधन 67 के लिए डेटा का प्रतिनिधित्व करता है जिसमें ये फाइलें जोड़ी गई थीं। क्या मैं बस उस फ़ाइल को हटा सकता हूँ, या यह SVN के लिए समस्याएँ पैदा करेगा? ऐसा लगता है कि मुझे फ़ाइलों को कहीं और हटाने या संशोधित करने की आवश्यकता होगी ताकि SVN कार्य करता है जैसे कि उन संशोधन कभी मौजूद नहीं थे?

जवाबों:


3

सुरक्षित रूप से, अपने एसवीएन इतिहास से एक संशोधन को पूरी तरह से हटा दें, आपको हटाए गए संशोधन के साथ भंडार को निर्यात करने की आवश्यकता है, और फिर इसे डंप फ़ाइल से पुनर्स्थापित करें। ऐसा करने के लिए, टर्मिनल या विंडोज कमांड प्रॉम्प्ट पर निम्न कमांड चलाएँ:

svnadmin dump /path/to/repo -r1:66 > svn.dump
ren /path/to/repo /path/to/backup
svnadmin create /path/to/repo
svnadmin load /path/to/repo < svn.dump

(निक्स सिस्टम पर, बदलें ren साथ में mv।)

एक बार जब आप सुनिश्चित कर लेते हैं कि नए भंडार में सब कुछ ठीक है, तो आप बैकअप को हटा सकते हैं।

का उपयोग करने पर विचार करें svn:ignore संपत्ति उन फाइलों को भविष्य में भंडार के लिए प्रतिबद्ध होने से रोकने के लिए। आप उन पर राइट-क्लिक करके TortoiseSVN के साथ अनदेखी सूची में फाइलें जोड़ सकते हैं TortoiseSVN , और चुनना सूची को अनदेखा करने के लिए जोड़ें


धन्यवाद। मैं कमांड प्रॉम्प्ट से बहुत परिचित नहीं हूं, क्या आप स्पष्ट कर सकते हैं: 1) मुझे इन कमांड को पहचानने के लिए कमांड प्रॉम्प्ट कैसे मिलेगा? 2) क्या प्रत्येक पंक्ति एक नई कमांड है? 3) जब मैं निर्दिष्ट करता हूं कि प्रतिलिपि कहां रखनी है, तो क्या यह दूसरी पंक्ति "पथ / से / बैकअप" है?
Aaron

... इस बीच मैंने / repb / db / revs / 67 और / db / revprops / 67 को हटा दिया है और बदल दिया है / db / current से "67 1h5 p" से "66 1h5 p" पूरी रिपिर dir की कॉपी पर। वह काम किया हुआ लगता है।
Aaron

@ ऐरन: विंडोज में कमांड प्रॉम्प्ट स्टार्ट और जीई में पाया जा सकता है; सभी कार्यक्रम & gt; सहायक उपकरण। प्रत्येक पंक्ति एक नई कमांड है (उदा। प्रत्येक के बाद Enter दबाएं।) जो मैं अंतिम संशोधन को हटाने के बारे में समझता हूं, उससे कोई समस्या नहीं होनी चाहिए, लेकिन यदि यह पहले होता तो आपकी रिपॉजिटरी ने काम करना बंद कर दिया होता।
Patches

जब भी मैंने svn कमांड की कोशिश की तो उसने कहा "svnadmin कोई मान्यता प्राप्त कमांड नहीं है" या इसी तरह का। मुझे लगता है कि मैं इसे कुछ svn निष्पादन योग्य कहीं नेविगेट करने की जरूरत है, लेकिन मैं समझ नहीं सका।
Aaron

@ ऐरन: होना चाहिए C:\Program Files\Subversion\bin (शायद C:\Program Files (x86)\Subversion\bin 64-बिट विंडोज पर) लेकिन अगर यह कछुआ वीवीएन के साथ आता है तो हो सकता है कि इसे कहीं अलग रखा जाए। आप अपने आस-पास देख सकते हैं Program Files या Program Files (x86) सुनिश्चित करने के लिए फ़ोल्डर्स। के साथ उस निर्देशिका पर जाएँ cd उद्धरणों में पथ के साथ एक स्थान के बाद कमांड।
Patches
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.