2012-06-20 11 views
13

मेरे पास एक जंक फ़ोल्डर है, जहां मेरा एप्लिकेशन अस्थायी फ़ाइलों को रखता है। मैं उन्हें (निश्चित रूप से) नहीं करना चाहता, लेकिन फ़ोल्डर मौजूद होना चाहिए या एप्लिकेशन क्रैश हो जाएगा।एसवीएन: अनदेखा करें लेकिन एक फ़ोल्डर को हटाएं

यदि मैं मानक TortoiseSVN अनदेखी सुविधा का उपयोग करता हूं, तो यह "svn: junk_folder" को मूल फ़ोल्डर में अनदेखा कर देगा, लेकिन यह "junk_folder" भी हटा देगा जो नहीं हो सकता है।

अगर मैं केवल ऑपरेशन हटा देता हूं (TortoiseSVN द्वारा किया गया) लेकिन "svn: ignore" संपत्ति जोड़ना छोड़ दें, यह समाधान विफल हो जाएगा। TortoiseSVN गैर-संस्करण वाले "junk_folder" के अंदर फ़ाइलों की रिपोर्ट करेगा, जिन्हें मैं टालना चाहता हूं।

क्या कोई ऐसा समाधान है जो मुझे एसवीएन में विशेष फ़ोल्डर को पूरी तरह से अनदेखा करने की अनुमति देगा (इसलिए कोई फर्क नहीं पड़ता कि इसमें क्या रखा जाएगा, बिना विचलित के रूप में रिपोर्ट नहीं की जाएगी और इसे ऑटो भी नहीं किया जाएगा) बिना हटाए यह?

EDIT: मैं यह जोड़ना भूल गया कि मैं पहले से ही संस्करण वाले फ़ोल्डर के बारे में बात कर रहा हूं। ऐसा लगता है कि, यदि आप अनदेखा करते हैं (svn: TortoiseSVN में अनदेखा या उचित विकल्प) एक फ़ोल्डर जो अभी तक संस्करण नहीं था (पहले प्रतिबद्ध करने से पहले) तो सब कुछ ठीक है। लेकिन, अगर आप पहले से ही भंडार में मौजूद फ़ोल्डर पर ऐसा करते हैं, तो TortoiseSVN इसे हटाए जाने के रूप में चिह्नित करता है और इसे अगले प्रतिबद्धता पर दोनों भंडार (लेकिन स्थानीय कार्य प्रतिलिपि से नहीं) से हटा देता है।

+0

आप बस फ़ोल्डर और कोई भी नहीं जोड़ा जा सका इसकी सामग्री के, तो जांच कर एक खाली फ़ोल्डर का उत्पादन करेगा? – Wug

+0

@Wug - मुझे लगता है क्योंकि उसका ऐप वहां फाइलें बनाएगा, इसलिए वह नहीं चाहता कि एसवीएन लगातार उसे बताए कि उस निर्देशिका में अनवरोधित फाइलें हैं। – CodingWithSpike

+0

बिल्कुल। इस फ़ोल्डर में सामग्री या परिवर्तनों के बारे में कोई रिपोर्ट नहीं चाहिए, विशेष रूप से क्योंकि उस जंक फ़ोल्डर के अंदर हजारों फाइलें और फ़ोल्डर्स हैं, और मेरे प्रतिबद्धता संवाद ऐसी प्रविष्टियों के साथ अधिभारित हो जाते हैं। – trejder

उत्तर

12

मुझे विश्वास है कि आप केवल एक svn जोड़ सकते हैं: उस फ़ोल्डर में "junk_folder" के बजाय "*" के लिए अनदेखा करें (दूसरे शब्दों में, "junk_folder/*" को अनदेखा करें)।

अगर TortoiseSVN उस के लिए एक बटन है मैं नहीं जानता, लेकिन कमांड लाइन से आप आदेश के साथ कर सकते हैं:

SVN propset SVN: उपेक्षा "*" junk_folder

(कम से कम मुझे लगता है कि सही वाक्य रचना, मेरे सिर के ऊपर से है। अगर कोई सोचता है कि गलत है, कृपया मुझे सही करें)

+0

