2010-05-21 8 views
6

मेरे पास कई फाइलें हैं जिन्हें मैं विवर्तन में जोड़ना चाहता हूं। अपना समय लेने और प्रत्येक व्यक्ति को जोड़ने के बजाय, मैंने एक स्मार्ट-गधे बनने का फैसला किया और एक:सबवर्जन 'unadd'?

svn add * 

.. जो एक गलती थी। क्या कोई तरीका है कि मैं सबकुछ 'अनदेखा' कर सकता हूं? लगभग 7 फाइलें जो मैं जोड़ना चाहता था ... अब यह एक अतिरिक्त 500+ ऑटो-जेनरेट की गई फ़ाइलों को हाइलाइट किया गया है जो मुझे जोड़ने का मतलब नहीं था!

मैंने अभी तक यह नहीं किया है इसलिए उम्मीद है कि इसे पूर्ववत करने का एक तरीका है !!

उत्तर

12

आप किसी भी अन्य परिवर्तन से फ़ाइलें जोड़ी है? (svn status आपको बताएगा - संशोधित फाइलें M के रूप में दिखाई देंगी, A के रूप में जोड़े गए फ़ाइलें - और svn diff आपको किसी भी परिवर्तन का विवरण दिखाएंगी)। यदि नहीं, तो आप सिर्फ कर सकते हैं:

svn revert * 

लेकिन अगर आप ऐसा करेंगे कहते हैं ऐसे बदलाव, है कि उन्हें निकाल देंगे है!

(शायद कुछ फाइलों पर प्रयोग पहले :-) लायक

+0

मुझे लगता है कि आपका मतलब svn स्थिति है, svn diff नहीं। – Aif

+0

@Aif: मेरा मतलब दोनों का उल्लेख करना था, लेकिन किसी भी तरह से स्पष्टीकरण को एक में विलय करने में कामयाब रहा। इस पर ध्यान दिलाने के लिए धन्यवाद! – psmears

0

आप
svn revert -depth = अनंतता का उपयोग कर सकते हैं।

यह आपके सभी फ़ाइलों में सभी स्थानीय परिवर्तनों को पूर्ववत कर देगा, इसलिए इसे सावधानी से उपयोग करें।

0

आप अगले आदेश का उपयोग कर सकते हैं:

svn revert 
8
svn st |grep ^A |cut -c 9- |xargs svn revert 

पहले सत्यापित करने के लिए क्या फ़ाइलें कुछ भी बाहर निकालने के पिछले आदेश को संशोधित किए बिना वापस कर दिया जाएगा:

svn st |grep ^A |cut -c 9- 

पाइपिंग आदेश है शक्तिशाली:

  • svn st स्टेटस सब कुछ
  • grep ^A केवल उन पंक्तियों को देगा जो अक्षर ए के साथ जोड़े गए हैं।
  • cut -c 9- उन पंक्तियों से फ़ाइल का नाम प्राप्त होगा।
  • xargs svn revert प्रत्येक फ़ाइल नाम के लिए svn revert चलाएगा।

यदि आप विंडोज़ पर हैं तो आपको UnxUtils पैकेज या इसी तरह के डाउनलोड करना होगा, लेकिन यह बहुत शक्तिशाली है क्योंकि यह बहुत शक्तिशाली शैल कमांड लाता है।

+0

-1 'यूनिक्स इंस्टॉल करें' समाधान – jwg

1

जब तक आप केवल, नई चीजों को शामिल किया है सिर्फ

svn revert * 

करते हैं, सुरक्षित हो पहले आपकी फ़ाइलों की स्थानीय प्रतिलिपि बनाने के लिए।

8

आप

svn rm --keep-local * 

सभी फ़ाइलों के रूप में है रखा जाएगा, उपयोग कर सकते हैं वापस लाएं बिना।और प्रतिबद्धता चरण के लिए unadd

+0

ऐसा करने के बाद ऐसा नहीं करना होगा कि फ़ाइल को रिमोट रिपोजिटरी से हटा दिया गया है? – jwg

+0

यह आदेश चलाते समय यह मेरी सभी फ़ाइलों को हटा दिया गया (प्रतिबद्ध नहीं) –

संबंधित मुद्दे