आप किसी फ़ोल्डर के लिए सबवर्सन नियंत्रण कैसे हटाते हैं?


259

मेरे पास एक फ़ोल्डर है, c:\websites\testऔर इसमें फ़ोल्डर और फाइलें शामिल हैं जिन्हें एक रिपॉजिटरी से चेक किया गया था जो अब मौजूद नहीं है। मुझे उस फ़ोल्डर और किसी भी सबफ़ोल्डर और फ़ाइलों को ट्रैक करने से रोकने के लिए सबवर्सन कैसे मिलता है?

मुझे पता है कि मैं बस .svnफ़ोल्डर को हटा सकता था , लेकिन कई परतों में बहुत सारे उप-फ़ोल्डर हैं।


1
यदि आप TortioseSVN का उपयोग कर रहे हैं, तो मैंने एक ब्लॉग पोस्ट लिखा है जो ऐसा करने का सबसे तेज़ तरीका दिखाता है। मेरे पोस्ट में चित्रों के साथ चरण-दर-चरण निर्देश हैं। वह पोस्ट http://www.ecofic.com/about/blog/disconnecting-folder-from-svn
चाड कैंपबेल

मेरे उत्तर का संदर्भ लें जिसने बहुतों की मदद की है। stackoverflow.com/questions/4889619/…
अजीत वज़े

जवाबों:


258

इसके अलावा, यदि आप TortoiseSVN का उपयोग कर रहे हैं, तो बस वर्तमान कार्य प्रतिलिपि स्थान पर निर्यात करें और यह .svn फ़ोल्डर और फ़ाइलों को हटा देगा।

http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-export.html#tsvn-dug-export-unversion

तोड़फोड़ 1.7 के लिए अद्यतन जवाब:
तोड़फोड़ 1.7 में काम की नकल को बड़े पैमाने पर संशोधित किया गया है। केवल एक .svn फ़ोल्डर है, जो काम की प्रतिलिपि के आधार में स्थित है। यदि आप 1.7 का उपयोग कर रहे हैं, तो सिर्फ .svn फ़ोल्डर और उसकी सामग्री को हटाना एक आसान समाधान है (TortoiseSVN या कमांड लाइन टूल का उपयोग किए बिना)।


8
लिंक अब एक 404 है। नया लिंक: tortoisesvn.net/docs/release/TortoiseSVN_en/… एक्सपोर्ट-ओवर-करंट केवल एक विशेष मामला प्रतीत होता है जो केवल .svn फ़ाइलों को हटा देता है, जिन्हें आप अनवांटेड फाइल्स रखना भी कहते हैं।
lilbyrdie

सामान्य रूप से अपने फ़ोल्डर आइकन को वापस पाने के लिए सफल हटाने के बाद svn सर्वर को पुनः आरंभ करें और वह सब है
3ehrang

सर्वर को कछुआ फ़ोल्डर आइकन के साथ कुछ भी नहीं करना होगा। लेकिन अगर वे अपडेट नहीं करते हैं तो आप TSVNCache प्रक्रिया को मारने की कोशिश कर सकते हैं। इसे स्वचालित रूप से पुनरारंभ करना चाहिए।
दुर्घटना

1
मेरे मामले में, मैंने git फोल्डर को भी एक साथ हटा दिया है। svn फोल्डर
आफताब अहमद कलहोरो

155

लिनक्स पर, यह काम करेगा:

  find . -iname ".svn" -print0 | xargs -0 rm -r

10
मैक ओएस पर भी काम करता है।
एमिश करें

2
कमांड चलाने से पहले उचित निर्देशिका में प्रवेश करना सुनिश्चित करें, उदाहरण: cd mySVNdirectoryWhereToRemoveTheSubfolders
Camaleo

मुझे rm मिलता है: लापता ऑपरैंड
शीतकालीन

119

Svn निर्यात का प्रयास करें ।

आपको ऐसा कुछ करने में सक्षम होना चाहिए:

svn export /path/to/old/working/copy /path/to/plain/code

और फिर पुरानी वर्किंग कॉपी को हटा दें।

TortoiseSVN में एक निर्यात सुविधा भी है , जो उसी तरह व्यवहार करती है।


4
कमांड लाइन के साथ काम करने वाले उत्तर देने के लिए धन्यवाद। :) महान उन लोगों के लिए जो टर्मिनलों का उपयोग कर रहे हैं।
epochwolf

16
अगर मैं सही तरीके से समझूं, तो यह कमांड केवल फाइलों को वर्तमान में तोड़फोड़ नियंत्रण में निर्यात करेगा। इसलिए यदि कुछ फ़ाइलों या फ़ोल्डरों को अभी तक तोड़फोड़ करने के लिए कुछ जोड़ा नहीं गया है या तोड़फोड़ नियंत्रण से हटा दिया गया है, तो आप इन फ़ाइलों को अपने निर्यात में खो देंगे ...
क्रिस

@ क्रिस, हाँ, आप सही हैं। यह केवल संस्करणित फ़ाइलों को निर्यात करेगा। यह कोड निर्यात करने और व्युत्पन्न कलाकृतियों आदि को पीछे छोड़ने के लिए अच्छा है, लेकिन यह हर काम के लिए सही उपकरण नहीं हो सकता है।
pkaeding

4
एक टिप्पणी के लायक है कि यह अभी भी काम करता है यदि SVN सर्वर लंबे समय से चला गया है; यदि आप VisualSVN या कछुआ SVN का उपयोग कर निर्यात करने की कोशिश करते हैं तो यह सर्वर से संपर्क करने की कोशिश करता है, लेकिन ऊपर दिया गया कमांड लाइन संस्करण SVN सर्वर के बिना मेरे लिए काम कर रहा है।
डेव

मुझे एक त्रुटि मिलती है:svn: E000002: Can't stat '/.classpath': No such file or directory
इगोरगानापोलस्की

32

यदि आप विंडोज चला रहे हैं, तो आप उस फ़ोल्डर के लिए एक खोज कर सकते हैं .svnऔर वह उन सभी को सूचीबद्ध करेगा। Ctrl+ दबाने Aसे उनमें से सभी का चयन हो जाएगा और डिलीट दबाने पर 'pesky' सबवर्सन सामान निकल जाएगा।


pesky वास्तव में ;-) मुझे बस इसे साफ करने की आवश्यकता है और मैं इसे एक नए भंडार में वापस रखूँगा।
ब्रायन बोटराइट ने

2
यह भी सबसे pesky फ्रंटपेज एक्सटेंशन फ़ोल्डर्स को हटाने के लिए एक शानदार तरीका है!
बजे ब्रायन बोटराइट

डाउनलोड करें और प्रकाश गति में .svn फ़ोल्डरों को खोजने और हटाने के लिए सब कुछ खोज उपयोगिता का उपयोग करें :) voidtools.com केवल विंडोज!
एंडो 64


21

मैंने पाया कि आपको किसी अस्थायी स्थान पर कॉपी करने की आवश्यकता नहीं है। आप एक कर सकते हैं

svn export --force .

और .svn फ़ाइलों को दूसरी फ़ाइलों को छोड़कर, सीटू में हटा दिया जाएगा । बहुत सुविधाजनक और कम अव्यवस्था के लिए प्रवण।


4
मुझे नहीं पता कि यह क्या है, लेकिन यह मेरे लिए किसी कारण से काम नहीं आया।
मेष VII

1
यह कमांड केवल वर्किंग कॉपी के लिए काम करता है, न कि इसके अंदर एक फोल्डर के लिए। शायद उसी का एक रूपांतर ...?

2
यह काम नहीं करेगा अगर सबवर्सन का स्थापित संस्करण 1.7 है और रिपॉजिटरी 1.6 के लिए है। हालांकि, "svn उन्नयन" को निर्यात से पहले चलाया जा सकता है और यह काम करेगा।
पीटर मोर्टेंसन

11

.svnफ़ोल्डर्स को हटाने के लिए लिनक्स में बिना सबस्क्रिप्शन के :

find . -name .svn -exec rm -r -f {} +

rm = remove
-r = recursive (folders)
-f = force, avoids a lot of "a your sure you want to delete file XY".

8

