有没有办法在hg中选择我想要的东西,而不是忽略我不想要的东西

时间:2012-05-07 08:29:37

标签: version-control mercurial tortoisehg

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

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

1 个答案:

答案 0 :(得分:3)

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

您有几个选择:

  1. 所有内容.*)添加到您想要跟踪的.hgignorehg add文件中 - 添加始终覆盖忽略

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

  3. 底线是意外地追踪你不想跟踪的东西是不太危险的情况,而不是意外地忘记跟踪你希望跟踪的东西。前者会在您的仓库中产生一点噪音,而后者会导致潜在的数据丢失。

    如果您真的想要获得幻想,可以在.*添加“.hgignore”,然后创建一个这样的钩子:

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

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