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>
This entry was posted in 善用佳软 and tagged , . Bookmark the permalink.

4 Responses to Simple Process with Mercurial Build-in Server

  1. caicai says:

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

    • hzmangel says:

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

  2. xrdavies says:

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

    • hzmangel says:

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

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>