इनमें से कोई भी जवाब मेरी स्थिति के लिए संतोषजनक नहीं था। मैं १. on पर तोड़फोड़ कर रहा हूं और मेरे पास एक काम की प्रतिलिपि थी जिसमें केवल पहले ही .svnफ़ोल्डर में एक फ़ोल्डर था, रूट। हालाँकि, मैं कुछ शाखाओं को काम की प्रतिलिपि से निकालना चाहता था।

कोई फर्क नहीं पड़ता कि मैंने क्या किया, जब भी मैंने एक 'अपडेट' चलाया, तो यह उन फ़ाइलों को पुनर्स्थापित करेगा और उन सभी को वापस लाएगा। मैं उन्हें रिपॉजिटरी से नहीं निकालना चाहता था, बस अपने कंप्यूटर से - लेकिन मुझे वर्किंग कॉपी के बाकी हिस्सों को चातुर्य में बनाए रखने की जरूरत थी (इस तरह सिर्फ .svn फोल्डर को हटा नहीं सकता)।

उपाय? svn update --set-depth exclude <dir>

यह एक क्लाइंट-साइड "अपडेट" है जो एक विशिष्ट निर्देशिका को बाहर करता है। यह पुस्तिकाओं में svnbook.com पर पाया जा सकता है । संक्षेप में, इसका वर्णन इस प्रकार है:

तोड़फोड़ 1.6 के साथ शुरू, आप एक अलग दृष्टिकोण ले सकते हैं। सबसे पहले, निर्देशिका को पूर्ण रूप से देखें। फिर svn अपडेट --सेट-डेप्थ को एक उपनिर्देशिका पर छोड़ दें जिसे आप परवाह नहीं करते हैं।

TortoiseSVN के लिए, आप अपने इच्छित फ़ोल्डर को राइट-क्लिक करके भी ऐसा कर सकते हैं, पर क्लिक करें Update to revision...और फिर 'अपडेट डेप्थ' को सेट करें Exclude, जैसा कि इस स्क्रीन शॉट में देखा गया है:

यहां छवि विवरण दर्ज करें


हालाँकि, आप वर्किंग कॉपी रूट फ़ोल्डर्स को हटा नहीं सकते हैं।
जाबे

8

इसने मेरे लिए अच्छा काम किया:

find directory_to_delete/ -type d -name '*.svn' | xargs rm -rf

यह एक ऐसा सरल उपाय है, फिर भी एक आकर्षण की तरह काम करता है।
19

@IgorGanapolsky मुझे खुशी है। मेरे समाधान में आपकी मदद की जाती है।
मणिकंदन S

जब तक कोई नहीं चला है mkdir -p ';echo Hi Johnny;/.svn'- उस स्थिति में {} खोज का आह्वान अभी भी काम करना चाहिए हालांकि
नेवर स्लीप अगेन

7

svn exportकमांड का उपयोग करें :

cd c:\websites\test
svn export c:\websites\test_copy

संस्करण नियंत्रण के तहत सभी फाइलें निर्यात की जाएंगी। यह सुनिश्चित करने के लिए डबल चेक करें कि आपने कुछ भी मिस नहीं किया है।


4

बस .svn फ़ोल्डर को आवश्यक फ़ोल्डर के अंदर हटा दें फिर नियंत्रण स्वचालित रूप से हटा दिया जाएगा।


3

विंडोज पर, आप अपने एक्सप्लोरर राइट क्लिक मेनू के लिए एक क्विकलिंक जोड़ सकते हैं। बस इस रजिस्ट्री स्क्रिप्ट को शुरू करें:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Folder\shell\DeleteSVN]
@="Delete SVN Folders"

[HKEY_CLASSES_ROOT\Folder\shell\DeleteSVN\command]
@="cmd.exe /c \"TITLE Removing SVN Folders in %1 && COLOR 9A && FOR /r \"%1\" %%f IN (.svn) DO RD /s /q \"%%f\" \""

यह आपके राइट क्लिक मेनू में "डिलीट एसवीएन फोल्डर्स" नामक आइटम जोड़ेगा। यह इस फ़ोल्डर में सभी .svn फ़ोल्डर और सभी सबफ़ोल्डर को हटा देगा।

स्रोत (जर्मन): http://www.sjmp.de/software/alle-svn-ordner-und-dateien-neses/


2

