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>
Share and Enjoy:
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Live
  • Technorati

,

  1. #1 by caicai on 2010-03-11 - 16:54

    用vnc不就直接在远程目标机器上更改和编译了么?不过我是要好好学习你这篇,还不是很熟练hg

    • #2 by hzmangel on 2010-03-11 - 17:40

      @caicai, 但是这边的网络环境不是很好啊,VNC占用带宽太大。公司的出口带宽跟不上~
      呵呵,HG其实基本使用就这些简单的命令,我还没弄过branch什么的,那些好像有些麻烦。

  2. #3 by xrdavies on 2010-04-07 - 22:43

    可以试试 gedit,似乎比较舒服点。。。

    • #4 by hzmangel on 2010-04-08 - 18:46

      用GUI网速跟不上哇,而且我要删那些个不小心按出来的jkl;~
      再说了,有GUI我就直接gvim了~

(will not be published)