我最近开始研究一个使用 Mercurial 的开源项目。我是 Mercurial 的新用户,所以我阅读了 HG 的书并开始工作。我的目标是编写代码并始终从上游提取和合并更改,以便我可以保持最新状态。我正在研究的领域也正在被其他人大力开发,所以我确实想在很长一段时间后合并我的更改。我克隆了一个仓库。所以,我的工作流程是这样的:
我创建了一个书签 mybook
hg up mybook
编写代码
3.1hg commit -m 'new functions'
hg up default
hg pull
hg update
hg up mybook
hg merge default
转到第 3 步。
在我看来,这是让我保持最新状态的最简单的工作流程。我也只有一个 HEAD,因为我总是合并。
由于我还不是贡献者,因此不允许我将更改推送到远程仓库。
最近我想向项目负责人展示我的工作,他说给我发一个补丁。这就是我卡住的地方。hg out
显示 10 个变更集。第一个出现在一个月前。他们的数字是3341, 3342, 3345, 3346, 3349, 3356, 3360, 3365, 3366, 3368
。变更集编号3368
是提示。
我最近阅读了有关 MQ 扩展的章节。而这个扩展似乎正是我所需要的。但问题是我编写代码时没有使用 MQ 扩展。
那么,如何在已经创建的变更集上使用 MQ 扩展,以便我可以制作一个补丁发送给项目负责人,以便他可以应用它并查看我的更改?
我刚刚发出hg qinit
。下一步是什么?发行hg qimport -r 3341
给
abort: revision 3341 has unmanaged children
阅读这本书并进一步搜索对我没有帮助。我需要一个建议。
PS 我试过根本不使用 hg 和 MQ:简单diff -urN old/ new/
但我想了解如何使用 MQ 来做到这一点。
谢谢你。