"अनडड" करने से पहले svn के लिए एक फ़ाइल


200

मैं एक पुनरावर्ती svn जोड़ने / प्रतिबद्ध करने के बीच में था, और एक फ़ोल्डर जिसमें उचित अनदेखी गुण शामिल नहीं थे। मुझे अब लगभग 100 अपलोड की गई बाइनरी फाइलें मिल गई हैं, लेकिन मैंने अभी तक प्रतिबद्ध नहीं किया है।

सभी दस्तावेजों को हटाने के बिना, इसे पूर्ववत करने का सबसे आसान तरीका क्या है?

जवाबों:


244

उपयोग svn revert --recursive folder_name


चेतावनी

svn revertस्वाभाविक रूप से खतरनाक है, क्योंकि इसका पूरा उद्देश्य डेटा को फेंकना है - अर्थात्, आपके अनकही परिवर्तन। एक बार जब आप वापस लौट आते हैं, तो तोड़फोड़ उन अनछुए परिवर्तनों को वापस लाने का कोई तरीका नहीं प्रदान करता है ।

http://svnbook.red-bean.com/en/1.7/svn.ref.svn.c.revert.html


12
इस पर विस्तार करने के लिए - revertएक संशोधन के बिना निर्दिष्ट चेक के बाद, पिछले चेकआउट के बाद होने वाले किसी भी बदलाव को निर्दिष्ट करता है, जिसमें निर्दिष्ट फ़ाइल के लिए शेड्यूलिंग परिवर्तन जोड़ना / हटाना शामिल है।
अंबर

जहाँ folder_name उस फ़ोल्डर का मूल फ़ोल्डर है जहाँ आपने "Add" कमांड किया था
MacGyver

28
यह उत्तर खतरनाक रूप से गलत है - यह आपके परिवर्तनों को आपके निजी कोषों के अवशेषों से हटा देगा। नीचे ब्रायन लैसी का जवाब बहुत बेहतर है।
हेनरी हेनरिंस

6
दोस्तों, यह मूल प्रश्न का उत्तर देता है: एक फ़ाइल या फ़ोल्डर जो जोड़ा गया था, फिर वापस लाया गया, केवल हटाए बिना, बिना संस्करण वाले वापस जा रहा है। ठीक यही सवाल पूछता है। यदि आप इसे संशोधित फ़ाइलों पर उपयोग करते हैं, तो निश्चित रूप से यह उनका सम्मान करता है: लेकिन यह सवाल नहीं था। यह भी बहुत विशिष्ट उपयोग मामला जुड़ा हुआ पृष्ठ पर दिखाया गया है!
जूलियन लेबोस्क्वैन

2
@JulienLebosquain ठीक है, मुझे लगता है कि आप और मैं इस वाक्यांश को अलग तरह से समझते हैं: सभी दस्तावेजों को हटाए बिना । दुर्भाग्य से, नवीनतम संस्करण को पुनर्स्थापित करके, काम की प्रतिलिपि में svn revertनए जोड़े गए परिवर्तनों को भी हटा देता है HEAD। मैंने अपना डाउनवोट हटा दिया, लेकिन मुझे अभी भी लगता है कि चेतावनी महत्वपूर्ण है।
jpaugh

145

svn rm --keep-local folder_name

नोट: svn 1.5.4 svn rm में जब -की-लोकल निर्दिष्ट किया जाता है, तब भी बिना फाइल के डिलीट हो जाता है। अधिक जानकारी के लिए http://svn.haxx.se/users/archive-2009-11/0058.shtml देखें ।


9
यह जानना अच्छा है क्योंकि यह आपको परिवर्तनों को खोने के बिना "svn add" को बस पूर्ववत करने की अनुमति देता है!
रयान एच।

1
क्या आप कुछ SVN 1.5.4 असंबद्ध फ़ाइलें हटाते हैं? रिपोर्ट प्रजनन योग्य नहीं थी, और इसके बारे में कोई अन्य ईमेल नहीं है।
क्वेंटिन Pradet

4
यदि आप फ़ाइलों को "अनडड" करना चाहते हैं तो यह बेहतर उत्तर है, लेकिन फिर भी उन्हें रखें। इस आदेश के बाद, फ़ाइलें अभी भी साथ होंगी? स्थिति।
रॉबिन ज़िम्मरमैन

32

svn revert filenameहर उस फ़ाइल के लिए प्रयास करें जिसकी आपको आवश्यकता नहीं है और अभी तक प्रतिबद्ध नहीं है। या वैकल्पिक रूप svn revert -R folderसे समस्याग्रस्त फ़ोल्डर के लिए करें और फिर कॉन्फ़िगरेशन को सही अनदेखा करने के साथ ऑपरेशन फिर से करें।

प्रलेखन से:

 you can undo any scheduling operations:

$ svn add mistake.txt whoops
A         mistake.txt
A         whoops
A         whoops/oopsie.c

$ svn revert mistake.txt whoops
Reverted mistake.txt
Reverted whoops

4
नहीं! रिवर्ट असुरक्षित है, क्योंकि यह सभी स्थानीय परिवर्तनों को खो देता है
jpaugh

@jpaugh - यह वही है जो मैंने उत्तर में लिखा था, नहीं?
बोबाह

1
ओपी ने जो पूछा (और जो मैं उम्मीद कर रहा था) स्थानीय बदलावों को खोए बिना जोड़ने को पूर्ववत करने की आज्ञा थी । svn revert। यहां कोई भी उत्तर इस तथ्य का उल्लेख नहीं करता है कि स्थानीय परिवर्तन वापस से खो जाएंगे।
jpaugh

3

पूर्ण प्रक्रिया (यूनिक्स svn पैकेज):

जाँच फ़ाइलें SVN में नहीं हैं:

> svn st -u folder 
? folder

सभी जोड़ें (उपेक्षित फ़ाइलों सहित):

> svn add folder
A   folder
A   folder/file1.txt
A   folder/folder2
A   folder/folder2/file2.txt
A   folder/folderToIgnore
A   folder/folderToIgnore/fileToIgnore1.txt
A   fileToIgnore2.txt

"सभी" पर ध्यान न दें "फ़ाइलें जोड़ें"

> cd folder

> svn revert --recursive folderToIgnore
Reverted 'folderToIgnore'
Reverted 'folderToIgnore/fileToIgnore1.txt'


> svn revert fileToIgnore2.txt
Reverted 'fileToIgnore2.txt'

संपादित करें svn फ़ोल्डर पर ध्यान न दें

svn propedit svn:ignore .

केवल निम्नलिखित के साथ दो एकल लाइनें जोड़ें:

folderToIgnore
fileToIgnore2.txt

जाँच करें कि कौन सी फाइलें अपलोड और प्रतिबद्ध होंगी:

> cd ..

> svn st -u
A   folder
A   folder/file1.txt
A   folder/folder2
A   folder/folder2/file2.txt


> svn ci -m "Commit message here"

1
धन्यवाद, वास्तव में मुझे क्या चाहिए। ऐसा लगता है कि यह केवल 'ऐड' ऑपरेशन पर वापस लौटा है, न कि केवल फ़ाइल सामग्री को छूने पर। मैं स्थानीय परिवर्तनों को खोने के बारे में डर रहा था क्योंकि पिछले उत्तरों पर टिप्पणी की गई थी, लेकिन ऐसा लगता है कि कोई फ़ाइलों को नुकसान नहीं पहुंचा था।
पीटर एम। का मतलब मोनिका

1

फ़ाइलों के लिए - svn revert filename

फ़ोल्डर के लिए - svn revert -R folder


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