分布式版本控制系统 Mercurial与TortoiseHg

fmms 13年前
Mercurial是我最喜欢的下一代分布式版本控制系统。简单,快速,高效,强大。
最主要的是他的图像客户端TortoiseHg,TortoiseHg就能把所有的比下去了。

为什么不是SVN

- SVN服务器管理复杂。
- SVN不能支持代码重构,当移动文件夹时会出错。
- SVN不能支持离线操作。当在保密环境下或者在家里,不能同步代码。
- SVN在网络故障的情况下产生悲剧。
- SVN速度超慢。提交、更新、浏览历史的速度都很慢。
- SVN强迫使用者即时处理冲突,然后才能提交。导致代码不能即时提交。
- SVN不能恢复到历史版本。SVN记录了单个文件的历史版本,但没有记录全局版本,不能恢复到上次的状态。
- SVN经常莫名奇妙的不能提交。
- SVN不知道为什么老需要手动clearnup。
- SVN自建分支后无法进行合并。
- SVN不能主动推送改变。

为什么不是Git

Git没有好的图像客户端。我们使用代理服务器上网,我在Git上从来没有成功配置过代理服务器(估计是因为我们的用户名中有个@的原因)。更重要是Git比Hg的学习曲线更陡峭。

什么是分布式版本控制

分布式版本控制(DVCS)是一种不需要中心服务器的管理文件版本的方法。它比集中的版本控制更灵活,支持各种工作流;它比集中式服务器快得多,因为大多数操作在客户机本地进行,而不需要网络操作。


Mercurial的基本概念

由于Mercurial是分布式的,所以每个库都是原始库的完整拷贝,每个库都既是客户端也是服务端。

clone:复制一份原始库的完整副本。
commit:提交当前改变到本地库。
changeSet:每一次提交都会生成一个改变集。
update:将当前工作文件还原到给定提交点。
push:将当前改变集推送到别的库。
pull:将别的库的改变集拉回。

push和pull组成一组同步操作,用于两个库之间交互数据。
commit和update组成对当前工作文件的操作,都是在本地完成,不需要网络。

TortoiseHg使用入门

分布式版本控制系统 Mercurial与TortoiseHg
克隆库

分布式版本控制系统 Mercurial与TortoiseHg
提交改变

分布式版本控制系统 Mercurial与TortoiseHg
更新到指定改变集

分布式版本控制系统 Mercurial与TortoiseHg
与远程库同步