我的存储库根目录中有一个文件default.config
。我把它调整为我自己的设置,我不想提交它。永远。除commit -X "^default\.config$"
以外我有哪些选择?
我已将^default\.config$
添加到.hgignore
,但仍会显示在hg status -mard
的输出中。
编辑:也许可以使用Mercurial Queues执行此操作。如果我将所有本地配置更改保存在一个补丁中,那么我只需要记住在提交之前弹出它。只是大声思考......
答案 0 :(得分:2)
请按照以下步骤操作:
hg rm default.config
删除文件并提交更改作为一种好的做法,您可以添加一个名为default.config.template
的文件或者提交到存储库的文件。此文件包含某些默认值或关于如何使用它的注释,而其他用户/开发人员可以将此文件复制到default.config
,如果他们正在使用您的项目。
答案 1 :(得分:1)
Akluth有正确的答案:将模板文件提交到您的存储库,然后将其复制到每个工作副本中的真实姓名。如果配置文件支持它,则使用include指令从真实配置文件加载模板文件。像
这样的东西// default.config
//
// load defaults from versioned template file
#include "default.config.template"
// override defaults with my settings
db_hostname = localhost
db_user = me
另一种方法是根据您的建议对每个命令使用-X
。有exclude extension实现了这个想法。请记住阅读警告 - 它在合并时不起作用,因为在提交合并时无法排除文件。扩展需要扩展以处理这种情况,可能是在合并之前搁置变更并在之后取消搁置。
这表明了另一种策略,类似于您建议使用MQ:在一组pre-
和post-
挂钩中使用新的shelve extension来搁置/取消搁置每个文件之前/之后的文件操作。我认为这可行,但我还没有在现实生活中尝试过。