2008年10月9日星期四

使用Mercurial之乐

* 方便的安装。
不论是mac, linux还是windows,不论你是命令行的爱好者还是乌龟的忠实粉丝,你总能找到一款适合你的。

* 2个命令创建一个Mercuria仓库,
> hg init
> hg serve,
通过这两个命令你就可以拥有一个通过HTTP协议访问的mercurial仓库, 你可以方便的通过客户端通过命令访问,或者你可以轻松的使用浏览器来浏览当前的代码。

* 方便的分布式功能
上一次在印度我想在一台新电脑上安装源代码,无奈网络速度太慢,于是乎,我找到一个存有源码的机器,hg serve,这样我得到了一个本地服务器,通过它,我在1分钟内拿到了代码,然后将hgrc(一个mercurial的配置文件)的URL指向在中国的服务器,继续更新后面的几个patch。 将一个1个小时的操作变成2分钟的操作。

如果你急需要某个patch, 但是你的同事还没来得及提交到服务器上去,没关系,你大可以将自己的workingcopy指向同事的电脑, 运行hg pull就可以从他那里及时的拿到最新的代码。

没有branch的痛苦, 没有branch是因为每个人都是一个branch -_-!!!

* 便捷的本地提交
使用Mercurial,你可以在没有网络的情况下通过
> hg ci
进行本地提交,再也无需因为没有网络时候患上“写代码没有SCM恐惧症”,你也可以通过这个命令在日常开发中即达到小步前进,又不用每10分钟非得跑一遍测试。

* 离线操作
不论是Mercurial的提交或者是diff,rollback,strip, merge都可以在没有网络的情况下进行,想像一下在中国开发,服务器在美国的痛苦:那缓慢爬行的小乌龟。

* 速度优势
Mercurial是增量存储,并且它会每隔一段时间进行对整个Repository打一个快照,这样当你去clone repository(相当于svn checkout)的时候,它可以找到最近的一个快照,并在它的基础上应用后续的patch。

* 基于patch的管理
Mercurial将你的提交作为一个patch管理, 你可以很容易拿到别人的patch,通过hg客户端或者linux上的 patch命令将别人最新的修正打在你的工作目录里面。

* 更多的便捷操作
你想将本地的某些提交取消? hg strip
你想将server上的某些changeset取消?hg backout
你想订制hg log的输出方式?定义自己的hg template。

尝试Mercurial

没有评论: