تركيب .hgignore لتجاهل الملفات فقط، وليس الدلائل؟
سؤال
ولدي مشكلة وأنا لا يمكن أن يبدو لفهم. أنا باستخدام TortoiseHg (الإصدار 0.7.5) على ويندوز على لينكس ولكن لدي نفس المشكلة. ومن هنا:
وملفي .hgignore
:
syntax: regexp
^[^\\/]+$
ما أحاول تحقيقه هو أن تضيف إلى قائمة التجاهل الملفات التي هي في جذر مستودع الزئبق.
وعلى سبيل المثال إذا كان لدي مثل هذا:
.hg
+mydir1
+mydir2
-myfile1
-myfile2
-anotherfile1
-anotherfile2
.hgignore
وأريد myfile1 (2) وanotherfile1 (2) لا يمكن تجاهله (الأسماء هي فقط لغرض هذا المثال - لم يكن لديهم قاعدة بسيطة التي يمكن وضعها في ملف hgignore بسهولة)
هل هناك شيء أنا في عداد المفقودين لأنني متأكد من أن التعبير العادي هو جيد (حتى اختبرته)؟ أفكار؟
هل هناك طريقة أسهل لتحقيق ذلك؟ [إضافة إلى تجاهل قائمة الملفات التي هي في جذر مستودع الزئبقي]
المحلول
وأنا نقلت هذا السؤال في #mercurial
على irc.freenode.net وكان الرد أنه لا يمكن التمييز بين الملفات والدلائل - الدليل يتم مطابقة بدون مائلة أنك تبحث عنه في التعبير العادي الخاص بك
ولكن، إذا كنت يمكن أن نفترض أن الدلائل الخاصة بك وسوف يحتوي أبدا .
الكامل وقفة، ولكن سوف الملفات الخاصة بك، ثم شيئا من هذا القبيل يبدو للعمل:
^[^/]*\..*$
واختبرته في مستودع مثل هذا:
% hg status -ui ? a.txt ? bbb ? foo/x.txt ? foo/yyy
وإضافة ملف .hgignore
يعطي:
% hg status -ui ? bbb ? foo/x.txt ? foo/yyy I .hgignore I a.txt
ومما يدل على أن ملف a.txt
يتم تجاهل بشكل صحيح في الدليل الجذر، ولكن x.txt
في الدليل الفرعي foo
ليست كذلك. يمكنك أن ترى أيضا أن ملف يسمى bbb
فقط في الدليل الجذر هو لا م> تجاهلها. ولكن ربما يمكنك إضافة هذه الملفات نفسك إلى ملف .hgignore
.
إذا كنت يحدث لديك دليل مثل bar.baz
في الدليل الجذر، ثم هذا الدليل وجميع الملفات داخل سيتم تجاهل. آمل أن يساعد هذا قليلا.
نصائح أخرى
وهنا هو خدعة قذرة:
وإنشاء ملف فارغ ".hidden" في الدليل الخاص بك، مما يضيف إلى .hgignore:
^mydir/(?!\.hidden).+$
وهذا سيتم تجاهل كل الملفات في الدليل باستثناء ".hidden".