我们正在一个项目中从 svn 切换到 git。
现在,我们想要移动的 svn 存储库之一,具有我们想要保留的相当长的历史。所以我尝试在它上面做 git-svn clone,效果很好。
但是,svn 存储库在其历史上已经移动了 3 次。
整个 repo 的布局是这样的;
repo_root/
trunk/
projA_v1 (existed in the beginning)
projA_v2 (then moved to v2)
projA_v3 (and finally to v3)
projB
projC
branches/
projA_b1
projA_b2
projB_b1
projC_b1
tags/
projA_t1
projB_t1
projC_t1
该项目最初称为 projA_v1,然后移至 v2,最后移至 v3。
现在,当我们执行 git-svn clone 时,我们只获得自上次从 2 移动到 3 以来的历史记录。如果我们检查 svn 中的日志,我们可以正确看到整个历史记录。
我能做些什么来获取整个历史吗?那里有大约 3 年的失传历史,如果可以的话,我们宁愿保留它。
更新:我现在尝试在整个 repo 上做 git-svn clone,从repo_root
. 我想我可以这样做,然后使用Detach (move) 子目录中的说明将生成的 git repo 修剪到单独的 Git 存储库中,它似乎运行良好。(至少修剪位)
不过还是有问题。分支将无法正常运行。我想这是因为 git-svn 无法将它们识别为分支,因为其中一个分支中的内容不是整个主干的副本,而只是主干的一部分. 有任何想法吗?
在一个理想的世界中,我最终会得到一个仅包含 projA 的 repo,其中包含 projA_v1 和 v2 的历史,以及 projA 分支和标签中的历史。