Mercurial是一分布式版本控制系统,它可以帮你管理你的项目代码,如果你怕因为在开发过程中,因为小疏忽,而导致改错的代码找不回原来的模样,你就可以借助版本历史,把原来的代码给找回来。同时,在团队协作里面,如果你们所有人都要同时改动几个相同的文件,那么用版本控制系统,就可以自行合并,而不会覆盖别人辛苦的劳动成果。
Mercurial与一般传统的版本控制系统的{zd0}区别在于分布式的概念。所谓分布式,就是指没有一个所谓的集中的中心(central)库,这个库一般由svn server(svn),vss administrator(vss)控制,而Mercurial就没有这样的一个库,所以使用版本控制的时候甚至都不需要一个administrator和server,本地直接建库,直接就使用,任何一个库都可以作为中心库,每个库在Mercurial看来都是平等的。当然,实际使用的时候,可以人为的去指定一个中心库以作为发布,但是,这里强调的是Mercurial本身不关心这个,对它来说都是一样的。
首先,分布式{zd0}的好处就是离线工作,不仅意味着可以不联网就享受版本控制的好处,并且也意味着普通的提交速度也要快的多,而且,以此带来的巨大灵活性甚至能改变你的工作方式,因为以前集中式的版本控制系统,每次提交都会影响到他人,以至于不能提交未经测试的版本,而使用分布式的版本控制系统时,你可以随时随地的本地提交,安全的保护自己的工作成果,以防意外,也能随时随地的本地clone,本地分支,本地就是一套完整的版本控制系统!直到修改到最终版本,然后才push(相当于集中式版本控制的commit)到真正的一个公用库上去。
其次,对于个人开发者来说,使用集中式版本控制系统的时候有没有想过,仅仅是一个人工作,为啥偏要建立一个中心库,然后每次将自己的代码提交到那上面去啊?自己本地一个副本,库还得有一个副本。用分布式的版本控制系统就没有那么麻烦了,本地建库,直接使用就好了
Mercurial是采用Python开发的,所以跨平台性非常好。在所有平台下运行的效果都非常流畅。不象subversion, subversion那叫一个慢哦。
目前Mercurial{zd0}的客户有Google(code托管),Mozilla(火狐浏览器),Codeplex.com(微软开源项目网站)。TortoiseHg{zx1}版本1.0.4。
下载地址:
使用上也是非常的方便,下面以操作 进行说明
TortoiseHg 的实质是通过hgtk命令附加不同的参数来调用 hg 命令并把结果以图形界面的方式显示出来。而 TortoiseHg 在 Windows 平台上的右键菜单是一种称为 overlay 的插件,从而方便地嵌入到 explorer 等组件以直观的显示仓库的情况。类似于SVN,我们要把代码拉到本地,使用命令Clone,克隆(clone)更是从网上获取开发者代码最经常做的一件事。
很快就把源代码拉到本地了
右击可以看到命令非常丰富,和SVN类似
本地提交(commit)
Mercurial也有commit,不过这里的commit与VSS,SVN中的不同,这里的commit仅仅提交到本地,你可以放心的commit,因为不会影响到别人。
版本同步(push,pull)
当我真的需要将修改提交到服务器上怎么做呢?用push(推)出去自己的版本。事实上,这还是牵涉到版本管理哲学的问题,因为codeplex上host的那个库在Mercurial看来也就是一个普通的库,没有什么特殊的,你仅仅是将自己的库强行推给它,将它的库修改而已。同理,当你想要放弃修改,需要做的就是将codeplex上的库pull(拉)回来。当然,在codeplex上push是需要用户名和密码的,完成后显示Success,然后你再去clone的时候会发现内容已经变了。
更详细的内容参考: