我正在考虑使用AppHarbor来托管一个轻量级网站,并正在调查他们的Mercurial集成。
目前我使用Kiln作为我的远程存储库,但目前AppHarbor仅支持BitBucket集成。
是否可以为单个本地存储库提供2个远程存储库?所以,当我从我的本地推送提交时,他们都会得到推动?
我不想从BitBucket中拉出来,只需推送它就可以被AppHarbor抓取并部署。
答案 0 :(得分:42)
您可以在存储库配置文件的[paths]
部分中设置多个远程存储库别名。这个文件在.hg / hgrc中,你可以添加这样的路径
[paths]
default = http://kilnhg.com/repo
bitbucket = http://bitbucket.org/repo
然后你会运行hg push bitbucket
推送到bitbucket并hg push
推送到窑,这也是默认值。别名default
是您未指定任何其他内容时使用的别名。这种方式无需参数的推拉将使用您首选的远程主机,窑。
遗憾的是,您无法一次性hg push *
类型命令推送到所有远程主机,您必须逐个指定每个推送目标。
答案 1 :(得分:2)
我不确定你是否可以在Bitbucket / Kiln上编辑hgrc文件。如果可以,您可以自动完成此操作。如果没有,你可以推送到另一个本地副本,然后使用Hooks将其推送到Bitbucket和Kiln。请参阅this answer by Ton(为方便起见,包含在下方):
在中央服务器中创建一个 changegroup hook。
所以你的中央服务器就有了 关注hgrc:
[paths] server2=http://server2 server3=http://server3 [hooks] changegroup.server2 = hg push -f server2 changegroup.server3 = hg push -f server3
你可以有多个钩子 同样的事件,所以不应该是一个 问题。的优点 changegroup挂钩变换集 钩子是它运行得少得多。