28

我正在考虑使用 AppHarbor 来托管一个轻量级网站,并正在研究他们的 Mercurial 集成。

目前我将 Kiln 用于我的远程存储库,但目前 AppHarbor 仅支持 BitBucket 集成。

单个本地存储库是否可以有 2 个远程存储库?所以当我从本地推送提交时,他们都得到了推送?

我不想从 BitBucket 中拉取,只需要推送,以便它可以被 AppHarbor 抓取并部署。

4

2 回答 2

44

[paths]您可以在存储库配置文件的部分中设置多个远程存储库别名。该文件位于 .hg/hgrc 中,您可以添加这样的路径

[paths]
default = http://kilnhg.com/repo
bitbucket = http://bitbucket.org/repo

然后你会运行hg push bitbucketpush to bitbucket 并hg pushpush to kiln,这也是这里的默认设置。别名default是在您不指定任何其他内容时使用的别名。这种不带参数的 push 和 pull 将使用您首选的远程主机 kiln。

遗憾的是,您不能执行hg push *type 命令来一次推送到所有远程主机,您必须一一指定每个推送目标。

于 2011-06-03T07:20:48.333 回答
2

我不确定您是否可以在 Bitbucket/Kiln 上编辑 hgrc 文件。如果可以,您也许可以自动执行此操作。如果没有,您可以推送到另一个本地副本,然后使用 Hooks 推送到 Bitbucket 和 Kiln。请参阅Ton 的这个答案(为方便起见,包括在下面):

在您的中央服务器中,您创建一个变更组挂钩。

因此,您的中央服务器将具有以下 hgrc:

[paths]
server2=http://server2
server3=http://server3
[hooks]
changegroup.server2 = hg push -f server2
changegroup.server3 = hg push -f server3

对于同一个事件,您可以有多个挂钩,所以这应该不是问题。与变更集挂钩相比,changegroup 挂钩的优势在于它的运行频率要低得多。

于 2011-06-04T11:58:34.103 回答