mercurial中是否存在忽略提交选项?

有什么办法可以忽略提交与mercurial一些文件的变化?

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

在颠覆中,我简单地将它添加到忽略提交更改列表。 有没有办法做到这一点在mercurial?

如果要从“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' 

传统上,这是通过不对文件本身进行版本化来解决的,而是通过将其副本版本化为其他人使用的模板来解决。

所以你可以使用hg mv tnsnames.ora tnsnames.ora-template ,然后提交,然后把tnsnames.ora-template的文件系统拷贝到tnsnames.ora,并把tnsnames.ora添加到.hgignore文件中。

对模板的后续更改仍然会被推出,但除非有人将模板复制到实际文件,否则实际上不会改变工作环境。

你可以别名提交像'hg提交-X excluded_file.ext'我从来没有使用过mercurial,所以我只是通过手册页在这里。

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

这是一个例子忽略文件。

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