通过搜索,我发现如何让Mercurial忽略位于存储库目录的根目录中的某些目录(以及它们包含的文件/目录),但我无法工作了解如何将其扩展到目录,这些目录是中的几个级别。让Mercurial忽略除某些子目录之外的所有内容
在这种情况下,我只希望版本控制以下目录:
app/design/frontend/rc
skin/frontend/rc
其结果是,我的.hgignore文件看起来像这样。
syntax=regexp
^(?!(app(/|$))|(skin(/|$)))
^app/code
^app/design/adminhtml
^app/design/frontend/base
^app/design/frontend/default
^app/design/install
^app/etc
^app/locale
^app/Mage.php
^app/.htaccess
^skin/adminhtml
^skin/frontend/base
^skin/frontend/default
^skin/install
我敢肯定有这样做,不涉及应用程序和皮肤中挑选出的其他目录的一个更好的方法,并作为我可能会想为我想了几个项目做我会在这里问。谢谢。
指甲有正确的答案。不要在正则表达式语法中使用否定断言,只需忽略“。*”,然后手动“添加”您想要跟踪的文件。添加覆盖'.hgignore',所以一旦你添加它们就好像你在正则表达式中制作了一个不可读的异常。 – 2010-11-19 14:51:10
早些时候,当我对负面断言进行抨击时,感觉就像我非常接近,但它不适用于嵌套目录。如果我能找到如何做的话,那么每次添加新文件时都会手动添加所需的目录/文件。 – 2010-11-19 15:15:37
在更新我的答案时,我注意到了.hgignore中的一个错字。它应该是'syntax:regexp',而不是'syntax = regexp'。 – 2010-11-19 15:27:42