【发布时间】:2012-11-30 08:26:56
【问题描述】:
我有一个 SVN 项目,我想克隆到 Git 或 Mercurial。克隆到两个 VCS 工作正常,除了一个主要问题 - 我总是只得到最后一个修订版,没有任何其他历史记录。
我可以清楚地看到问题的根源是SVN项目最近被重命名(重命名是最后一次修订,我唯一设法得到的)。使用 SVN,我可以毫无问题地查看项目背后的所有历史。
最奇怪的是,当我使用 git-svn clone 时,我可以看到它经历了无数次修订,据说是导入它们,但最后我仍然只得到一个修订。与 Git 不同的是,向后工作的 Mercurial 只接受最后一次修订并完成克隆。
另外,重要的是要注意,最后一个 SVN 项目重命名/移动并不是唯一的。在此之前至少还有两个其他重命名,我确实需要完整的项目历史,就像我使用 SVN 看到的一样。
【问题讨论】:
-
什么是“项目重命名”?我不知道如何将其翻译成 SVN 术语。根文件夹重命名?您可以只克隆一小部分修订并在以后提取其他修订,对于更改的路径,使用 --filemap 将旧位置和新位置映射到一个永久位置
-
是的,这就是我的意思——项目的根文件夹被重命名了。不是只有 Mercurial Convert 扩展使用 --filemap 吗? Convert 对我来说并不理想,它不如 hgsubversion 灵活。我需要继续使用 SVN,而不仅仅是将 SVN 存储库转换为 Mercurial。此外,这正是问题所在 - 除了最后一个之外,我无法克隆任何修订。即使我指定了其他版本。
-
1.文件映射和其他 *maps 可以在
hg clone中使用,当克隆用于“外国”回购 2。您可以尝试在 URL 中使用 PEG-revision 与旧路径进行克隆 -
是的,我尝试指向旧路径并使用@REV_NO 指定修订版,出于某种原因,hg 说它在该位置找不到任何东西。虽然我可以使用 SVN 浏览相同的位置。
标签: svn git-svn hgsubversion