Mercurial 为未使用MQ创建的一系列现有变更集创建修补程序?
我最近开始从事一个使用Mercurial的开源项目。 我是Mercurial的新用户,所以我读了HG的书并开始工作。 我的目标是编写代码,并始终从上游提取和合并更改 所以我可以随时了解最新情况。我正在工作的领域也面临着沉重的压力 由他人开发,因此我确实希望在长时间的开发之后合并我的更改 时间我克隆了一个回购协议。因此,我的工作流程如下:Mercurial 为未使用MQ创建的一系列现有变更集创建修补程序?,mercurial,patch,mq,mercurial-queue,Mercurial,Patch,Mq,Mercurial Queue,我最近开始从事一个使用Mercurial的开源项目。 我是Mercurial的新用户,所以我读了HG的书并开始工作。 我的目标是编写代码,并始终从上游提取和合并更改 所以我可以随时了解最新情况。我正在工作的领域也面临着沉重的压力 由他人开发,因此我确实希望在长时间的开发之后合并我的更改 时间我克隆了一个回购协议。因此,我的工作流程如下: 我为我的书创建了一个书签 hg up mybook 编写代码 3.1hg提交-m‘新函数’ hg up默认值 hg拉力 hg更新 hg up mybook hg
hg up mybook
hg提交-m‘新函数’
hg up默认值
hg拉力
hg更新
hg up mybook
hg合并默认值
3341334233453346334933563360336533663368
。变更集编号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
将为您提供一系列差异,包括合并。我发现阅读和回顾单个差异(在应用之前)要容易得多。但是不要使用普通的diff
,而是使用hg diff
,它知道只查看跟踪的文件,并具有许多其他优秀的功能(包括--git
选项,它提供了更丰富的元数据)。这应该做到:
hg up mybook
hg diff --git -r default > mywork.patch
在发送之前,执行hg up default
,并应用补丁以检查其工作是否没有冲突。并向收件人提及您要修补的default
版本
编辑:正如您在评论中所读到的,@lazybacker是export
生成的分步补丁的粉丝。我更喜欢单步贴
因为我的历史记录通常是TMI:没有人关心我添加一个被遗忘的文件的所有时间,或者太晚才注意到一个bug并在下一次提交时修复,等等。
你选吧。是的,不要使用MQ。这是一个平行的系统,旨在将事情排除在历史之外,更重要的是,你们不需要它 您需要的是“补丁”,而不是您工作的完整历史记录,因此我建议您以前后差异的形式发送。
hg export
将为您提供一系列差异,包括合并。我发现阅读和回顾单个差异(在应用之前)要容易得多。但是不要使用普通的diff
,而是使用hg diff
,它知道只查看跟踪的文件,并具有许多其他优秀的功能(包括--git
选项,它提供了更丰富的元数据)。这应该做到:
hg up mybook
hg diff --git -r default > mywork.patch
在发送之前,执行hg up default
,并应用补丁以检查其工作是否没有冲突。并向收件人提及您要修补的default
版本
编辑:正如您在评论中所读到的,@lazybacker是export
生成的分步补丁的粉丝。我更喜欢单步贴
因为我的历史记录通常是TMI:没有人关心我添加一个被遗忘的文件的所有时间,或者太晚才注意到一个bug并在下一次提交时修复,等等。
请选择。不要将MQ用于此任务。使用
hg Export-r REVSET
将变更集导出为一组补丁,顺便说一句,您可以在4-6个区域的工作流中减少摩擦。我认为@lazybager意味着您可以从默认值中拉取和合并,而无需从分支进行更新(如果您不介意在不查看新版本的情况下执行此操作)。不要将MQ用于此任务。使用hg Export-r REVSET
将变更集导出为一组修补程序,顺便说一句,您可以在4-6个区域的工作流中减少摩擦。我认为@lazybager意味着您可以从默认值中拉取和合并,而无需从分支进行更新(如果您不介意在不查看新版本的情况下执行此操作)。不要混合使用hg export
和hg archive
,dude-导出保存修补程序文件,如果这听起来有误导性,请担心。hg export
将生成一个修补程序,为每个文件和包含修订范围内的每个更改集包含单独的差异。因此,它为每个受影响的文件包含多个差异。hg diff
wil我只是比较开始和结束状态,然后生成一个扩展补丁。我的兴趣不在于