拥抱Mercurial---选择分布式版本控制工具

原创 2008年10月24日 18:21:00
Mercurial是一种开源的分布式版本控制工具,目前的最高版本是1.6.0.2。

一、什么是分布式版本控制工具

传 统的版本控制工具(如SVN,CVS,CleanCase等)因其将Code Repository的所有历史信息全部保存在同一台服务器上,而称为集中式版本控制工具。而在分布式版本控制系统(如Mercurial、GIT)中, Code Repository的历史信息的复本被保存在多台机器中,并且一视同仁,没有主次之分,除非根据团队的管理需要而人为指定哪一台机器为Main Repository。

二、从集成式 到到分布式

我们的项目原来使用SVN作为版本控制工具,但已经改为Mercurial。为什么呢?其实,最初的理由非常简单,集中式版本控制太影响开发效率了!(后来所有人都爱上了Mercurial。)

项目之初,很自然地选择了SVN。因为大家都非常熟悉SVN,而且Chicago Office已经建有统一的SVN服务器。可问题出在网络上。北京与Chicago两个Office之间的网络情况一直不是很好,首次检出代码要花上几小时,每次的检入和检出都很慢。终于,有一次网络断了两天,无法检入检出了。

而此时,很多开源的分布式版本控制工具已经发展起来,其中主流的两个就是Mercurial和GIT。所以,决定试用一下分布式版本控制工具。那么选择哪一种呢?

我们考虑了如下几个问题:

1. 现有的SVN Repository是否容易切换到其上?
2. 假如我们不喜欢用它的话,切换回SVN的难度有多大?
3. 会不会由于它而不得不改变我们的开发习惯?
4. 是否团队的每个成员都能快速上手?
5. Cruise是否很难对其提供支持?(因为我们用自己开发的Cruise来做Cruise的持续集成。)
6. 是否容易与IntelliJ整合?(因为我们用IntelliJ开发。)

二、选择Mercurial
 
为什么选择Mercurial呢?

首先,毫无疑问,入选的DVCS只能是GIT和Mercurial。

GIT在某些方面要优于Mercurial,比如:

1. 与SVN的集成更容易一些。GIT只要通过PUSH和PULL就可以完成它了;
2. GIT可以区分commiter和author,这样流程更灵活一些;
3. 一个很少见的特性:可以通过文本编辑器查看并修改ChangeSets的历史(如重排序、删除等),并将其施加于本地的Repository上。在Mercurial中,与这一特性相当的是Queue.
4. GIT是基于内容的跟踪系统,相较Mecurial而言,模型简单些,因此容易扩展;
5. Linux和rails世界中应用相当广泛。
 
不好的一点就是对Windows的支持不怎么样,虽然也有解决方案(如使用Cygwin或msysGit)。
 
而Mercurial也有它的优点,比如:
1. 很容易被SVN的用户所接受(命令很相似);
2. 在所有的平台上都差不多;
3. 文档很不错(有一个PDF,hgbook)。
 
两个都是不错的DVCS,可根据我们最初的几个标准,以及考虑到学习曲线,我们决定使用Mercurial。

---------------------------------------------
小贴士:根据项目的特点选择合适的工具,可以提高开发效率。

Git 是一个分布式版本控制工具

Git 是一个分布式版本控制工具前言:Git常用命令: 速查手册Git — The stupid content tracker(傻瓜内容跟踪器),Linus 是这样给我们介绍 Git 的。 Gi...
  • brokge
  • brokge
  • 2016-07-31 23:45:30
  • 2085

版本控制:集中式VS分布式

Chapter: 开始了解Git 1. 先谈谈版本控制的一些事 2. Git诞生背后的一些故事 3. 版本控制:集中式VS分布式 4. Git的思想和基本工作原理 5. Git在Wi...
  • jiary5201314
  • jiary5201314
  • 2016-05-20 20:47:01
  • 1675

版本控制工具

  • 2014年12月01日 22:38
  • 69.37MB
  • 下载

Git-2.14.3-64-bit-windows exe安装文件

  • 2018年01月30日 15:06
  • 36.55MB
  • 下载

git管理工具

  • 2014年10月30日 16:38
  • 53.76MB
  • 下载

《解析极限编程:拥抱变化》读后感

最近花了一些时间读了Kent Beck的《解析极限编程:拥抱变化》中文版第二版,小有体会,欠书评一篇,尽快补上。...
  • songxiaojing
  • songxiaojing
  • 2013-12-10 18:04:42
  • 1386

常用版本管理工具对比

Git 、CVS、SVN比较   项目源代码的版本管理工具中,比较常用的主要有:CVS、SVN、Git 和 Mercurial  (其中,关于SVN,请参见我先前的博客:SVN常用命令 和 SVN服务...
  • llhhyy1989
  • llhhyy1989
  • 2013-07-20 11:45:25
  • 7916

如何拥抱区块链

1.    我参与比特币简史 a)     2014我的比特币历史   区块链经过了比特币和以太坊两个时代了,比特币网络2009.1.3开始运行,那时我在考研途中,我2014年4月从新闻上看到比特...
  • northeastsqure
  • northeastsqure
  • 2018-01-11 21:26:39
  • 328
收藏助手
不良信息举报
您举报文章:拥抱Mercurial---选择分布式版本控制工具
举报原因:
原因补充:

(最多只允许输入30个字)