我正在考虑使用 AppHarbor 来托管一个轻量级网站,并正在研究他们的 Mercurial 集成。
目前我将 Kiln 用于我的远程存储库,但目前 AppHarbor 仅支持 BitBucket 集成。
单个本地存储库是否可以有 2 个远程存储库?所以当我从本地推送提交时,他们都得到了推送?
我不想从 BitBucket 中拉取,只需要推送,以便它可以被 AppHarbor 抓取并部署。
我正在考虑使用 AppHarbor 来托管一个轻量级网站,并正在研究他们的 Mercurial 集成。
目前我将 Kiln 用于我的远程存储库,但目前 AppHarbor 仅支持 BitBucket 集成。
单个本地存储库是否可以有 2 个远程存储库?所以当我从本地推送提交时,他们都得到了推送?
我不想从 BitBucket 中拉取,只需要推送,以便它可以被 AppHarbor 抓取并部署。
[paths]
您可以在存储库配置文件的部分中设置多个远程存储库别名。该文件位于 .hg/hgrc 中,您可以添加这样的路径
[paths]
default = http://kilnhg.com/repo
bitbucket = http://bitbucket.org/repo
然后你会运行hg push bitbucket
push to bitbucket 并hg push
push to kiln,这也是这里的默认设置。别名default
是在您不指定任何其他内容时使用的别名。这种不带参数的 push 和 pull 将使用您首选的远程主机 kiln。
遗憾的是,您不能执行hg push *
type 命令来一次推送到所有远程主机,您必须一一指定每个推送目标。
我不确定您是否可以在 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 挂钩的优势在于它的运行频率要低得多。