谁说 SVN 就不是一个好的版本管理系统?

鉴客 发布于 08/16 16:13
阅读 851
收藏 0

曾几何时,SVN 的出现直接秒杀了很多老牌的版本管理工具,诸如 CVS 和微软的 SourceSafe ,当然后者因为跟微软家族开发工具 Visual Studio 的亲密绑定,当如今还是有不少人在使用,但槽点也是相当的多啊。

SVN 也捧红了几个老牌的代码托管平台 —— SourceForge、Google Code 和微软的 CodePlex,不过后面两个都已经宣布关闭了。SourceForge 也垂死挣扎中。最主要的原因是在当今这个协作大行其道的世道,SVN 的弱势暴露无遗,非常重的分支管理功能,从而也导致了外部的协作非常困难。另外一个说不上是优点还是缺点的特性 —— 集中式仓库存储,应该影响没那么大。

但是 SVN 也有其优势,例如非常细粒度的权限控制,安装简单便捷,完整的工具链生态(当然这个生态目前已经被 Git 超越)。

当下还有大量的企业在使用 SVN 作为版本管理系统。我曾经跟一个大型游戏公司负责运维的人员聊过,他们公司的游戏项目基本上每一个都是超过 1T 的,目前正在使用 SVN 进行管理,问其为何不用 Git 的原因,说是内部曾经搭了个 Git 服务进行尝试,结果发现无法支撑那么大的仓库(再详细的细节就没问了)。

总结一下 SVN 的优劣(与 Git 比较):

优势:

  • 安装简单
  • 细粒度的权限控制
  • 多年的使用习惯

劣势:

  • 分支管理很重
  • 难以进行轻松协作
  • 缺乏强大的基于 Web 的管理系统

那如果我们有心想尝试一些 Git 系统,怎么能让 SVN 的优势得以保留呢?特别是细粒度的权限控制,其实 Git 在这方面已有解决方案,利用 git submodule 是可以基本实现 SVN 的模块化权限控制的,只不过使用上稍微复杂一些些,特别是对单文件的权限控制不太适合。

对于想尝试 Git 的开发者还有什么其他的办法吗?

加载中
0
红薯
红薯

gitee.com 同时支持 git 和 svn ,可以玩玩

0
乌龟壳
乌龟壳

git clone --depth=1

这个也基本解决了客户端需要存储太多数据的问题

0
银杏果果
银杏果果

自己搭建一个类GitHub系统,比如GitLab

0
j
java菜_鸟

现在正在使用svn

返回顶部
顶部