2010-03-04 46 views
6

我有一个需要一些配置文件的项目。我想保留存储库中的默认配置filse。但是,我不想为每次提交都指定-X标志。有没有一种标准的方式来标记一组修改后的文件被永久排除在提交之外?从Mercurial提交中排除项目配置文件

回答

4

有趣的问题,我希望你能得到更好的答案。面临类似的问题,我也做了以下内容:

  • 重命名的配置文件,从而例如,而不是noweb.cfg我有noweb.cfg.default。该文件很少更改,并保持在修订控制下。

  • 实际的配置文件,noweb.cfg,可能会经常变化,但被放在.hgignore文件,这是从来没有承诺。

  • 需要我有一个特殊的Makefile目标,从*.cfg.default重建*.cfg

这种解决方案并不理想,因为在.cfg文件的更改将丢失的.cfg.default变化时。原则上你可以用diff3或者更复杂的合并工具来解决这个问题,但是我从来没有精力充沛地去那里。

3

你可以使用(洪水猛兽)默认部分在.hgrc:

[defaults] 
    commit = -X thefileyouwanttoexclude 

如果你能锻炼你的手指的首选方式做到这一点是用别名来代替:

[alias] 
    cmt = commit -X thefileyouwanttoexclude 

然后你开始使用hg cmt而不是提交。

+1

你为什么说“多冤枉”?它皱起了眉头吗?或者只是不太知名? – 2010-03-04 19:52:13

+1

它可以正常工作,但是mercurial的创建者mpm已被弃用[默认值]。它在设计上会改变命令以不可见的方式进行的操作,因此使用这些命令的脚本或扩展程序将使用它们可能不想要的参数运行命令。 例如,如果我做“[默认] \ npush = -f”,因为我总是希望使用-f这很好,但是如果脚本使用'push'而不使用-f,因为它想确保不创建新的遥远的头,脚本将使用-fw/o知道它。别名只是更安全,完成几乎相同的事情,只要可以重新训练一个人的手指。 – 2010-03-04 20:52:41