आप svn डेटा के बिना उस फ़ोल्डर की एक प्रति बनाने के लिए "svn निर्यात" का उपयोग कर सकते हैं, या आप सूची को अनदेखा करने के लिए उस फ़ोल्डर को जोड़ सकते हैं


2

एसवीएन के साथ नेटबीन्स का उपयोग करने वालों के लिए, एक विकल्प है 'सबवर्सन> एक्सपोर्ट'।


2

एसवीएन क्लीनर नामक एक अच्छा सा खुला स्रोत उपकरण भी है जो विंडोज एक्सप्लोरर संदर्भ मेनू में तीन विकल्प जोड़ता है:

  • सभी .svn निकालें
  • निकालें सभी लेकिन रूट .svn
  • स्थानीय रेपो फ़ाइलें निकालें

2

विंडोज 7 पर कोई केवल प्रोजेक्ट फ़ोल्डर खोल सकता है और "। Svn" की खोज कर सकता है यदि छिपी हुई फाइलें सक्षम हैं और सभी पाए गए। Sv फोल्डर को हटा दें।


1
विन एक्सपी जीतो जो बहुत अच्छा काम करता है। ध्यान दें कि SVN 1.7 के साथ .svnनिर्देशिका अब मौजूद नहीं है। अधिक जानकारी के लिए subversion.apache.org/docs/release-notes/1.7.html#wc-ng
Joao Coelho


1

उत्तर आश्चर्यजनक रूप से सरल है - फ़ोल्डर को स्वयं निर्यात करें ! TortoiseSVN इस विशेष मामले का पता लगाता है और पूछता है कि क्या आप वर्किंग कॉपी को बिना लिंक किए बनाना चाहते हैं। यदि आप उत्तर देते हैं तो नियंत्रण निर्देशिकाएं हटा दी जाएंगी और आपके पास एक सादा, बिना फैला हुआ निर्देशिका वृक्ष होगा।


1
क्या यह 5 साल पहले दिए गए स्वीकृत उत्तर को फिर से उद्धृत नहीं कर रहा है?
बेन थर्ले

1

एक और (सरल) लिनक्स समाधान:

rm -r `find /path/to/foo -name .svn`

1

सबसे अच्छा और आसान रास्ता

अगर आपको लगता है कि आप एक साधारण जादू कमांड के साथ जीत सकते हैं तो आप असफल हैं! SVN वास्तव में मुश्किल है और हमेशा Xcode में एक नए त्रुटि संदेश के साथ किसी भी तरह वापस आता है। जल्दी या बाद में, वादा करें ... तो आपको इसे स्मार्ट करना होगा!

जैसा कि आप जानते हैं कि Xcode के तहत नियमित और सर्वोत्तम अभ्यास बाईं ओर प्रोजेक्ट फलक पर एक फ़ाइल को हटा रहा है। यदि आप इसे याद करते हैं और किसी तरह इसे फाइंडर में डिलीट कर देते हैं तो आप मुश्किल में पड़ जाते हैं। बड़ी दुविधा! लेकिन आप इसे हल कर सकते हैं और खाली समय यदि आप इसे अच्छी तरह से करते हैं।

सबसे पहले, आपको फ़ाइल या फ़ोल्डर में SVN संदर्भ को हटाने की ज़रूरत है इससे पहले कि आप इसे वास्तव में हटा सकें

  1. यदि आप फ़ाइल / फ़ोल्डर को ट्रैश से वापस ला सकते हैं या इसे हटाए जाने पर अंतिम चरण को पूर्ववत करें, तो ...

  2. टर्मिनल पर जाएँ - हाँ, अच्छा पुराना टर्मिनल - और उस स्थान पर जाएँ। सबसे अच्छा तरीका बस सीडी टाइप करें फिर फ़ोल्डर / फ़ाइल को टर्मिनल पर खींचें। आपको कुछ ऐसा ही मिलेगा

सीडी / उपयोगकर्ता / उपयोगकर्ता नाम / दस्तावेज / Apps_Developing / ...

आप देख सकते हैं कि आप कहां हैं

ls

कमांड जो आपकी फ़ाइलों को सूचीबद्ध करती है।

  1. फिर आपको SVN कमांड के साथ svn संदर्भ को हटाना होगा:

    svn डिलीट --keep-local fileName_toDelete

