首先..友情提示: 我也是版本控制的新手一只, 勿轻信勿轻易follow我的做法…
于是在被SVN痛苦的煎熬许久之后, 终于决定换一个VC了…
在git和水银之间徘徊了一下, 由于google都选择了水银, 所以我也选用水银了~
于是现在我正在做的项目被host在本地一台服务器上(下称A), 同时在bitbucket上注册了一个私有项目用来备份, 然后对外展示的产品运行在服务器B上(下称B).
我的想法是, 因为产品本身有些复杂, 开发人员不方便直接本机调试, 所以在本地服务器上进行测试. 从本地pull到服务器A时, 服务器A应立即更新测试环境, 并同步备份到bitbucket上. 而服务器B应该手动或以较长时间间隔从bitbucket上抓取.
那么… 首先实现中间环境吧!
首先在bitbucket上注册帐号…(略去若干字)…然后, 在服务器A和B上分别clone bb上的repo. 之后, 配置服务器A的.hg/hgrc, 加入hook:
[hooks]
changegroup = uploadtobb
…然后..写脚本updatetobb!
#!/bin/sh
cd /path/to/your/repo
hg update
hg push
OK! 这样第一部份的工作就done了~
然后, 设置crontab定时从bb上更新代码到服务器B:
crontab -e
增加一行任务:
* * * * * /path/to/your/script
修改频率为你所需的…
…至于脚本, 可以这样写:
#!/bin/sh
cd /path/to/your/repo
hg pull -u
that’s all!
可以用
hg serve
来打开本机IP:8000的简单Web服务用于提交代码, 不带用户验证的, 临时给局域网内用户用用倒是可以.
如果需要用户可以上传代码, 应该在hgrc里加上:
[web]
allow_push = *
push_ssl = false
唔, 明天本猫研究hgwebdir, 到时候会继续留笔记的!
参考资料:
1, PT酱的大脑
2, http://mercurial.selenic.com/wiki/
你这样做多麻烦,用git,可以绑定post-commit操作,GitHub也是无敌的
git的post-commit hook也是外部shell脚本,和mercurial的hook没区别。
问题是bb不支持hook,github支持~
我即将要去的那家公司用的自动化测试工具叫Selenium,查下化学元素吧……
= =|||都喜欢用化学元素名
不,Selenium是硒,然后你搜硒和汞,就会看到如 “維他命E及硒能夠有效降低及中和汞污染所造成的神經及胎兒傷害” 这样的标题。所以Selenium这个名字是有深刻意义的。
好吧….= =|||这么远的引申义, 二次元都弱爆了