TLDR:我有一个带有父 X 的 HG 捆绑包,但我的仓库中不存在修订版 X。但是,我确信修订版 Y 的文件与修订版 X 相同。如何应用捆绑包?
背景:
我hgsubversion
用来与 SVN 存储库进行交互。
有一些我不想提交的更改。hgsubversion
不支持部分推送。
我曾经通过手动创建临时导出/补丁文件或手动恢复 .orig 文件(的结果hg revert
)来解决问题。
在这种情况下,我提交了我不想推送的更改,然后使用hg strip
,然后推送,然后尝试使用hg unbundle .hg/strip-backup/file
。
问题:hgsubversion
在提交后用它从 SVN 导入的新变更集替换原始变更集。结果:变更集 ID 更改。这是一个问题,因为现在hg unbundle
不再起作用,因为它依赖于父变更集的存在(但它已被剥离)。
具有讽刺意味的是,hgsubversion
它本身使用strip
并因此有一个备份文件,我可以用它来剥离新版本,添加剥离的旧版本,然后将我的版本与捆绑包一起应用,导出补丁,剥离两者,然后恢复 SVN 版本。但这听起来……非常痛苦和愚蠢。没有更好的办法吗?
(hg transplant
如果没有在 repo 中包含父级,似乎也不喜欢捆绑包)