那些年我在使用TortoiseSVN

TortoiseSVN简称SVN,是一款集中式版本控制软件。项目使用中我们还经常会听到hg和git的分布式版本控制软件。

下面让我举例来说说我对使用过的svn的认识以及分析其他两个软件的不同之处与优势。

svn最大的特点就是需要有一个集中的版本控制中心,所有人员提交代码都将提交到中央服务器中。

  • 开发人员拥有本地拷贝并且可以在线下工作.
  • 在本地文件系统上可以进行快速的构建.
  • 可以快速的重构.
  • checkout和checkin的速度都会非常的快.
  • 终于有了原子提交.
  • 轻量级的Branching和Tagging操作.
  • 基本的合并操作.
  • 个人/本地的branching操作仍然需要再次checkout.
  • 因为仍然是集中式的,而不是分布式的.
  • 基本的合并点追踪.
  • 没有办法合并重命名文件,需要在提交前使用一些扩展的跟进冲突解决机制.
  • 代码库有时会崩溃,专家/开发人员比例已经很低,如1:100.

其中提到的个人/本地的branching操作任然需要再次checkout的,所以当服务器连不上的时候,有时候是很痛苦的。本地的数据版本管理不了。我们项目中有时候还会出现代码的冲突,所以这就要求团队必须要分工明确,各施其职,尽可能每个人在code的时候不要在相同的地方。不然经常出现冲突和合并上的错误的。(当然这个是可以避免的,这就需要团队的协作和沟通了

使用SVN是简单的,你要上手是非常快的。

Subversion提倡单一的中央代码库模型,不提倡大规模的branching.在一个使用持续集成的环境中,其实也就是我们每天工作的环境,这个模型是非常合适的.这也是Subversion为什么这么流行,应用范围这么广的原因之一.

另外svn还对二进制的有很好的支持。

在某种特定情况下,SVN也有其相应的优势,如果你需要对版本控制系统难以合并的二进制文件(如word文档或者ppt)进行管理的话,你就应该回 退到独占式checkout的锁机制下,这就需要一个集中式的系统.另外,SVN更容易上手:你有一个代码库,所有的更改都指向这个代码库,如果你知道如 何创建,提交以及checkout,那你就可以开始使用它了,而像branching,更新这些操作在使用过程中自然也就慢慢熟悉了.SVN拥有一些非常 好用的客户端软件,而且几乎所有的主流IDE都有与SVN集成的插件,这些都能够为你使用SVN提供很大的帮助.

下一篇文章将介绍我去了新公司后使用了TortoiseHg分布式版本软件的一些心得。


关注我

我的微信公众号:前端开发博客,在后台回复以下关键字可以获取资源。

  • 回复「小抄」,领取Vue、JavaScript 和 WebComponent 小抄 PDF
  • 回复「Vue脑图」获取 Vue 相关脑图
  • 回复「思维图」获取 JavaScript 相关思维图
  • 回复「简历」获取简历制作建议
  • 回复「简历模板」获取精选的简历模板
  • 回复「加群」进入500人前端精英群
  • 回复「电子书」下载我整理的大量前端资源,含面试、Vue实战项目、CSS和JavaScript电子书等。
  • 回复「知识点」下载高清JavaScript知识点图谱

每日分享有用的前端开发知识,加我微信:caibaojian89 交流