2012-05-02 3 views
35

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

मुझे कोई परवाह नहीं है कि मुझे प्रक्रिया में अपने सभी स्थानीय संशोधनों को वापस करना है (इस मामले में मैं अनिवार्य रूप से अपने चेकआउट को एक प्राचीन राज्य में पुनर्स्थापित करना चाहता हूं) या क्या ट्रैक की गई फ़ाइलों में स्थानीय संशोधन बरकरार रह सकते हैं; या तो स्थिति स्वीकार्य है।

+0

संभावित डुप्लिकेट [मैं सभी unversioned/नजरअंदाज कर दिया फ़ाइलें/मेरे कार्य प्रतिलिपि में फ़ोल्डर कैसे हटा सकता हूँ?] (Https : //stackoverflow.com/questions/2803823/how-can-i-delete-all-unversioned-ignored-files- फ़ोल्डर्स-in-my-working-copy) – Ruslan

+0

@Ruslan: भले ही मेरा प्रश्न TortoiseSVN के बारे में नहीं है , हाँ, यह अनिवार्य रूप से एक ही बिंदु है। –

उत्तर

52

एक अंतर्निहित तरीका हो सकता है, लेकिन यदि ऐसा है, तो मुझे इसके बारे में पता नहीं है। हालांकि, निम्नलिखित की तरह कुछ काम करना चाहिए: (। सभी unversioned फ़ाइलें एक लाइन एक svn st में ? के साथ शुरुआत में दिखाई देनी चाहिए)

svn st | grep '^?' | awk '{print $2}' | xargs rm -rf 

संपादित करें (@GearoidMurphy) यह पाने के लिए चुनौतीपूर्ण है इस स्निपेट को सिग्विन पर्यावरण पर काम करने के लिए, क्योंकि xargs विंडोज़ पथ को बचने के अनुक्रमों के रूप में स्लेश करता है और '\ r \ n' लाइन अंतराल को पार्स करने में परेशानी होती है, नीचे यह पूरी तरह से वैध उत्तर का मेरा अनुकूलित समाधान है:

svn st | grep '^?' | gawk '{printf(\"%s|\", $2)}' | xargs -d "|" -n1 C:\cygwin\bin\rm -r 
+0

हाँ, मुझे लगता है कि ऐसा करना पड़ सकता है, हालांकि यह काफी बदसूरत है, और इसके लिए कई अतिरिक्त गैर-एसवीएन उपकरण की आवश्यकता है। –

+2

यह अनदेखा फ़ाइलों का खाता नहीं लेता है, इसलिए आपको 'svn st' –

+1

पर' --no-ignore' ध्वज की भी आवश्यकता हो सकती है, मुझे लगता है कि यह शायद –

20

svn-clean स्क्रिप्ट ठीक से यह करता है, हालांकि यह perl स्थापित होने पर भरोसा करता है। यह स्थानीय संशोधनों को बरकरार रखेगा लेकिन अनदेखी फाइलों को हटा देगा। हटाए गए फ़ाइलों का पूर्वावलोकन करने के लिए '-p' के साथ चलाएं।

3

यह आदेश नौकरी, रिक्त स्थान है और सभी को क्या करना चाहिए (पर OSX की कोशिश की केवल):

svn status | grep '^\?' | sed 's/? *//' | xargs -I% rm -fr % 
की