如何在Mercurial中保留本地版本的文件

时间:2013-08-12 16:51:26

标签: mercurial

我有一个版本化的配置文件,我们称之为Web.Config。我希望能够将原始版本的文件保存在repo中作为模板,但是通过pull,fetches,merges等维护我的本地修改版本。这在Mercurial中是否可行?

2 个答案:

答案 0 :(得分:1)

这里经常被问到/回答,但我会咬人:

执行此操作的方法是在存储库中保留一个模板,并将实际修改后的版本保留为仅限本地并在.hgignore中列出。例如,将文件app.config.sample保留在repo中,并使您的构建/启动脚本查找app.config中列出的.hgignore。如果你想获得想象,你甚至可以让你的启动/构建脚本将示例文件复制到实际文件中(如果它在运行时不存在)。

简而言之,没有良好的方法可以同时跟踪(添加)和未跟踪(未提交更改)文件,除非您想使用类似命令手动执行此操作hg commit -I app.config,即使是别名,你最终也会忘记。

答案 1 :(得分:0)

你可以:

  • 在MQ-patch中创建仅限本地的自定义配置(重命名或复制模板,对本地配置应用所需的更改),为本地工作应用补丁,在推送之前取消应用(或使用补丁的安全阶段,甚至不会发布它们如果适用的话)
  • 在本地分支中构建自定义本地配置(普通命名分支,必须从不合并为默认,只将默认合并到本地分支)并始终使用{{ 1}}(直接或作为alias-command):因为本地分支没有默认头部的祖先,所以不会被推送