迁移
本迁移指南主张在过渡期间从 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 >
![数据库](https://wac-cdn.atlassian.com/dam/jcr:f05d1440-c0ca-45f1-9f31-f376bb67adf6/databases.png?cdnVersion=2022)
相关资料
如何移动完整的 Git 存储库
![Bitbucket 徽标](https://wac-cdn.atlassian.com/dam/jcr:03116c1f-27e5-4a82-9b9b-806786578fb2/logos-bitbucket-icon-gradient-blue-121x109@2x.png?cdnVersion=2022)
查看解决方案
了解 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 的持续更新。
![人们通过满是工具的墙进行协作](https://wac-cdn.atlassian.com/dam/jcr:2642fbab-a771-4961-9648-806c2fff25e5/bitbucket-blog-resized.png?cdnVersion=2022)
Bitbucket 博客
![Devops 示意图](https://wac-cdn.atlassian.com/dam/jcr:d1f1a28b-11fc-4e22-b6c8-d47832b39d53/devops-learning-path-resized.png?cdnVersion=2022)
DevOps 学习路径
![与 Atlassian 专家一起进行 Den 功能演示](https://wac-cdn.atlassian.com/dam/jcr:73c6bd92-448f-4ae7-a6c1-5f4695f78692/demo-den-resized.png?cdnVersion=2022)