前段时间我已将我的 SVN 存储库转换为 Mercurial 存储库。它似乎已正确转换,我已经对该项目进行了许多更改。过了一段时间(在挖掘历史时)我意识到转换没有正确完成 - 即旧的提交没有按时间排序,所以我有来自 SVN 存储库的所有修订,但顺序不正确(并且在我在转换后做出了承诺)。
我想解决这个问题。我能想到的解决这个问题的唯一方法是将存储库分成两部分
- 一个包含从旧 SVN 存储库转换而来的修订版(我们称之为
A1
) - 一个只包含新的提交(我们称之为
B1
)
我想再次转换我的 SVN 存储库(这次正确),然后重新应用我在第一次转换存储库后所做的所有更改(B1
部分)。
总结一下,我需要做的(或者,我认为我需要做的)是:
将现有的 repo 分成两部分 - 一部分是通过从 SVN 存储库 (
A1
) 转换创建的,另一部分包含正确的提交(由我在存储库转换后创建 -B1
)。将 SVN 存储库转换为 Mercurial(或 Git,如果由于某种原因所有其他步骤在 Mercurial 中不可行)。所以转换后我会有
A2
.将更改从
B1
第 2 点应用到新转换的存储库 -A2
我想我知道如何进行转换(第 2 点)以获得正确排序的提交(A2
)。我只需要 1. (将现有存储库拆分为A1
& B1
)和 3 (从B1
to应用提交A2
)的帮助。
这在 Mercurial 中可行吗?如果在 Mercurial 中不可行 - 是否可以使用 Git 来实现(据我所知,可以轻松地将 SVN 和 Mercurial 存储库转换为 Git 存储库)。