如何在本地从SVN迁移到GIT

时间:2010-04-08 19:23:49

标签: svn git git-svn

我正在开发一个最初使用Subversion的项目,但远程存储库已被删除,我不想再使用Subversion了。我想将它迁移到git。

有一种方法可以在没有远程存储库的情况下执行此操作,保留所有修订历史记录(不执行git init .)?

我已经使用git-svn进行了git迁移的颠覆,但在其他项目上没有任何问题,但它们位于远程存储库中,我无法找到有关在本地迁移它的任何信息。

4 个答案:

答案 0 :(得分:5)

Subversion与Git不同,它不会将存储库保留在您的工作文件夹中,因此您将无法迁移它。

您需要创建一个新的存储库并将其检入,就好像它是新代码一样。

答案 1 :(得分:1)

  

有一种方法可以在没有它的情况下完成   远程存储库,保留所有   修改历史(没有做git   init。)?

简答:不。

与git不同,subversion是集中式版本控制系统,这意味着它将所有修订历史存储在服务器中。

相比之下,分布式版本控制系统(如git,mercurialbazaar存储所有修订历史本地。在后一种情况下,您确实可以相对轻松地在存储库之间导入/导出。在前者中,您需要服务器才能这样做。

答案 2 :(得分:0)

“svn switch --relocate”救援[1]。

首先,您必须在任何普通服务器中设置临时svn存储库,然后将“本地”svn存储库(也称为工作副本)重定位到该服务器,将其提交到那里,然后使用git-svn live you'以前做过。


[1] http://webkit.org/blog/97/svn-repository-location-change/

答案 3 :(得分:0)

如果您设法获得已删除的远程subversion存储库的正确备份,则只能保留subversion历史记录中的信息。

否则,历史记录将丢失,您只需从头开始。

如果你有备份(例如服务器上SVN repo文件的rsync副本),你可以通过git svn在本地进行转换,方法是通过{{file://将其指向本地SVN repo副本。 1}} URL,不先进行特殊的SVN服务器设置。

相关问题