मुझे ध्यान रखना चाहिए कि इस विधि में अभी भी एक खाली "junk_folder" है जो एसवीएन में चेक किया गया है, इसलिए जब आप एक साफ चेकआउट करते हैं, तो आपको खाली "जंक_फोल्डर" मिल जाएगा, लेकिन एसवीएन आपको बनाई गई किसी भी विचलित फ़ाइलों के बारे में नहीं बताएगा उस फ़ोल्डर में बाद में। मुझे लगता है कि आप यही पूछ रहे थे ... – CodingWithSpike

+0

और यह वही है जो मुझे चाहिए! :] मुझे प्रत्येक चेकआउट पर एक नए फ़ोल्डर में "junk_folder" (खाली) चेक आउट करने की आवश्यकता है। और मुझे अनदेखा करने के लिए, इसके अंदर क्या कुछ भी चाहिए। आपका समाधान सही है! – trejder

2

मैं इसे कंपाइलर इंटरमीडिएट आउटपुट फ़ोल्डर्स जैसी चीजों के लिए उपयोग करता हूं, और उसने कभी भी कुछ भी नहीं हटाया है।

इसे फिर से जांचने के लिए, मुझे मेरी कामकाजी प्रतियों में से एक में निर्देशिका नहीं मिली। मैंने निर्देशिका पर राइट क्लिक किया, और "अनदेखा सूची में जोड़ें" विकल्प पर नेविगेट किया। यह निर्देशिका नाम में विस्तारित हुआ। मैंने निर्देशिका नाम का चयन किया और एक पॉप अप संदेश प्राप्त किया जिसमें यह नोट किया गया कि इसे अनदेखा सूची में जोड़ा गया था। कार्यशील प्रतिलिपि स्थिति की जांच कर रहा है, मूल फ़ोल्डर में केवल एक संपत्ति थी। हटाने के लिए कोई फाइल चिह्नित नहीं की गई थी।

Ignoring Files And Directories

enter image description here

एक तरफ ध्यान दें के रूप में, जब "संशोधन के लिए जाँच करें" और संवाद के नीचे स्थित एक चेकबॉक्स के साथ संवाद कमिट का उपयोग कर आप भी unversioned फ़ाइलें छुपा सकते हैं।

+1

यह बहुत अजीब बात है जो आपने लिखा था! जब भी मैं इस विकल्प का उपयोग करता हूं, तो यह तुरंत हटाए गए फ़ोल्डर को चिह्नित करता है और वास्तव में इसे अगले प्रतिबद्धता पर हटा देता है। जो एक दुर्घटना के लिए आवेदन की ओर जाता है। यह लगभग सौ बार परीक्षण किया जाता है, इसलिए मैं विश्वास नहीं कर सकता कि आप इस विकल्प का उपयोग किसी फ़ोल्डर (फाइल नहीं!) पर करते हैं और इस फ़ोल्डर को अगली प्रतिबद्धता पर हटा नहीं देते हैं। स्क्रीनशॉट में – trejder

+0

, क्रैशमस्ट्रर फ़ोल्डर के भीतर फ़ाइल (जिसे इस मामले में Copy.bak नाम दिया गया है) पर राइट-क्लिक किया होगा, फ़ोल्डर पर नहीं। – CodingWithSpike

+0

स्क्रीन TorsoiseSVN दस्तावेज़ से है। उदाहरण स्क्रीन एक फ़ाइल है, लेकिन आप निर्देशिका के लिए ऐसा ही कर सकते हैं, आप फ़ाइल नाम/एक्सटेंशन विकल्पों के बजाय फ़ोल्डर नाम देखेंगे। – crashmstr

1

आपका क्या मतलब है "अगर मैं मानक का उपयोग TortoiseSVN सुविधा की अनदेखी, यह होगाजोड़ें 210 संपत्ति मूल फ़ोल्डर में है, लेकिन यह junk_folder भी हटा देगा ... "?

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

यह junk_folder कैसे बनाया गया है? क्या यह एक स्क्रिप्ट द्वारा उपयोग किया जाता है, या आप इसे मैन्युअल रूप से करते हैं? वास्तव में यह कब हटा दिया जाता है? क्या आपका मतलब है कि जब आप कोई नया चेकआउट करते हैं, junk_folder वहां नहीं है, या जैसे ही आप svn:ignore संपत्ति को अपनी मूल निर्देशिका में जोड़ते हैं तो TortoiseSVN इसे हटा देता है?

