2010-11-05 7 views
8

मैं SVN ऐड उपयोग कर रहा हूँ * SVN में फ़ाइलें जोड़ने के कहते हैं, और यह कॉन्फ़िग फ़ाइल जो यकीन है कि अनदेखी करने के लिए जोड़ा के लिए है कहते हैं।"SVN ऐड *" यहां तक ​​कि उन फ़ाइलों को जो अनदेखी कर रहे हैं

[email protected]:/workspace/project$ svn propget svn:ignore 
.sass-cache 
config.js 

समस्या का कारण क्या हो सकता है?

+4

समस्या को अंत में हल नहीं किया गया था और मैंने अपनी टीम को गिट पर स्विच करने के लिए आश्वस्त किया। इसके बारे में बहुत खुश! – lyuba

उत्तर

0

आप config.js करने से देखने के लिए कि यह वास्तव में नजरअंदाज कर दिया है की कोशिश की है? मुझे लगता है कि यदि आप संस्करण नियंत्रण में फ़ाइल जोड़ने के लिए विशेष रूप से svn को बताते हैं, तो यह अनदेखा करने की सवारी करेगा।

+0

प्रतिबद्ध करने की कोशिश करना बीटीडब्ल्यू को खोजने का तरीका नहीं है, अगर इसे जोड़ा गया है तो यह प्रतिबद्ध होगा। svn: अनदेखा इसे जोड़ने से रोकने के लिए है। –

10

UNIX और Linux में, यदि आप कहते हैं कि

svn add * 

फिर खोल निर्देशिका में सभी फाइलों का विस्तार होगा और कार्यक्रम ही देखेंगे के रूप में यदि आपके द्वारा लिखा गया था

svn add file-a.txt file-b.txt file-c.txt 

इत्यादि। इसका मतलब है कि सबवर्जन कमांड सोचता है कि आपने फ़ाइल को जोड़ने के लिए स्पष्ट रूप से सूचीबद्ध किया है। इस मामले में, यह इसे जोड़ देगा, भले ही svn:ignore संपत्ति सेट हो।

documentation of svn:ignore (मेरे जोर) से

:

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

+1

मैं svn को हाल ही में बनाई गई सभी फ़ाइलों को कैसे जोड़ सकता हूं, और एक साथ अनदेखा रख सकता हूं? – lyuba

+3

'svn add। --depth infinity' –

+1

अगर मैंने कुछ फाइलें जोड़ी में शामिल नहीं हैं, लेकिन इसके बजाय, उदाहरण के लिए, scss/pages/_comparison.scss में, तो आपके द्वारा सुझाए गए आदेश में उन्हें शामिल नहीं किया गया है। इसके बजाय यह svn कहते हैं: चेतावनी: '।' पहले से ही संस्करण नियंत्रण – lyuba

1

मुझे पता चला कि this question में एक बहुत अच्छा समाधान है। चूंकि उत्तर वास्तव में प्रश्न का उत्तर नहीं दे रहा है, मुझे नहीं लगता कि यह डुप्लिकेट है। संक्षिप्त प्रयोग में यूनिक्स उपकरण की शक्ति (खिड़कियों पर cygwin के साथ काम करता है):

svn status | grep '?' | sed 's/^.* /svn add /' | bash

8

सुपर पुराने प्रश्न है, लेकिन मैं अभी इस मुद्दे में पड़ गए और समाधान मैंने पाया यहाँ सूचीबद्ध नहीं है। एड्रियन स्मिथ का जवाब सही रास्ते पर है। मुझे लगता है कि दस्तावेज़ और एसवीएन ने 5 वर्षों में कई अपडेट देखे हैं। यहाँ है कि मैं क्या SVN docs

में ही क्यों न मिले svn:ignore सेट किया गया है, यदि आप एक आदेश में खोल वाइल्डकार्ड का उपयोग कर आप समस्या में पड़ सकता है। पहले सबवर्सन उन पर आधारित है, इसलिए चल svn SUBCOMMAND * सिर्फ svn SUBCOMMAND file1 file2 file3 … चल रहा तरह है शैल वाइल्डकार्ड लक्ष्यों की एक स्पष्ट सूची में विस्तार कर रहे हैं। svn add आदेश के मामले में, यह एक प्रभाव --no-ignore विकल्प गुजर जैसी ही है। तो एक वाइल्डकार्ड उपयोग करने के बजाय, svn add --force . का उपयोग इसके लिए unversioned चीजों के एक थोक शेड्यूलिंग क्या करना है। स्पष्ट लक्ष्य यह सुनिश्चित करेगा कि मौजूदा निर्देशिका को पहले से ही संस्करण नियंत्रण में होने के कारण अनदेखा नहीं किया गया है, और --force विकल्प सबवर्सन को उस निर्देशिका के माध्यम से क्रॉल करने का कारण बनता है, जबकि svn:ignore संपत्ति और global-ignores रनटाइम कॉन्फ़िगरेशन चर का सम्मान करते हुए अपवर्तन फ़ाइलों को जोड़ता है। भी svn add आदेश को --depth files विकल्प प्रदान करने के लिए है, तो आप चीजों को जोड़ने के लिए एक पूरी तरह से पुनरावर्ती क्रॉल नहीं करना चाहती सुनिश्चित करें।

लघु संस्करण svn add --force . का उपयोग करता है यह मेरे लिए पूरी तरह से काम करता है।

0

svn add --force * के बजाय इस आदेश का उपयोग करें:

svn add --force ./ 

ही SVN इस मामले में निर्देशिका में सभी फ़ाइलों को पार्स करने और इसे नजरअंदाज फ़ाइलों पर विचार करता है, लेकिन जब आप * उपयोग करते हैं, आप स्पष्ट रूप से सभी फाइलों को जोड़ने के लिए SVN बताओ।

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