Mercurial忽略除特定文件名之外的所有文件

时间:2012-02-15 17:56:56

标签: mercurial ignore hgignore

我有一个大型文件系统,其中几乎每个文件夹都有一个名为content.txt

的文件

我想跟踪名为content.txt的每个文件并自动忽略其他所有内容。我希望repo能够自动跟踪名为content.txt的新文件,因此我不想忽略.hgignore中的所有内容,然后手动添加。

任何人都知道怎么做?

2 个答案:

答案 0 :(得分:2)

  1. 它必须是regexp模式,而不是glob
  2. 您必须调试路径部分的正则表达式,但“除了content.txt之外的所有草稿”草稿为re:.*\.(?!content.txt)希望
  3. 替代解决方案可以 * 忽略所有 *将content.txt文件模式添加到提交命令(-I选项),请参阅hg help commithg help patterns

    hg commit -I '**content.txt'

    修改

    re:.*/(?!content.txt)

答案 1 :(得分:1)

试试这个:

syntax: regexp
\.(?!txt$)[^.]+$ # "*." is followed by "txt" and we're at the end
(?<!\.)txt$ # "txt" follows a "."
(?<!/)content\. # "content." follows path separator
(?<!content)\. # "." follows "content"

我在试验时留下的评论,以理解这一切。 (这是第一个中的glob语法。)