公司的HG仓库在北京,每次代码的Push和Pull都非常慢,于是在Dev服务器启动一个HG服务做为境像,并由Jenkins完成与北京仓库的定时/手动同步。

 

代理仓库服务器配置

配置仓库,编辑.hg/hgrc文件,增加以下配置

#关闭ssl认证
[web]
push_ssl = false

#配置该仓库提交时用户名
[ui]
username = CD Mirror

[trusted]
users = <用户>

在仓库目录下,使用HG命令启动仓库服务

sudo hg --config web.allow_push=* serve -p 81

其中 -p是端口,–config web.allow_push=*是指允许所有用户向该仓库push代码

 

开发机配置

配置本地仓库,编辑.hg/hgrc文件,增加path

[path]
cdrepo = http://<ip>:<port>

配置完成后,开发机可通过hg push cdrepo完成代码推送。由在代理服务器上完成统一的代码merge与同步。由于之前做自动化发布时已经搭建好了,并安装了shell插件。 可以在jenkins上建立一个shell任务,完成手动同步/定时同步。

 

常见错误

push代码时,发生“abort: authorization failed“异常,若在安全内网,可通过hg –config web.allow_push=* 命令指定该参数,取消提交认证。也可以通过编辑代理仓库的hgrc完成

[web]
allow_push=*

pull代码时,发生“Not trusting file..”异常,通过编辑代理仓库的hgrc修正

[trusted]
users = <user1>, <user2>, ...
groups = <grou1>, <group2>, ...