从Subversion迁移到Git

时间:2010-06-23 18:46:49

标签: git migration svn

我在一些不同的Subversion存储库中有很多预先存在的项目和代码。 我计划通过将一些更简单/即将成为多开发人员项目迁移到Git来让我的脚趾湿透Git。 我有几个问题:

  1. 如果我从托管Git开始 解决方案,难以改变 项目的Git服务器(In 颠覆,你只需要 更改URL等)?我会做 这个起床和运行 以前对Git很满意 在本地安装和维护我自己的服务器。

  2. 要遵循哪些好的步骤 从Subversion迁移我的数据 去Git?我必须退房吗? 来自SVN,导出和的每个修订 承诺Git获取历史?

  3. 您遇到的任何陷阱?

  4. 改变的几个原因:我们做了大量的分支和合并,我们将在这些项目上添加一些开发人员,我们将让开发人员不总是在办公室/网络上等。

3 个答案:

答案 0 :(得分:6)

1。实际上非常容易更改服务器,因为您在计算机上克隆整个存储库然后只需将其推送到新服务器;

2。您可以使用 git-svn 在新的git存储库中克隆svn存储库,保留历史记录。首先,您需要创建一个用户文件,将所有SVN用户映射到您的GIT用户。在桌面上创建名为“ users.txt ”的文件。使用以下格式映射用户:

username = Full Name <fullname@provider.com>

现在运行以下命令:

git-svn init url.to.svn.repository --no-metadata
git config svn.authorsfile ~/Desktop/users.txt
git-svn fetch

第一个命令将目录初始化为git-svn混合,并将原点指向svn存储库。标志--no-metadata告诉git将所有svn细节留在后面(而不是提交日志)。下一个命令告诉git将所有svn用户重新映射到git用户。最后一个命令实际上是提取。

答案 1 :(得分:2)

首先我会推荐书Pro Git

  1. 这一点都不难。你可以做点什么

    git remote add

  2. 并且您可以同时拥有更多遥控器,并在合并它们并推送到服务器之前从同事获取更改到不同的分支。

    1. 我没有在svn中有更多分支的经验,但对我来说就足够了

      git svn clone svn-repo

答案 2 :(得分:0)

1)这是微不足道的。 Git已经发布。

2)如果你谷歌有很多指南,但基本序列是git svn clone,然后将所有svn标签分支转换为真正的git标签,删除标签分支,然后添加一个git remote并推送。

3)没什么大不了的。

我强烈建议您与主机一起使用GitHub。他们有私人回购,不贵,他们的网站很棒。