我一直在想,拥有像“hg ignore”这样的命令会很自然地将所有未跟踪的文件添加到.hgignore文件中。
手动编辑.hgignore文件非常强大,但是当我经常创建新的存储库时,能够仅添加我想要的文件然后执行hg忽略以自动让Mercurial忽略任何其他文件将会很好。
有没有人知道这样做的任何扩展?
答案 0 :(得分:12)
一旦添加了所需的所有文件,请尝试此操作:
hg stat --unknown --no-status >> .hgignore
您可以创建一个命令,使用alias自动生成.hgignore
。在类Unix系统上,将以下行添加到.hg/hgrc
(或Mercurial的other configuration files之一)中:
[alias]
ignore = !echo 'syntax: glob' >> $(hg root)/.hgignore && \
$HG status --unknown --no-status >> $(hg root)/.hgignore
这将为您提供一个hg ignore
命令,该命令将使用所有当前未知的文件填充.hgignore
文件,从而将它们变为忽略。
在Windows上,别名的语法是:
[alias]
ignore = !echo syntax: glob > .hgignore && "%HG%" status --unknown --no-status -X .hgignore >> .hgignore
在Windows上,必须在存储库的根目录中运行它,否则将在当前目录中创建.hgignore文件,这可能不是您想要的。
别名中的!
语法是Mercurial 1.7中的新增功能。在早期版本中,您可以添加
[alias]
ignore = status --unknown --no-status
然后自己将此命令的输出重定向到.hgignore
文件:
hg ignore >> .hgignore
如果需要,您还需要注意添加syntax: glob
行(默认语法是正则表达式)。