1

default.config我的存储库的根目录中有一个文件。我为自己的设置调整了它,我不想提交它。曾经。除了 ,我还有什么选择commit -X "^default\.config$"

我添加^default\.config$.hgignore,但它仍然显示在 的输出中hg status -mard

编辑:也许可以使用 Mercurial Queues 来做到这一点。如果我将所有本地配置更改保存在一个补丁中,那么我只需要记住在提交之前将其弹出即可。只是大声思考...

4

2 回答 2

2

按着这些次序:

  • 将文件复制到工作目录之外的某个位置
  • 删除文件hg rm default.config并提交更改
  • 将文件复制回工作目录

作为一种好的做法,您可以添加一个名为default.config.template或提交到存储库的文件。该文件包含某种默认值或有关如何使用它的注释,如果其他用户/开发人员default.config正在使用您的项目,则可以将此文件复制到。

于 2013-10-22T14:29:15.603 回答
1

Akluth 有正确的答案:将模板文件提交到您的存储库,然后将其复制到每个工作副本中的真实名称。如果配置文件支持它,则使用包含指令从真实配置文件中加载模板文件。就像是

// default.config
//
// load defaults from versioned template file

#include "default.config.template"

// override defaults with my settings
db_hostname = localhost
db_user = me

正如您所建议的,另一种方法是-X与每个命令一起使用。有一个排除扩展实现了这个想法。请记住阅读注意事项 - 合并时它不起作用,因为在提交合并时您无法排除文件。需要扩展扩展来处理这种情况,可能是在合并之前搁置更改并在之后取消搁置。

这暗示了另一个策略,类似于您建议的使用 MQ:在一组和钩子中使用新的搁置扩展在每次操作之前/之后搁置/取消搁置文件。我认为这可行,尽管我在现实生活中没有尝试过。pre-post-

于 2013-10-22T20:56:20.987 回答