git - gerrit 和 github.com 之间可以进行双向同步吗?

标签 git github replication gerrit

对于 github.com 私有(private)存储库中存在的项目,我正在设置 gerrit 代码审查。

我正在使用 gerrit 的复制插件来保持 gerrit 存储库与 github.com 同步。

但是,如果有人提交(比如 commit-a)并直接推送到 github.com,则当 gerrit 执行以下操作时,commit-a 会在 github.com 中被覆盖复制过程(因为,它只复制gerrit镜像中的东西)。

但我想实现2路同步。就像,每当向 gerrit 推送时,它都必须检查 github.com 并使用那里的新代码更新其镜像,然后继续 merge 。

这可能吗?

最佳答案

这是一个难题。像您所描述的那样的多主机设置存在于许多地方,但依赖于所涉及的系统的高度集成和构建来支持这一点。

我看到两个选项:

  • Gerrit 和 Github 都必须能够相互通信,并允许在服务器 B 更新其引用时锁定服务器 A 上的 git。一旦 B 更新,数据就会复制到 A,并且 A 就会被解锁。此功能不存在,而且可能永远不会存在。
  • 接收推送的服务器可能很乐观,希望不会发生并发更新。对于中等繁忙的服务器,大多数情况下不会发生这种情况,但如果确实发生,则必须有一个合理的恢复策略。如果并发检查是异步完成的,即如果不是不可能的话,恢复会变得更加困难。 Gerrit 在推送时发出“好的”信号,然后才真正确保与 Github 的交易安全。同步更新可以解决这个问题,但会损害性能和可靠性。

关于git - gerrit 和 github.com 之间可以进行双向同步吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21424563/

相关文章:

git - 如何提供对 Composer 使用的 git 存储库的访问

git - git如何自动 merge 两个分支?

git - 我们可以从项目的 .git 文件夹中获取源代码吗

git - 如何告诉 GitHub 不要计算外部库中的行数?

python - 在 Visual Studio Code 中将文件添加到 gitignore

git - 由于二进制文件,无法推送到 Git

git - 重用 merge 的开发分支/使用 git 重新 merge 到未更改的稳定分支

mysql - 这个查询如何破坏我的 mysql 复制?

replication - 添加 redis slave 是否会向 master 发出阻塞调用?

mysql - 错误 3098 (HY000) : The table does not comply with the requirements by an external plugin