कैसे तोड़फोड़ / तोड़फोड़ करने के लिए तोड़फोड़ / TortoiseSVN में फ़ोल्डर?


96

हमने गलती से अपने सबवर्सन रिपॉजिटरी से 'टैग' फ़ोल्डर को हटा दिया है जहाँ हम केवल एक विशिष्ट टैग को हटाना चाहते हैं। 'टैग' फ़ोल्डर को वापस पाने का सबसे आसान तरीका क्या है?

हम TortoiseSVN को अपने ग्राहक के रूप में उपयोग करते हैं और मैंने सोचा कि जब मैं रेपो ब्राउज़र में जाऊंगा और लॉग दिखाऊंगा, तो "पुनरीक्षण से इस परिवर्तन को फिर से बदलना" जैसा कुछ होगा जो आप अपनी कार्यशील प्रति पर समान संवाद में देख सकते हैं। लेकिन वहां ऐसी कोई आज्ञा नहीं है ...

जवाबों:


115

हटाए गए फ़ोल्डर को पहले के संशोधन से वापस कॉपी करें।

रिपॉजिटरी ब्राउज़र में, एचईएडी (शीर्ष-दाएं कोने पर) बटन को क्लिक करके एक संशोधन के लिए दिखाने के लिए वहां आपका फ़ोल्डर अभी भी मौजूद है, फिर उस फ़ोल्डर पर राइट-क्लिक करें और "कॉपी टू ..." का चयन करें और वहां पथ दर्ज करें फ़ोल्डर को फिर से बनाया जाना चाहिए (शायद वही पथ जो पहले से टेक्स्ट बॉक्स में है)।


4
महान टिप, धन्यवाद। एक TortoiseSVN gotcha - उस "कॉपी टू ..." डायलॉग में मुझे 'example.com/svn/tags' से 'टैग 1' तक का रास्ता बदलना था और फिर ओके बटन सक्षम होने के लिए वापस करना होगा।
बोरक बर्नार्ड

2
यह टैग्स के लिए ठीक हो सकता है, लेकिन किसी भी अन्य फ़ोल्डर को हटाना रद्द करने के लिए नहीं किया जाना चाहिए क्योंकि आप इतिहास खो देंगे
स्लिकिन

3
यह इतिहास रखता है, बस यह भी किया।
acdcjunior

बस यह सुनिश्चित करें कि लॉग देखते समय आप "कॉपी / नाम बदलें पर रोकें" को अनचेक कर दें, क्योंकि अन्यथा TortoiseSVN आपके पुनर्स्थापना कार्रवाई (जाहिर है) से पहले के इतिहास को नहीं दिखाएगा ...
Oli

यह पूरी तरह से काम किया। मेरा बहुत सारा समय बच गया। धन्यवाद :)
dgupta3091

78

कमांड लाइन के प्रति उत्साही के लिए:

  • सबसे पहले उस संशोधन संख्या को खोजें जहां आपका डिलीट हुआ था:

    svn log -v http://svnserver/path/to/folderContainingDeletedFolder
    

आप कहते हैं कि निर्देशिका को संशोधन 999 में हटा दिया गया था (btw: आप svn रेपो ब्राउज़र के साथ संशोधन संख्या को खोजना आसान हो सकता है)

  • संशोधन शून्य से फ़ोल्डर की प्रतिलिपि बनाएँ 1

    svn copy http://svnserver/path/to/folderContainingDeletedFolder/deletedFolder@998 http://svnserver/path/to/folderContainingDeletedFolder/deletedFolder -m "undeleted folder"
    

voilà तुम हो गए!

आपके मामले में यह हो सकता है:

    svn copy http://svnserver/project/tags@998 http://svnserver/project/tags -m "undeleted folder"

1
धन्यवाद..बहुत समय बीत गया
धरणी कुमार

यह सिर्फ मेरी बेकन बचा लिया!
स्वयंसिद्धा

बस यह पुष्टि करना चाहता था कि "svn copy" दृष्टिकोण वास्तव में सभी इतिहास को संरक्षित करता है, और फ़ोल्डरों के लिए यह पुनरावर्ती रूप से संचालित होता है, फ़ोल्डर और सभी बच्चों को पुनर्स्थापित करता है।
19St में WallStProg

11

इनमें से अधिकांश उत्तर एक हद तक काम करेंगे लेकिन सही उत्तर डैनियल का है। एक रिवर्स मर्ज करें। इस तरह आप संस्करण इतिहास रखते हैं।

svn merge -r R1:R2

जहाँ R1 वह संशोधन है जो आप कर रहे हैं, और R2 वह संशोधन है जिसमें हटाए गए फ़ाइल / फ़ोल्डर शामिल हैं।


1
रिवर्स मर्ज में, R1 वह संशोधन होना चाहिए जिसे आप R2 से पहले वापस लेना चाहते हैं।
आर्सेली

2
आप किसी भी इतिहास को नहीं खोते svn copy
मैक्सक्लेपजिग

हममें से जो कमांड लाइन उत्साही नहीं हैं , उनके लिए देखें: tortoisesvn.net/docs/nightly/TortoiseSVN_en/…
पास्कल

2
क्या यह सभी हटाई गई फ़ाइलों / फ़ोल्डरों को पुनर्स्थापित नहीं करेगा? क्या यह काम करेगा अगर मैं केवल एक विशिष्ट हटाए गए फ़ोल्डर को पुनर्स्थापित करना चाहता हूं लेकिन अन्य हटाए गए फ़ोल्डर नहीं?
ओजे 7

8

आपको रिवर्स मर्ज करने की आवश्यकता होगी

यह कैसे करना है (और बहुत कुछ और जो आप कभी भी चाहते हैं या SVN के साथ करने की आवश्यकता है) के विवरण के लिए, आधिकारिक पुस्तक ऑनलाइन उपलब्ध है ।


3

राउडी के जवाब के बाद जो इस संशोधन के बाद मेरे लिए काम किया।

कुछ svn क्लाइंट को फ़ोल्डर के बाद @ का उपयोग करने के बजाय -r संशोधन पैरामीटर का उपयोग करके निर्दिष्ट संशोधन संख्या की आवश्यकता हो सकती है:

svn copy svn://svnserver/project/tags svn://svnserver/project/tags **-r 998** -m "undeleted folder"

यदि आप उस फ़ोल्डर से पुनर्स्थापित कर रहे हैं जो अभी भी मौजूद है तो -r <revision>काम करेगा। हालाँकि यदि आप सीधे फ़ोल्डर को पुनर्स्थापित करने का प्रयास कर रहे हैं तो आपको उपयोग करने की आवश्यकता होगी @<revision>। अन्यथा यह आपको बताएगा कि फ़ाइल नहीं मिली।
आर्सेली

2

Repository Browserआपका गोटो repository, मूल फ़ोल्डर पर राइट-क्लिक करें जहां आपका हटाए गए फ़ोल्डर मौजूद था। अब, Show Logमूल फ़ोल्डर में, और पिछले संशोधन का चयन करें जहां आपने डिलीट ऑपरेशन किया था। आपके पास एक सूची होगी और संशोधन जानकारी से फ़ोल्डर पर राइट क्लिक करें और चुनें Update to this Revision

आप कर चुके हैं


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

इसने मेरे लिए काम किया। संदर्भ मेनू विकल्प (दाएं क्लिक पर) "इस संशोधन से परिवर्तन वापस करें" और यह परिवर्तनों को मर्ज कर देगा।
hsg
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.