मैं Mercurial में एक फ़ोल्डर के तहत सब कुछ कैसे अनदेखा कर सकता हूं


149

मैं .hignore फ़ाइल के लिए एक अभिव्यक्ति की तलाश में हूं, एक निर्दिष्ट फ़ोल्डर के नीचे सभी फाइलों को अनदेखा करने के लिए।

उदाहरण: मैं बिन के नीचे सभी फ़ाइलों और फ़ोल्डरों को अनदेखा करना चाहूंगा

वास्तव में अभिव्यक्ति कैसे बनती है, इस पर कोई सलाह

जवाबों:


173

वैकल्पिक रूप से:

syntax: glob
bin/**

यह बहुत आसान है मुझे लगता है :)
जियान

फील्हो, मुझे लगता है कि वह बिन
पीटर गिब्सन

1
यह उत्तर, प्लस इस दस्तावेज़ ने मेरी मदद की: selenic.com/mercurial/hgignore.5.html
CenterOrbit

7
bin bin/ bin/* bin/**- सभी ग्लोब के साथ एक ही काम करते हैं अर्थात बिन नाम के सभी निर्देशिकाओं और उप-निर्देशिकाओं को अनदेखा करें, लेकिन कोई भी फ़ाइल का नाम बिन.टैक्स या बिन 1 नहीं। क्षुद्रग्रह की बात क्या है?
उपयोगकर्ता

मैं इसे स्पष्टता के रूप में पसंद करता हूं, लेकिन निश्चित रूप से 'बिन' का उपयोग करें यदि आपने ग्लोब नियम (मैं एक reप्रकार का आदमी हूं ) को आंतरिक कर दिया हूं
Ry4an Brase

53

मैंने कुछ प्रयोग किए और मैंने पाया कि विंडोज पर रेगेक्स सिंटैक्स वर्तमान रिपॉजिटरी से शुरू होने वाले पथ पर लागू होता है, जिसमें बैकस्लैश स्लैश में बदल जाते हैं।

इसलिए यदि आपका भंडार उदाहरण के लिए E: \ Dev में है, hg statusतो foo / bar / file1.c और इस तरह के पैटर्न को लागू करेगा। एंकर इस रास्ते पर लागू होते हैं।

इसलिए:

  • ग्लोब पथ तत्वों पर लागू होता है और तत्व भागों में निहित होता है
  • foo किसी भी फ़ोल्डर (या फ़ाइल) से मेल खाता है जिसका नाम foo है (न कि "फ़ोबार" और न ही "बारफू")
  • * foo * किसी भी फोल्डर या फाइल को नाम में "foo" से मिलाता है
  • foo / bar * "foo" फोल्डर में "बार" से शुरू होने वाली सभी फाइलों से मेल खाता है


  • रेगेक्स मामला संवेदनशील है, लंगर नहीं
  • बेशक, बैकस्लैश रेगेक्स स्पेशल कैरेक्टर जैसे। (डॉट)
  • विंडोज़ पर / path विभाजक से मेल खाता है। इस विभाजक से मेल नहीं खाता ...
  • फू सभी फाइलों और फोल्डरों को "फू" के अंदर से मिलाता है
  • foo / "foo" के साथ समाप्त होने वाले केवल फ़ोल्डर से मेल खाता है
  • / foo / "foo" फ़ोल्डर को पथ में कहीं से मिलाता है
  • / foo / बार / फ़ोल्डर "बार" पथ में कहीं "फ़ोल्डर" फू में मेल खाता है
  • ^ फू, रिपॉजिटरी की जड़ में फू से शुरू होने वाली फाइल या फोल्डर से मेल खाता है
  • फू $ मेल फ़ाइल फू के साथ समाप्त होता है

मुझे उम्मीद है कि इससे मदद मिलेगी, मुझे एचजीआईएनओआरओआर (5) पेज थोड़ा सा सक्सेसफुल लगा


मेरे पास उपयोग में '' [Dd] ebug * / 'पैटर्न है और अजीब बात यह है, कि यह ' 'debug.txt' 'जैसी फाइलों को भी फिल्टर करता है
मेहरदाद मिर्रेज़ा

9

उन दोनों को भी एक निर्देशिका के नाम से फ़िल्टर किया जाएगा cabin, जो वह नहीं हो सकता जो आप चाहते हैं। यदि आप शीर्ष स्तर को छान रहे हैं, तो आप उपयोग कर सकते हैं:

^/bin/

binअपनी रूट के नीचे निर्देशिका के लिए , आप ^ को छोड़ सकते हैं। सिंटैक्स निर्दिष्ट करने की कोई आवश्यकता नहीं है, regexp डिफ़ॉल्ट है।


4
यह कुछ भी अनदेखा नहीं करेगा। लापरवाह रेपो रूट में केवल बातें कहता है, लेकिन प्रमुख स्लैश कैच केवल रेपो रूट में नहीं होता है।
Ry4an Brase

2

कोई बात नहीं, मैं समझ गया

syntax: regexp
bin\\*

भाव मानक पर्ल रेगुलर एक्सप्रेशन सिंटैक्स का अनुसरण करते हैं।


2
दरअसल, और आपकी अभिव्यक्ति का अर्थ है "बिन के साथ फ़ाइल या फ़ोल्डर समाप्त होना और उसके बाद 0 या अधिक बैकस्लैश" ... तो यह काम करता है क्योंकि बैकस्लैश * द्वारा nullified है, लेकिन यह अंदर "बिन" के साथ कुछ भी लागू होता है। विंडोज पर, hg की जगह / by / मिलान से पहले।
फाल्हो

2

वाक्य रचना: ग्लोब बिन / **

यह उत्तर ऊपर दिखाया गया है, हालांकि मैं यह भी जोड़ना चाहूंगा कि * और ** को अलग तरह से संभाला जाता है। ** पुनरावर्ती है, * नहीं है।

एचजी पैटर्न देखें


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.