蓝天,小湖,湖水中一方小筑

Simple Process with Mercurial Build-in Server

在putty里面用vim用够了,于是在远端机上弄了个Hg的版本库,平时在本机做开发,然后写完直接push到远端编译。不想折腾太多的东西,所以就用的是Hg自带 的web服务器。首先在远端某个目录里面新建一个Hg版本库

hg init

然后就可以在远端开服务了,为了少惹麻烦,用了个3456的端口

hg serve -p3456

然后在本地就可以找个目录直接把那边的东西拷过来了

hg clone <host> <local_dir>

使用hg clone的好处是在目录的.hg/hgrc文件中已经存放有默认提交/连接的地址,以后在使用hg pull或者hg push时不需要额外提供地址了。

[paths]
default = <host>:<port>

在本地做过修改后,需要check in到版本库中才能成功的被push到远端。如果不加-m参数则会弹出一个编辑器让你输入log

hg ci <-m "log message">

在push的时候需要注意一个问题。为了安全起见,在默认情况下,Hg对于push是有一些限制的,首先需要SSL,其次需要提交改动的用户有权限。不过由于是自己使 用嘛,所以可以在Hg的配置文件中把这两个限制取消,即在hgrc中加入以下几行

[web]
push_ssl = false
allow_push = *

根据自己的需求确定这几行加的位置(全局的配置还是某项目相关的配置)。添加过后即可在本地push改动到远端了。如果那个url已经添加到hgrc文件中,则不需要 指定url参数(嗯,适合我这种懒人)。

hg push <url>

在远端此时只是把改动更新到版本库中,并没有把改动真正放到代码中,所以还要在远端运行一下更新命令

hg up

然后,就能编译了,于是一次简单的流程就完鸟。如果在远端有改动,在check in到版本库后,可以在本地使用pull命令把改动同步过来。

hg pull <url>