2

我知道 Hg 的忽略很有用,但是有没有一种方法可以指定我关心的文件,而忽略其余的,例如。

如果我a.c, a.h, a.o, a.exe, a.err在回购中有,有没有办法告诉 Hg,我只想保留*.c *.h并忽略不在列表中的所有内容。

4

1 回答 1

3

嘿,@vonC 是对的,我不能放过这个。没有办法将 hgignore 变成白名单而不是黑名单。我收集它是设计的方式(我当然没有设计它)。

你有几个选择:

  1. 所有内容( .*) 添加到您想要跟踪的文件中 - 添加总是覆盖.hgignore忽略hg add

  2. 只需分解并制作一个适当的黑名单:hg status --no-status --unknown >> .hgignore这是一个很好的起点。

底线是意外跟踪您不想跟踪的内容比不小心忘记跟踪您希望跟踪的内容更危险。前者会在您的存储库中产生一点噪音,而后者会导致潜在的数据丢失。

如果你真的想变得花哨,你可以添加 ' .*'.hgignore然后创建一个像这样的钩子:

[hooks]
precommit.add = hg add $(hg status --unknown --no-status -I '**.c' -I '**.h')

这将在您提交时自动添加任何新的 .c 和 .h 文件。

于 2012-05-07T16:13:01.213 回答