रुपये में निफ्टी --cvs-exclude
"सीवीएस करता है" उसी तरह फाइलों को अनदेखा करने का एक निफ्टी विकल्प शामिल है , लेकिन सीवीएस वर्षों से अप्रचलित है। क्या इसे बनाने के लिए कोई तरीका भी है जो उन फ़ाइलों को शामिल करता है जिन्हें आधुनिक संस्करण नियंत्रण प्रणालियों (Git, Mercurial, Subconersion) द्वारा अनदेखा किया जाएगा?
उदाहरण के लिए, मैं GitHub से बाहर की जाँच की बहुत सारी Maven परियोजनाएं हैं। आमतौर पर वे एक .gitignore
सूची में कम से कम target
, डिफ़ॉल्ट मावेन बिल्ड निर्देशिका (जो शीर्ष स्तर पर या सबमॉडुल्स में मौजूद हो सकते हैं) शामिल हैं। चूंकि इन निर्देशिकाओं की सामग्री पूरी तरह से डिस्पोजेबल है, और वे स्रोत कोड से कहीं अधिक बड़े हो सकते हैं, मैं बैकअप के लिए rsync का उपयोग करते समय उन्हें बाहर करना चाहूंगा।
निश्चित रूप से मैं स्पष्ट रूप से कह सकता हूं --exclude=target/
लेकिन यह गलती से असंबंधित निर्देशिकाओं को दबा देगा जो कि केवल नाम के रूप में target
होते हैं और इसे अनदेखा नहीं किया जाना चाहिए।
और मैं अपनी डिस्क पर सभी फ़ाइल नाम और किसी भी .gitignore
, .hgignore
या svn:ignore
संपत्ति में वर्णित पैटर्न के लिए निरपेक्ष पथों की एक पूरी सूची की आपूर्ति कर सकता हूं, लेकिन यह एक बड़ी सूची होगी जो किसी प्रकार की स्क्रिप्ट द्वारा निर्मित की जाएगी।
चूंकि rsync में CVS के अलावा VCS चेकआउट के लिए कोई अंतर्निहित समर्थन नहीं है, क्या यह उनके अनदेखा पैटर्न को खिलाने के लिए कोई अच्छी चाल है? या किसी प्रकार की कॉलबैक प्रणाली जिससे उपयोगकर्ता स्क्रिप्ट से पूछा जा सकता है कि क्या दी गई फ़ाइल / निर्देशिका को शामिल किया जाना चाहिए या नहीं?
अपडेट : --filter=':- .gitignore'
जैसा कि लॉर्डजैव द्वारा सुझाया गया --filter=:C
है, सीवीएस के लिए Git के लिए भी काम करता है, कम से कम मेरे द्वारा पाए गए उदाहरणों पर, हालांकि यह स्पष्ट नहीं है कि क्या सिंटैक्स सटीक मिलान है। --filter=':- .hgignore'
मर्क्यूरियल के लिए बहुत अच्छा काम नहीं करता है; उदाहरण के लिए ( रेगुलर समतुल्य Git ) की .hgignore
तरह एक लाइन युक्त एक नियमित अभिव्यक्ति के रूप में rsync द्वारा मान्यता प्राप्त नहीं है। और कुछ भी तोड़फोड़ के लिए काम नहीं करता है, जिसके लिए आपको 1.6 या इससे पहले काम करने वाली कॉपी के लिए पार्स करना होगा , और 1.7 या बाद में काम करने वाली कॉपी के लिए अपने हाथों को फेंकना होगा।^target$
/target/
.svn/dir-prop-base
:-
वास्तव में क्या मतलब है? कोलन का क्या अर्थ है? पानी का छींटा क्या?
check-ignore
उपकेंद्र है जो विभिन्न "अनदेखा" फ़ाइलों को पार्स करने की कड़ी मेहनत से निपट सकता है, यदि आप "सभी गैर-अनदेखा" फ़ाइलों के विकल्प की एक सूची बनाना चाहते हैं। यहाँ मेरा उत्तर यह बताता है कि यह कैसे करना है।