我有以下要求,两个远程裸存储库存储库A和存储库B,我的目标是将repoA
内容同步或推送到repoB
@regular interval。
我使用Gitolite v3 btw,我应该选择Gitolite镜像还是后接收钩子?如果它是一个后期接收,如何实现呢?
答案 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挂钩就足够了。