git Git-svn/hgsubversion 克隆的重命名项目



我有一个SVN项目,我想克隆到Git或Mercurial。克隆到两个VCS工作正常,除了一个主要问题 - 我总是只得到最后一个修订版,没有任何其他历史记录。

我可以清楚地看到问题的根源是SVN项目最近被重命名(重命名是最后一个修订版,我唯一设法获得的修订版)。使用SVN,我可以毫无问题地查看项目背后的所有历史记录。

最奇怪的是,当我使用 git-svn 克隆时,我可以看到它经历了许多修订,据说是导入它们,但最终我仍然只得到一个修订版。与 Git 不同,Mercurial 向后工作,它只采用最后一次修订并完成克隆。

此外,重要的是要注意,最后一个SVN项目重命名/移动并不是唯一的。在此之前至少还有另外两个重命名,我确实需要完整的项目历史记录,就像我使用 SVN 看到的那样。

想法

  • 由于不可能克隆不存在的 svn-URL 与 PEG-修订版

    hg clone http://mayorat.ursinecorner.ru:8088/svn/Hello/branches/Greetings@16

    abort: HTTP Error 404: Not Found

便

svn ls http://mayorat.ursinecorner.ru:8088/svn/Hello/branches/Greetings@16
Hello.txt

您可以尝试克隆存储库,使用父 OD 重命名目录作为根目录。你会得到很多不相关的同级路径变更集,但是(如果重命名是公平的svn move)我希望,所有有问题的路径的变更集都将在存储库中:你只有清理历史记录

  • 拆分和合并
转储

SVN存储库,使用svndumpfilter将其拆分为单独的转储(每个更改的目录名称转储),将转储加载到单独的svn存储库中,将每个svn存储库克隆到自己的Mercurial存储库中(存储库不能有多个Subversion源),将存储库拉入公共存储库,修复历史记录

对于善变,我看到本指南可能会有所帮助。右边有足够的与 git-svn 相关的其他问题来解决您的问题。

我假设你看到了这个,一个由 Parrot 项目完成的关于 git-svn 的教程。进一步看来,您需要在 git log 之后执行 git 变基,以确定要使用的修订哈希代码。和以前一样,如果您需要更多信息,请发表评论。

相关内容

  • 没有找到相关文章

最新更新