迁移

本迁移指南主张在过渡期间从 SVN 到 Git 进行单向同步。这意味着,虽然您的团队已经习惯了 Git,但他们仍然应该只提交原来的 SVN 存储库。当您准备好进行切换时,无论处于什么状态,SVN 存储库都应该冻结。然后,开发人员应该开始提交到他们的本地 Git 存储库并通过 Bitbucket 共享。

/wac/git-microsite/images/tutorials/migrating/migrating-migrate/01.svg

从 SVN 到 Git 的离散切换实现了非常直观的迁移。您的所有开发人员都应该已经了解了他们将要使用的新 Git 工作流程,他们应该有足够的时间在从 Bitbucket 克隆的本地存储库上练习使用 Git 命令。

此页面将指导您完成迁移的最后一步。

同步 Git 存储库

在完成向 Git 的迁移之前,应确保您的 Git 存储库包含已提交到 SVN 存储库的所有新变更。您可以使用同步阶段中描述的相同流程来完成此操作。

git svn fetch
java -Dfile.encoding=utf-8 -jar ~/svn-migration-scripts.jar sync-rebase
java -Dfile.encoding=utf-8 -jar ~/svn-migration-scripts.jar clean-git --force

备份 SVN 存储库

虽然您仍然可以在迁移的存储库中看到您的 Git 之前的项目历史记录,但最好备份 SVN 存储库,以防需要浏览原始 SVN 数据。备份 SVN 代码存储库的一种简单方法是在托管中央 SVN 存储库的计算机上运行以下命令。如果您的 SVN 代码存储库托管在 Linux 计算机上,则可以使用以下内容:

svnadmin dump  | gzip -9 >

svn-repo 替换为您正在备份的 SVN 存储库的文件路径,并将 backup-file 替换为包含备份的压缩文件的文件路径。

将 SVN 存储库设为只读

您所有的开发人员现在都应该使用 Git 了。要强制执行此约定,可以将 SVN 存储库设为只读。此流程可能因服务器设置而异,但是如果您使用的是 svnserve 守护进程,则可以通过编辑 SVN 代码存储库的 conf/svnserve.conf 文件来完成此操作。它的 [general] 部分应包含以下几行:

anon-access = read auth-access = read

这告诉 svnserve 匿名用户和经过身份验证的用户都只有读取权限。

摘要

这就是将项目迁移到 Git 的全部内容。您的团队现在应该使用纯粹的 Git 工作流程进行开发,并享受分布式开发的所有好处。干得好!

为您推荐

Bitbucket 博客

DevOps 学习路径

了解有关 Git 的更多信息

在此中心查找更多 Git 指南和资源。