【发布时间】:2016-04-27 14:41:32
【问题描述】:
我最近开始从事一个使用 Mercurial 的开源项目。 我是 Mercurial 的新用户,所以我阅读了 HG 的书并开始工作。 我的目标是编写代码并始终从上游提取和合并更改 所以我可以保持最新状态。我正在研究的领域也很沉重 由其他人开发,所以我确实想在很长一段时间后合并我的更改 时间。我克隆了一个仓库。所以,我的工作流程是这样的:
我创建了一个书签 mybook
hg up mybook写代码
3.1hg commit -m 'new functions'
hg up defaulthg pullhg updatehg up mybookhg 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。
谢谢。
【问题讨论】:
-
不要将 MQ 用于此任务。使用
hg export -r REVSET将变更集导出为补丁集 -
而且,顺便说一句,您可以在 4-6 区域的工作流程中减少摩擦
-
我认为@LazyBadger 意味着您可以从
default中的pull和merge无需离开您的分支进行更新(如果您不介意在不查看新版本的情况下这样做)。
标签: mercurial patch mq mercurial-queue