开发者

Mercurial extension to automatically generate .hgignore file?

开发者 https://www.devze.com 2023-02-24 03:26 出处:网络
I have been thinking that it sure would be nice to have a command like \"hg ignore\" that would automatically add all untracked files to the .hgignore file.

I have been thinking that it sure would be nice to have a command like "hg ignore" that would automatically add all untracked files to the .hgignore file.

Manually editing the .hgignore file is powerful, but when I am frequently creating new repositories it would be nice to be able to add only the files I want and then do 开发者_运维百科an hg ignore to automatically have Mercurial ignore any others.

Does anyone know of any extensions that do this?


Try this once you've added all the files you need:

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

You can create a command to automatically generate your .hgignore using an alias. On a Unix-like system, add the following lines to your .hg/hgrc (or one of Mercurial's other configuration files):

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

This will give you a hg ignore command that will populate the .hgignore file with all currently unknown files, thus turning them into ignored.

On Windows, the syntax for the alias is:

[alias]
ignore = !echo syntax: glob > .hgignore && "%HG%" status --unknown --no-status -X .hgignore >> .hgignore

On Windows, you must run it in the root directory of the repository, otherwise the .hgignore file will be created in the current directory, which is probably not what you want.

The ! syntax in aliases is new in Mercurial 1.7. In earlier versions you can add

[alias]
ignore = status --unknown --no-status

and then redirect the output of this command to the .hgignore file yourself:

 hg ignore >> .hgignore

You will then also need to take care of adding a syntax: glob line, if necessary (the default syntax is regular expressions).

0

精彩评论

暂无评论...
验证码 换一张
取 消