सबवर्जन कभी भी भंडार से फ़ाइल को पूरी तरह से हटा देता है। वास्तव में, यह एक अच्छी तरह से अनुरोधित सुविधा है।
आप svn delete
या svn rm
करते हैं, और फ़ाइल कार्यशील प्रति में नहीं है। हालांकि, यह निश्चित रूप से अभी भी वहाँ है। क्या शायद आप को समझाने की है कि फ़ाइल स्थायी रूप से हटा दिया गया है कि आप कुछ इस तरह कर रहे हैं है:
$ svn co http://repo/svn/project
[...]
$ cd project
$ svn del foo.txt
$ svn commit -m "Removed foo.txt"
committed version 12345
$ svn ls http://repo/svn/project/foo.txt
No such file
यह सच है। फ़ाइल foo.txt
अब सबवर्जन के सबसे वर्तमान संशोधन में नहीं है।
आप जानते थे कि फ़ाइल संशोधन 12345 में क्योंकि आपने उसे निकाल नहीं है:
शायद तुम कुछ इस तरह से किया था। हालांकि, की फाइल अभी भी है कि संशोधन में होना चाहिए संशोधन 12344. को देखो:
$ svn ls -r12344 http://repo/svn/project/foo.txt
No such file
देखो, संशोधन संशोधन 12344. इसलिए, यह स्थायी रूप से हटा दिया गया है में नहीं है।
इतना तेज़ नहीं, बंकी। आपने जो अनुरोध किया है वह रिपॉजिटरी लेआउट के वर्तमान संशोधन में फ़ाइल के 12344 संशोधन है। आपको फ़ाइल संशोधन और भंडार संशोधन के बीच अंतर को समझने की आवश्यकता है। इसे revision pegging कहा जाता है, और सबवर्सन में और अधिक कठिन अवधारणाओं में से एक हो सकता है।
आप जो देखना चाहते हैं वह है रिपोजिटरी के 12,344 वें संशोधन में फ़ाइल। ऐसा करने के लिए, आप रिपोजिटरी URL के अंत में एक @
डाल:
$ svn ls http://repo/svn/project/[email protected]
foo.txt
अब, हम फ़ाइल देख सकते हैं, क्योंकि यह है कि भंडार लेआउट के 12344 संशोधन में है।
$ svn cp -r12344 -m"undeleting foo.txt" \
http://repo/svn/project/[email protected] \
http://repo/svn/project
इस के 12344 संशोधन पर फ़ाइल foo.txt
में संशोधन 12344 कॉपी जाएगा: आप फ़ाइल को हटाना रद्द करने की जरूरत है, तो आप हमेशा फ़ाइल में संशोधन आप भंडार लेआउट की आंकी संशोधन से चाहते हैं कॉपी कर सकते हैं भंडार के वर्तमान संशोधन के लिए भंडार।
कि हटा दिया गया है फ़ाइलों को खोजने के लिए सबसे आसान तरीका है svn log
को देखने के लिए है:
$ svn log -rHEAD -v http://repo/svn/project/foo.txt
r12345 | dweintraub | [...]
Removed foo.txt
D /project/foo.txt
-----------------------------------------------------
मैं नष्ट कर दिया फ़ाइल `संशोधन 12345 में foo.txt इसलिए, यह अभी भी संशोधन 12344 में ही अस्तित्व में।जानना अच्छा है कि मुझे फ़ाइल को अनावृत करने की आवश्यकता है या नहीं।
हाँ, यह इस उदाहरण मैं फ़ाइल में संशोधन और सबवर्सन लेआउट अनुरोध करने के लिए, क्योंकि वे दोनों एक ही कर रहे हैं कि में मूर्खतापूर्ण लग सकता है। हालांकि, यह हमेशा मामला नहीं होने वाला है। फ़ाइलों को चारों ओर स्थानांतरित किया जाता है और कॉपी, हटाया जाता है, और हटाया जाता है। फ़ाइल का संस्करण मैं चाहता हूँ भंडार संस्करण मैं तलाश कर रहा हूँ के रूप में ही नहीं हो सकता है।
आप इसे एक डमी फ़ाइल पर आज़मा सकते हैं। इसे जोड़ें, फिर इसे हटा दें। तो मुझे यकीन है के लिए, एक हिरन है 'remove' या' del' या 'rm' रिपोजिटरी से इतिहास नहीं निकाला जाएगा। –
@ ल्यूक एम: सिर्फ 'डेल' को कॉल करने का मतलब है कि काम करने वाली प्रतिलिपि के अगले अपडेट के बाद, फ़ाइल फिर से होगी। – Dabbler
मैं अपने काम की नकल से हटाने के लिए 'commit' करने के लिए है कि आप अनुमान लगा। –