分布式版本控制软件TortoiseHg

上一篇讲了我在一次持续三个月中的项目中使用了TortoiseSVN的一些理解.下面我继续给大家讲讲我在新公司使用的版本控制软件TortoiseHg的情况和优势。

TortoiseHg这款软件,好像也叫Mercurial,如果让我Hg和SVN在两者之间选择一个的,我想我会选择Hg吧。原因就是因为他可以不需要通过集中发布到中央服务器中,代码可以在本地提交和管理,你可以写出更多的测试版本,但是仍然在本地有着控制的版本,而提交到同一条线上的不会受影响。当然更多的好处就不止这些了,google也发表了一篇文章来说明支持Hg,同时放弃用git了。Hg还支持局域网的集中处理,我不知道svn是否支持在局域网内版本提交功能。

分布式系统仍拥有一些SVN无法提供的体验.

  • 在分布式管理系统中,你可以在自己本地磁盘上拥有代码库的完整拷贝,对代码库的操作不需要通过网络向中央服务器进行请求,因此速度会非常的快.特 别是你在进行查看日志,与旧版本代码进行比较或者其它需要完整代码库的操作时,这种速度上的改善会非常明显.对于集中式的系统,在局域网内你也许只会觉得 有点慢,但如果当你工作在一个分布式的项目中,你的代码库在另一个大洲的时候,这就会是非常大的问题了.
  • 如果你经常在四处奔走,无法随时与代码库建立网络连接,那么一个分布式的管理系统会使你可以随时与代码库一起工作.你可以随时随地提交你的工作,浏览历史,并且在比较版本间的差异.
  • 还有一项体验也许并不能说是一个工具问题,而更多的是一个社会问题.分布式版本控制工具鼓励快速的branching和试验.在SVN中,你当然 也可以进行branching操作,但是你所做的操作对于其它在这个代码库上工作的人员也是可见的, 这也许并不是什么大问题,但确实会降低人们进行一些实验性工作的欲望.分布式系统则会鼓励你为工作代码进行记录:你可以向你的本地代码库提交未完成的修 改,甚至是无法通过测试和无法编译的代码.你同样可以在SVN中进行这些操作,但是在公共空间中创建这些branches总是让人望而却步.
  • 高级的Branching和合并操作.
  • 非常高效的个人/本地branching操作.
  • 分布式的,而不是集中式的.
  • 完善的合并点追踪.
  • 无缝合并重命名文件,无需任何配置.
  • 代码库很少会崩溃,专家/开发人员比例几乎为零,如1:10000.
通过前面版本控制工具的演化过程,我们基本上可以看到分布式工具的特点和优势了.相对于以往的客户-服务器端的集中式系统,它所采用 的是一种P2P的方式.客户端不再需要从一个单一的中央代码库同步代码,每一个端点的代码的拷贝都是真正的代码库.分布式的版本控制系统是通过端点之间交 换补丁(patch)的方式来同步代码的,而这种方式就决定了分布式系统与集中式系统的几个重要的区别:
  • 默认情况下,没有标准的代码库参照;只有工作代码的拷贝.
  • 由于不需要与中央服务器进行通信,因此一般的操作(如提交,查看历史和还原修改等)的执行速度非常快.只有在向其它端点push代码更改或者从其它端点pull代码更改的时候才会需要进行通信.
  • 每一份代码拷贝都可以作为代码库及其更改历史的一份远程备份,这就为数据丢失提供了天然的保护.
  • 鼓励测试性的branch – 创建或者销毁branch的操作简单而且快速.
  • 同伴之间的合作变得非常容易.

另外我还要说出一点,svn提交是支持一个pms的后台操作和提交的功能的,我不知道Hg是否有类似于团队的进程管理网站,就是团队的每个人都可以在一个地方看到每个人今天要“项目经理”分配下来的任务,然后你接受并开始任务,可以暂停和提交等的技术。

关于集中式版本和分布式版本软件的差异可以看这篇文章的详细介绍:http://blog.csdn.net/zl728/article/details/5952995

下面的一篇文章中将会介绍到使用到的禅道pms项目管理软件的使用和心得。


关注我

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

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

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