迁移
本迁移指南主张在过渡期间从 SVN 到 Git 进行单向同步。这意味着,虽然您的团队已经习惯了 Git,但他们仍然应该只提交原来的 SVN 存储库。当您准备好进行切换时,无论处于什么状态,SVN 存储库都应该冻结。然后,开发人员应该开始提交到他们的本地 Git 存储库并通过 Bitbucket 共享。
从 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 >
相关资料
如何移动完整的 Git 存储库
查看解决方案
了解 Bitbucket Cloud 的 Git
Replace svn-repo
with the file path of the SVN repository that you backing up, and replace backup-file
with the file path of the compressed file containing the backup.
将 SVN 存储库设为只读
您所有的开发人员现在都应该使用 Git 了。要强制执行此约定,可以将 SVN 存储库设为只读。此流程可能因服务器设置而异,但是如果您使用的是 svnserve
守护进程,则可以通过编辑 SVN 代码存储库的 conf/svnserve.conf
文件来完成此操作。它的 [general]
部分应包含以下几行:
anon-access = read auth-access = read
这告诉 svnserve
匿名用户和经过身份验证的用户都只有读取权限。
摘要
这就是将项目迁移到 Git 的全部内容。您的团队现在应该使用纯粹的 Git 工作流程进行开发,并享受分布式开发的所有好处。干得好!
分享此文章
下一主题
推荐阅读
将这些资源加入书签,以了解 DevOps 团队的类型,或获取 Atlassian 关于 DevOps 的持续更新。