Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Version control 有没有一种方法可以在hg中选择我想要的,而不是忽略我不想要的';我不想要_Version Control_Mercurial_Tortoisehg - Fatal编程技术网

Version control 有没有一种方法可以在hg中选择我想要的,而不是忽略我不想要的';我不想要

Version control 有没有一种方法可以在hg中选择我想要的,而不是忽略我不想要的';我不想要,version-control,mercurial,tortoisehg,Version Control,Mercurial,Tortoisehg,我知道Hg的ignore很有用,但是有没有一种方法可以指定我关心的文件,比如忽略其余的文件 如果我在回购协议中有a.c,a.h,a.o,a.exe,a.err,有没有办法告诉Hg,我只想保留*.c*.h,忽略列表中没有的所有内容。嘿,@vonC是对的,我不能就此罢休。没有办法把hgignore变成白名单而不是黑名单。我想这是设计出来的(当然不是我设计的) 您有几个选择: 将所有内容(*)添加到您的.hgignore文件中,然后添加要跟踪的hg Add文件--添加始终覆盖忽略 只需分解并制作一个合

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


如果我在回购协议中有
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文件。

    似乎类似于白名单,但Ry4an不会高兴:是hg的插件吗?顺便问一下,
    *.c
    **.c
    之间有什么区别,尽管这是另一个问题:)不,钩子是内置的功能。请尝试
    man hgrc
    或阅读Mercurial书籍的第10章以获得解释。**。c在所有路径中包括*.c。简而言之,
    *
    匹配除斜杠以外的任何东西,
    ***
    匹配任何东西。它对我不起作用。我认为钩子应该是
    pre-commit
    ,破折号是@Ry4an在中说的,而
    --unknown
    选项应该是
    --ignored
    ,因为被忽略的文件是已知的。因此,代码可以是
    pre-commit.add=hg add$(hg status--ignored--no status--I'**.c'-I'**.h')