Mercurial扩展自动生成.hgignore文件?

ACR*_*CRL 6 mercurial

我一直在想,有一个像"hg ignore"这样的命令可以自动将所有未跟踪的文件添加到.hgignore文件中.

手动编辑.hgignore文件是强大的,但是当我经常创建新的存储库时,能够仅添加我想要的文件然后执行hg忽略以自动让Mercurial忽略任何其他文件将会很好.

有谁知道这样做的任何扩展?

Nia*_* C. 12

一旦添加了所需的所有文件,请尝试这样做:

hg stat --unknown --no-status >> .hgignore

您可以创建一个命令来自动生成.hgignore使用别名.在类Unix系统上,.hg/hgrc将以下行添加到您的(或Mercurial的其他配置文件之一):

[alias]
ignore = !echo 'syntax: glob' >> $(hg root)/.hgignore && \
          $HG status --unknown --no-status >> $(hg root)/.hgignore
Run Code Online (Sandbox Code Playgroud)

这将为您提供一个hg ignore命令,该命令将.hgignore使用所有当前未知的文件填充文件,从而将它们变为忽略.

在Windows上,别名的语法是:

[alias]
ignore = !echo syntax: glob > .hgignore && "%HG%" status --unknown --no-status -X .hgignore >> .hgignore
Run Code Online (Sandbox Code Playgroud)

在Windows上,您必须在存储库的根目录中运行它,否则将在当前目录中创建.hgignore文件,这可能不是您想要的.

!别名中的语法是Mercurial 1.7中的新增功能.在早期版本中,您可以添加

[alias]
ignore = status --unknown --no-status
Run Code Online (Sandbox Code Playgroud)

然后.hgignore自己将此命令的输出重定向到该文件:

 hg ignore >> .hgignore
Run Code Online (Sandbox Code Playgroud)

syntax: glob如有必要,您还需要注意添加一行(默认语法是正则表达式).