यह SVN रिपॉजिटरी से फ़ाइल को हटा देगा, लेकिन आपको इसे फाइंडर में मैन्युअल रूप से डिलीट करना होगा।


0

मैं rsync का उपयोग करता हूं:

# copy folder src to srcStripped excluding subfolders named '.svn'. retain dates, verbose output
rsync -av --exclude .svn src srcStripped

0

NetBeans IDE उपयोगकर्ता इसे निम्नानुसार कर सकते हैं:

  1. अपने IDE में SVN प्रोजेक्ट खोलें
  2. प्रोजेक्ट का चयन करें

    राइट क्लिक सबवर्सन एक्सपोर्ट

  3. संवाद बॉक्स में

    फ़ोल्डर में निर्यात / var / tmp / projectname प्रेस निर्यात प्रतीक्षा पूरी दिखेगी, यह पूछने पर कि क्या आप इसे खोलना चाहते हैं, इसे मक्खी पर खोलें

  4. अब आप Git पर जा सकते हैं :)


0

मेरा विचार .svn फ़ोल्डर को निकालना है और फिर अन्य सभी फ़ाइलों को एक नए फ़ोल्डर में ले जाना है। यह बहुत ही सरल है।


0

जब आप विंडोज ओएस का उपयोग कर रहे हैं, तो अपने फ़ोल्डर स्थान पर जाएं और जांच करें कि छिपी हुई फाइलें खुली हैं, और फिर आप वहां एसवीएन फ़ोल्डर देख सकते हैं । बस उस फ़ोल्डर को हटा दें।


0

svn export ठीक काम करता है, लेकिन मुझे लगता है कि यह है:

svn rm --keep-local <folder/file>

यह आपके स्थानीय भंडार से इसे हटा देता है।


0

एक महत्वपूर्ण बिंदु के रूप में, जब आप का उपयोग खोल .svn फ़ोल्डर को हटाने के, आप की जरूरत गहराई से तर्क को रोकने के लिए खोज आदेश जैसे जैसे निर्देशिका है कि बस नष्ट कर दिया गया त्रुटि संदेश में प्रवेश करने और दिखा

"ढूंढें: ./.svn: ऐसी कोई फ़ाइल या निर्देशिका नहीं"

परिणामस्वरूप, आप findनीचे दिए गए कमांड का उपयोग कर सकते हैं :

cd [dir_to_delete_svn_folders]
find . -depth -name .svn -exec rm -fr {} \;


0

निम्न का उपयोग करें:

svn rm --keep-local <folder name> फ़ोल्डर और उसके भीतर सबकुछ निकालने के लिए।

svn rm --keep-local <folder name>/* फ़ोल्डर रखने के लिए, लेकिन फ़ोल्डर के भीतर सब कुछ हटा दें।

यहाँ एक उदाहरण है कि क्या होता है:

~/code/web/sites/testapp $ svn rm --keep-local includes/data/*
D         includes/data/json
D         includes/data/json/index.html
D         includes/data/json/oembed
D         includes/data/json/oembed/1.0
D         includes/data/json/oembed/1.0/embed1.json
D         includes/data/json/oembed/1.0/embed2.json
D         includes/data/json/oembed/1.0/embed3.json

-1

विंडोज 10 पर, हमें जाने की जरूरत है Windows Explorer, और फिर उसके लिए जाकर Viewचेकबॉक्स की जांच करें View hidden files

फिर उस फ़ोल्डर पर नेविगेट करें, जिसमें विंडोज एक्सप्लोरर पर एसवीएन जुड़ा हुआ है और .svnफ़ोल्डर / फ़ाइल को हटा दें ।


हालाँकि मैंने प्रारूपण को संपादित किया है, यह उत्तर वास्तव में प्रश्न का उत्तर नहीं देता है। उपयोगकर्ता पहले से ही जानता है कि आधार .svnफ़ोल्डर को कैसे हटाया जाए , लेकिन वह सभी उप-फ़ोल्डरों के बारे में पूछ रहा है। कृपया प्रश्न को अच्छी तरह से पढ़ें।
कोडमाउस92
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.