Gerrit与Github的集成

37
我正在使用 github,并且愿意开始使用 Gerrit

由于Gerrit使用JGit,我担心来自此链接的以下文本:

  

EGit / JGit是用Java重新实现的git,因此GitHub不支持它。已经发生了问题,并且由于它们而使存储库损坏。虽然通常很容易修复这些repo由于git的分布式性质,但请注意EGit可能无法像官方git二进制文件一样工作。

是否有人已经使用过它了?


只是好奇你是否设置了这个,如果是的话,进展如何? - jabley
@jabley:我最终只使用了gerrit。 - Macarse
2个回答

37

Gerrit是独立的服务器,我们遇到的问题是与客户端有关的,并且最近已经在全新版本的JGit中修复。它也没有损坏仓库,只是推送了缺少对象的packfile。 Gerrit服务器非常稳定,已经被Android项目使用了一年多。

然而,由于Gerrit是自己的服务器并强制执行非常特定的工作流程,因此通常不会与公共GitHub一起使用,因为GitHub上的代码贡献往往是拉取请求,而在Gerrit上的贡献是通过Gerrit系统进行同行验证的补丁系列。您可以为同一项目设置它们两者,但大多数人不这样做。


1
谢谢你的回答,Scott。我想使用这种方法在我的团队中使用Gerrit代码审查功能,在推送到Github主分支之前。这样做有意义吗? - Macarse
我正在考虑使用Gerrit的原因。我们有一个Github账户,其中包含我们公司的私有存储库,并且我们允许按开发人员的方式访问这些存储库。我们不希望让开发人员分叉这些私有存储库并使用Github分叉队列来管理审查,因为我认为每个开发人员都需要在自己的Github账户上拥有私有存储库。相反,我们希望在推送到托管在Github上的主分支之前审核更改。 - jabley
2
@jabley,私有存储库的分支不计入每个帐户的私有存储库数量。因此,如果company拥有一个私有存储库project,并且alice、bob和cecile对其进行了分支,您不必为其帐户上的私有存储库付费,只需在公司帐户上支付一次即可。 - max
1
@mdorseif - 是的,我们已经发现了这一点。Github引入了他们自己的工作流程,并且对于我们的目的非常有效,因此我们不需要使用Gerrit。我们只需将其推送到分支,创建拉取请求并在该分支上进行审查,进行更改,重新基于和合并即可。简单易行! - jabley
值得注意的是,目前似乎有一种使用Gerrit服务器并使用插件将其镜像到Github的集成方式。不幸的是,Gerrit仍然必须是真相的来源。 - Anton Strogonoff

7

我们在http://wp.me/p1dpEJ-2q上发布了Gerrit和GitHub的全面比较。 - lucamilanesio
1
有没有办法将GerritHub中已批准的更改传回GitHub? - Thomas Uhrig
1
是的,它们会自动通过Gerrit复制进行传播。注意:一旦您在GitHub存储库上使用Gerrit,您需要记住推送到Gerrit并从其中一个(Gerrit是主服务器,GitHub成为只读从服务器)拉取。 在GitHub上,您可以继续接受Pull请求并通过Gerrit将它们合并。 - lucamilanesio

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接