我知道Hg的忽略很有用,但是有没有办法可以指定我关心的文件,例如忽略其余文件。
如果我在存储库中有a.c, a.h, a.o, a.exe, a.err
,有没有办法告诉Hg,我只想保持*.c *.h
,忽略列表中没有的所有内容。
呵,@vonC是对的,我不能放过这个。 没有办法将 hgignore 变成白名单而不是黑名单。 我收集它是设计的方式(我当然不是设计它)。
您有以下几种选择:
将所有内容(
.*
)添加到您的.hgignore
,然后hg add
您想要跟踪的文件 - 添加始终覆盖忽略只需分解并制作一个适当的黑名单:
hg status --no-status --unknown >> .hgignore
是一个很好的起点。
最重要的是,意外跟踪您不想跟踪的内容比意外忘记跟踪您希望被跟踪的内容危险性要小。 前者在存储库中会产生一点噪音,而后者会导致潜在的数据丢失。
如果你真的想变得花哨,你可以在你的.hgignore
中添加'.*
',然后创建一个这样的钩子:
[hooks]
precommit.add = hg add $(hg status --unknown --no-status -I '**.c' -I '**.h')
这将在您提交时自动添加任何新的 .c 和 .h 文件。