前言
关于使用Git还是SVN进行版本控制的讨论一直存在,Git和SVN的区别也十分明显:
年CollabNet创建了Subversion项目,一晃SVN已经诞生20年了,截至rSVN主分支共有次提交,32个开发者,次发布。年LinusTorvalds创建了Git,截至de93cc14ab7e8dbd8dbe4fdf76df,git主分支共有次提交,个贡献者,次发布,诸如Google,Microsoft,Facebook这样的巨无霸公司都在使用Git,Git主要开发者来自Google和Microsoft。
人多力量大,众人拾柴火焰高,贡献越多码越好,我们可以看到SVN只是缓慢变好,而Git却在飞速增强,到了今天为什么还不从SVN迁移到Git?
Gitee的功能
用户在使用SVN时,常用的功能有部分检出,目录权限控制等等,并一直以此来否定Git的进步。而随着Git的不断增强,Gitee开发者的不断努力,Gitee逐渐拥有了这些功能。
年5月底,Gitee新增只读目录支持,而Git本身是没有这个特性的,主流的Git平台一般会提供只读分支的功能,无法实现对个别文件或者文件夹的只读限制,但Gitee提供了这个功能。
年1月17日,码云目前已经初步支持Git部分克隆,结合部分克隆和稀疏检出能够提供比SVN更好的部分检出体验。
Gitee除了在Git功能上推陈出新,还在团队协作,企业管理上增加了很多功能,自定义权限管理更切合企业实际,任务,里程碑,成员周报能够让开发者异地完成诸多任务,并被考核。年度疫情爆发以来,各地交通管制,返程复工有诸多不便,使用Gitee远程工作正当其时,为什么还不从SVN迁移到Gitee呢?
将SVN存储库迁移到Gitee
企业只需要在Gitee上创建空存储库,然后将SVN存储库转换成Git存储库推送到Gitee,便完成了向Gitee的迁移。
使用gitsvn工具转换
将SVN存储库转换成Git存储库非常简单,使用git自带的命令便可以完成:
如果
如果你以后无需追踪原有的SVN存储库,可以在Push之前运行:
如果你以后无需追踪原有的SVN存储库,可以在Push之前运行:
当存储库越来越大时,gitsvn的缺陷便很明显了,转换耗时比较长,这也是GCC从SVN转成Git反反复复花了好几年的原因。
使用svn2git(ruby)转换
在Github上有个实用工具svn2git,这个工具主要是简化了转换流程:
这个工具能够提供更好的提交日志,唯一遗憾的是,自年以来便不再更新。
使用svn-all-fast-export/svn2git转换
KDE的开发者开发了svn-all-fast-export/svn2git这个工具在服务器上将SVN存储库转换成git存储库,由于省去网络传输和检出,速度要远胜于gitsvn/svn2git(ruby)。
KDE开发者撰写了使用示例:UsingSvn2Git,这一工具使用难度较高,需要创建规则文件,如果存储库较小,不建议使用此类工具。
使用git-svn-fast-import转换
Gitee还移植了一个SVNtoGit的工具git-svn-fast-import,这个转换又快又简单:
Gitee开发者曾用此工具为某私有化客户将存储库从SVN转到Git。
在Gitee上使用SVN功能
随着开发者投入的逐步减少,使用SVN接入Gitee并不被提倡。
但是,如果你仍然想在迁移到Gitee后,使用落后的SVN,你可以在项目设置页面打开SVN,然后使用:
这将使用SVNOverSSH的方式访问远程存储库,只需要配置好SSH公钥,便可免密使用SVN协议访问远程Git存储库。
总结
开发者为开发者,Gitee不断改进Git的体验,愿更多的企业从SVN迁移到Gitee,享受企业级项目管理和代码协作的一体化云平台。
转载请注明:http://www.0431gb208.com/sjszjzl/7491.html