代码之家  ›  专栏  ›  技术社区  ›  Nick Randell

mercurial中是否有“提交时忽略”选项?

  •  38
  • Nick Randell  · 技术社区  · 16 年前

    使用mercurial提交时,有没有办法忽略对某些文件的更改?

    我有一个特定的情况,我们有一个指向127.0.0.1的默认oracle tnsnames.ora文件,但是一些开发人员会修改它以指向其他系统,但我们不想更改默认文件。

    在subversion中,我简单地将其添加到提交时忽略变更列表中。在mercurial中有这样做的方法吗?

    4 回复  |  直到 16 年前
        1
  •  52
  •   Giorgos Keramidas    16 年前

    如果要从“hg commit”命令中忽略的文件已被“跟踪”,则应使用-X选项。传递给-X的模式非常灵活,因此可以运行,例如:

    % hg stat
    A etc/foo.conf
    M src/bar.c
    M lib/libbar/loader.c
    % hg commit -X '**.conf'
    

    避免提交任何扩展名为“.conf”的文件,不管它在源代码树中有多深。在上面显示的工作区中,这将提交“src/bar.c”和“lib/libbar/loader.c”,而不是“etc/foo.conf”。

    要排除多个文件名模式,请使用多个-X选项,即:

    % hg commit -X '**.conf' -X '**.sh'
    
        2
  •  22
  •   Zed    16 年前

    你会的 hg mv tnsnames.ora tnsnames.ora-template ,然后提交,然后直接将tnsnames.ora-template的文件系统副本复制到tnsnames.ora,并将tnsnames.ora添加到.hgnore文件中。

        3
  •  1
  •   Josh Matthews    16 年前

    您可以将commit别名为'hg commit-X excluded_file.ext',我从来没有使用过mercurial,所以我只看一下手册页。

        4
  •  -2
  •   0x6adb015    16 年前

    在Mercurial的文档中查找.hgignore文件。

           # use glob syntax.
           syntax: glob
    
           *.elc
           *.pyc
           *~
    
           # switch to regexp syntax.
           syntax: regexp
           ^\.pc/
    
    推荐文章