如何使用 mercurial 从多个变更集生成单个差异

How to generate a single diff from multiple changesets using mercurial

我正在处理一组更改,我在过去添加了一个具有更改集编号的更改集,例如 11001。我将此更改推送到远程,因为其他人需要它。接下来,我继续开发我的代码,我不得不从另一个用户推送的更改中提取更改。所以,我更新了我的分支并继续工作。后来,我添加了更多更改并提交了变更集编号 11015。

有没有办法只使用变更集 11001 和 11015 创建差异?提前致谢。

最简单的方法是使用 rebase 在本地将 rev 11015 复制到 11001 的直接子节点:

hg rebase --keep -r 11015 -s 11001

然后你可以直接像往常一样直接比较 2 个转速。您会注意到 rev 11015 凭借 --keep.

保留在原位

不要尝试推送 11015。为此,您应该在完成后立即修剪它:

hg prune -r <#rev of the copy>

您需要启用进化扩展(无论如何推荐)才能使用修剪。

为了降低您尝试推送副本的可能性,您可以立即删除副本。如果启用隐藏变更集的查看,您仍然可以直接在 Tortoise 中与它进行比较;或者在命令行上,如果您将 --hidden 添加到您常用的比较命令中。