आप अपने भंडार में स्थायी रूप से उस फ़ोल्डर की जरूरत है, लेकिन यह खाली रहना चाहिए, आप रिपोजिटरी को junk_folder जोड़ सकते हैं, और फिर एक svn:ignore संपत्ति है कि * पर सेट है बनाते हैं। यह फ़ोल्डर में कुछ भी अनदेखा करेगा।

मेरा सुझाव यह सुनिश्चित करना है कि जो भी स्क्रिप्ट को junk_folder की आवश्यकता है, यदि यह अस्तित्व में नहीं है, और इसे अपने भंडार में नहीं जोड़ना है। आप अपने भंडार से बाहर रखने के लिए this pre-commit hook का उपयोग कर सकते हैं। यह संभालने का सबसे अच्छा तरीका होगा। junk_folder नाम की एक खाली निर्देशिका आपके भंडार में क्यों होनी चाहिए इसका कोई कारण नहीं है।

+0

हाय! ऊपर के रूप में, प्रश्न और सभी टिप्पणियों में संपादित करने के लिए। सबवर्सन (TortoiseSVN) एक फ़ोल्डर हटा देता है, अगर आप इसे अनदेखा करते हैं और यदि यह पहले से ही संस्करणित है। हटाए बिना अनदेखा केवल तभी होता है, यदि आप संस्करण वाले फ़ोल्डर को अनदेखा करते हैं। सभी संस्करण फ़ोल्डरों के लिए आपको सामग्री पर "svn: ignore *" का उपयोग करना होगा। क्योंकि, यदि आप किसी फ़ोल्डर को अनदेखा करते हैं, तो इसे अगले प्रतिबद्धता पर भंडार (लेकिन एलडब्ल्यूसी नहीं) से हटा दिया जाएगा। – trejder

+0

@trejder आप कह रहे हैं कि यदि 'junk_folder' नामक संस्करण वाला फ़ोल्डर है, और मैं मूल फ़ोल्डर में' svn: junk_folder' को अनदेखा करता हूं, तो Tortoise कुछ भी करने के बिना 'junk_folder' को हटा देगा? मुझे लगता है कि मैं उसमें तर्क देख सकता हूं, लेकिन यह खतरनाक लगता है। –

+0

@trejder बस TortoiseSVN के लिए प्रलेखन की जांच की। आप अनदेखा सूची में पहले से मौजूद फ़ाइल या फ़ोल्डर को जोड़ नहीं सकते हैं। हालांकि, आप अनदेखा सूची में "अनदेखा और विचलन फ़ाइलें" का चयन कर सकते हैं। –

2

मैं ग्रहण सबवर्सिव और कछुए एसवीएन का उपयोग कर रहा हूं।

इस समस्या का मेरे दृष्टिकोण (लेकिन मुझे लगता है ग्रहण एक ही सुविधा है)

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

मैं ज्यादातर जूमला पर वेबसाइटों का विकास कर रहा हूं, और नियमित रूप से इंस्टॉलर या अन्य घटक उन स्थानों पर फ़ाइलों को छोड़ते हैं जिन्हें मैं रेपो में नहीं चाहता हूं। और जैसा कि बताया गया है 'svn:' राइट क्लिक अनदेखा 'विधि का उपयोग करके इन फ़ोल्डरों को अनदेखा करना मतलब है कि इन फ़ोल्डर को रेपो से पूरी तरह से बाहर रखा गया है जो आप नहीं चाहते हैं - आप उन फ़ोल्डरों की सामग्री को छोड़कर चाहते हैं, या कभी-कभी केवल फाइलें कुछ विस्तार

से stackoverflow मैं आज साइन अप किया है सिर्फ इस सवाल का जवाब देने के लिए बहुत कुछ सलाह प्राप्त करने के बाद इसलिए आशा है कि यह किसी को मदद करता है - मैं स्क्रीन शॉट नहीं बल्कि पर्याप्त प्रतिनिधि :(संलग्न करने की कोशिश की