如何在Gitolite中同步2个裸存储库?

时间:2015-10-21 09:29:25

标签: gitolite

我有以下要求,两个远程裸存储库存储库A和存储库B,我的目标是将repoA内容同步或推送到repoB @regular interval。

我使用Gitolite v3 btw,我应该选择Gitolite镜像还是后接收钩子?如果它是一个后期接收,如何实现呢?

1 个答案:

答案 0 :(得分:1)

当然,最简单的方法是添加收件后挂钩(请参阅" (v3.6+) variation: repo-specific hooks")。

cd /path/to/your/gitolite-admin-clone
mkdir -p local/hooks/repoA

git push --mirror ../repoB

Mirroring 主要用于不同gitolite服务器之间的同步(我想它可以设置为在t/mirror-test中的同一服务器上镜像,但它有点矫枉过正)。
此外,它补充说:

  

从v3.5.3开始,gitolite使用异步推送到从站,这样主推即可立即返回,而无需等待从站推送完成。
  如果您正在编写执行推送的脚本,然后立即读取其中一个从属设备,请记住这一点 - 您需要在脚本中添加几秒钟的睡眠时间。

这意味着:

如果要维护多个 gitolite服务器,那么镜像很有意思,主要是因为push --mirror从初始git push到repoA异步完成。 在这方面,gitolite镜像更快,因为你推到A,在背景中,gitolite将push --mirror到其他gitolite服务器。

但是在这里,对于另外一个回购(在同一个gitolite服务器上,或在另一个gitolite服务器上),一个简单的post-receive挂钩就足够了。