如何保持Mercurial的局部变化并使其“隐形”

时间:2013-08-07 08:48:33

标签: mercurial tortoisehg

在我的本地仓库中,我有一个文件A,我做了一些更改。但我不想将此更改提交给远程仓库。问题是如果我没有在TortoiseHG中提交此更改,每次我更改其他文件时,A都会列在“更改列表窗口”中。

我知道,TortoiseHG有搁置功能。它可以存储临时文件。但搁置的文件将恢复为原始状态。

2 个答案:

答案 0 :(得分:5)

提交更改,然后将提交阶段修改为“secret”。请注意,秘密变更集的任何子变更集也都是保密的。

hg help phases

您可能希望使用这些更改维护一个私有分支 - 只需首先提交分支机密,然后定期从主分支合并到您的私有分支。

另一种方法是执行上述操作,但不要将更改集保密。这将允许将分支机构推送到中央服务器,从而获得备份等的好处,并且这些更改可能对其他开发人员有用(但仍然不在主分支上)。

答案 1 :(得分:2)

考虑使用Mercurial patch queues来管理本地更改。使用MQ,您可以对本地更改进行排队,并将它们存放起来以备将来使用。

对于扩展程序的文档,这里是您用于放弃本地更改以供将来使用的标准工作流程:

$ hg qnew choosename
$ hg qpop
$ # ...
$ # restore
$ hg qpush
$ hg strip -k choosename
$ hg qremove choosename

还有shelve,但我从未使用过它。