सवाल मैं एसवीएन से सभी अपरिवर्तित फ़ाइलों की सूची कैसे प्राप्त करूं?


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

मैं उन फ़ाइलों की सूची कैसे प्राप्त कर सकता हूं जो सबवर्सन से संस्करण नियंत्रण में नहीं हैं, इसलिए मुझे यकीन है कि मैंने सब कुछ भंडार में जोड़ा है?


76
2017-10-19 05:25


मूल




जवाब:


उपयोग svn status आदेश:

svn status | grep ^?

जिन संस्करणों को संस्करणित नहीं किया गया है वे एक के साथ संकेतित हैं? लाइन की शुरुआत में।

यदि आपको लगता है कि आपके पास हमेशा कुछ विशिष्ट फ़ाइलें होती हैं जिन्हें भंडार में जोड़ा नहीं जाना चाहिए (उदाहरण के लिए, उत्पन्न बाइनरी), तो आपको सेट अप करना चाहिए svn:ignore युक्त निर्देशिका पर संपत्ति ताकि इन फ़ाइलों का उपयोग करते समय प्रदर्शित नहीं रहेगा svn status


98
2017-10-19 05:26



व्यक्तिगत रूप से, मैं हमेशा "svn ci" से पहले "svn diff" करता हूं, लेकिन चूंकि कभी-कभी धीमा होता है, मैं हमेशा "svn diff" से पहले "svn stat" करता हूं, जो आसान है क्योंकि तब मैं सामान जोड़ने में नहीं भूल जाता :) - ephemient
यदि आपके पास कई अनवरोधित फ़ाइलें हैं जिन्हें आप जोड़ना चाहते हैं, तो ऐसा करें: svn st | grep ^? | awk '{print $2} | xargs svn add  इससे पहले अनवरोधित फाइलें मिलेंगी, अजीब लाइन में केवल दूसरी वस्तु मुद्रित करेगी (यानी फ़ाइल पथ) और xargs इस पथ को svn add का तर्क देगा। - duality_
अजीब कमांड के अंत में एक एकल उद्धरण गायब है। आदेश होना चाहिए: svn st | grep ^? | awk '{print $2}' | xargs svn add - jplandrain
विंडोज़ में भी काम करता है: svn status | find "?" - Florian Straub


अगर कुछ फाइलों ने अपनी स्थिति में 'अनदेखा' किया है, तो वे 'svn status' में दिखाई नहीं देंगे। आपको ज़रूरत होगी:

svn status --no-ignore

41
2017-08-29 14:05



बाइनरी फ़ाइलों के लिए भी सहायक है जो मेरे सेटअप में डिफ़ॉल्ट रूप से svn स्थिति द्वारा अनदेखा प्रतीत होता है। मुझे शायद कुछ सेटिंग के बारे में पता नहीं है जो ऐसा करता है, लेकिन --no-ignore का उपयोग करके मुझे इस परिदृश्य में मदद मिली है। - Andy Weinstein
यह स्वीकार्य उत्तर होना चाहिए क्योंकि चयनित उत्तर मेरे मामले में काम नहीं कर रहा था (लिनक्स पर्यावरण में बाइनरी फाइलों के लिए) - Asqan


यदि आप विंडोज़ पर चल रहे हैं, तो आप कुछ ऐसा कर सकते हैं ग्रेग हेविलPowerShell का उपयोग कर जवाब।

(svn stat) -match '^\?'

यह सभी विचलित और अनदेखी फ़ाइलों को खोजने और उन्हें हटाने के लिए बहुत आसानी से बढ़ाया जा सकता है।

(svn stat "--no-ignore") -match '^[I?]' -replace '^.\s+','' | rm

उम्मीद है कि किसी के लिए सहायक है!


15
2017-07-04 12:42



यह कैसा है () -math बुलाया? - Pavel Petrov


या विंडोज कमांड लाइन से:

svn stat | find "?"

10
2017-11-26 17:05





आप इस आदेश का उपयोग न किए गए फ़ाइलों के लिए सभी पथों को सूचीबद्ध करने के लिए कर सकते हैं:

svn status | awk '/^?/ {print $2}'

पहला भाग एक करेगा svn status, और फिर यह आउटपुट को रीडायरेक्ट करेगा AWK जो सरल फिल्टर करेगा "पहला अक्षर होना चाहिए '?" तो यह दूसरे पैरामीटर को प्रिंट करेगा "जो फ़ाइल पथ है"।

svn status हमेशा नहीं अनदेखा फाइलों को मुद्रित करें। आप उस पथ को जोड़कर एक फ़ाइल या पथ जोड़ सकते हैं

svn propset svn:ignore "PATH OR PATERN"

0
2017-09-25 11:00



ऐसा लगता है कि सभी परिणाम मिलते हैं svn statusन केवल गैर संस्करण वाली फाइलें। मेरा मानना ​​है कि आदेश होना चाहिए svn status | awk '/^\?/ {print $2}' बचने के लिए ?, क्योंकि फ़िल्टर एक regex अभिव्यक्ति है। - KymikoLoco