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/