从Subversion迁移到Git

5
我有许多现有的项目和代码,存储在几个不同的Subversion存储库中。我打算通过将一些较为简单/即将成为多人开发项目迁移到Git上。我有一些问题:
  1. 如果我从托管的Git解决方案开始,更改项目的Git服务器会很难吗(在Subversion中,您只需更改URL等)?在安装和维护本地服务器之前,我会这样做来快速上手并熟悉Git。
  2. 迁移我的数据从Subversion到Git需要遵循哪些好的步骤?我是否必须从SVN检出每个修订版本,导出并提交到Git以获取历史记录?
  3. 您有任何经验教训吗?
变更的原因是:我们进行了大量分支和合并,我们将在这些项目上添加一些开发人员,并且我们将拥有不总是在办公室/网络上的开发人员。
3个回答

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 用户。最后一个命令实际上进行提取。


2
首先,我建议阅读书籍《Pro Git》
其次,这并不难。你可以像下面这样做:
git remote add
同时,你可以拥有多个远程仓库,在将它们合并并推送到服务器之前,从同事的不同分支中获取更改。
我没有使用过svn中的多个分支,但对我来说,以下命令已经足够:
git svn clone svn-repo

0

1) 这很简单。Git 是分布式的。

2) 如果你搜索一下,会发现有很多指南。但是基本顺序是 git svn clone,然后将所有 svn 标签分支转换为真正的 git 标签,删除标签分支,接着添加一个 git 远程并推送。

3) 没有什么大问题。

我强烈建议选择 GitHub 作为您的主机。他们有不昂贵的私人 repo,而且他们的网站非常出色。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接