设想:
我有 2 个 Hg 存储库:一个跟踪 SVN 存储库,比如SVN-track,以及一个本地纯 Hg存储库,我从第一个将变更集拉入其中。
我将纯汞存储库中的变更集推送到SVN-track存储库中,然后我在SVN-track存储库中重新设置推送的变更集,直到历史记录完好无损,这样我就可以推送到 SVN 存储库。
在我推送到 SVN 后,hgsubversion 从 SVN 拉回变更集并剥离原始变更集。这就是它的追踪方式,我收集了(但是......为什么不保留原件并追踪它呢?)。
问题:
现在,如果你坚持了这么久,问题来了:我想将 SVN 变更集拉回纯 Hg存储库,但所有原始变更集都以另一个头上的欺骗(但具有不同的节点 ID)的形式返回。我可能能够重新设置我在纯汞存储库中添加的所有变更集,但是我会丢失历史记录,而且真的,这看起来工作量太大了。我也可以只使用具有重复内容的拉取 SVN 变更集并合并本地,但这使得返回到SVN 轨道的结果越来越难。
问题:
- 有没有更好的方法来执行这个我无法独立完成的工作流程?
- 如果不是,我如何替换 hgsubversion 从纯汞中的 SVN 拉回的原始变更集?
- 为什么必须 hgsubversion(大部分情况下是一个很棒的启用工具)拉回 SVN 变更集来跟踪它们,难道它不能只保留原始变更集并添加一行来
.hg/svn/rev_map
指示原始变更集 id 吗? - 如果是这样,这有什么诀窍?