Mercurial如何忽略包含已添加到源代码管理中的文件的子文件夹

时间:2018-09-18 12:11:56

标签: mercurial

我有一个结构如下的项目

project_dir/
  WebContent/
    es5/
    ...
  src/ 
  ...
  .hgignore  

我想使用以下模式忽略WebContent/es5目录下的所有内容:

syntax: glob
WebContent/es5/**

syntax: regexp
^WebContent/es5

syntax: regexp
^WebContent/es5$

但该文件夹中个修改过的文件仍在跟踪中。有人可以帮我吗?

1 个答案:

答案 0 :(得分:2)

documentation中包含忽略文件的线索:

  

Mercurial系统在根目录中使用一个名为.hgignore的文件   存储库的目录以控制其在搜索时的行为   当前未跟踪的文件。

如果您已经在仓库中的子目录中添加了文件(无论是显式的还是在将模式添加到.hgignore文件之前),mercurial都会记住它,直到您hg forget

% hg init foo

% cd foo

% ls

% mkdir sub

% cat <<EOF > .hgignore
^sub/
EOF

% touch a

% touch sub/b sub/c

% hg st
? .hgignore
? a

% hg add sub/b

% hg st
A sub/b
? .hgignore
? a

% hg forget sub
removing sub/b

% hg st
? .hgignore
? a

documentation中提供了一个有关如何忘记.hgignore排除的所有文件的示例:

   - forget files that would be excluded by .hgignore:

        hg forget "set:hgignore()"