3

题目如题。我想使用 gerrit 或 phabricator 等工具改进我们的代码审查。我们无法访问托管我们的 git 存储库的服务器,但我们有其他服务器可以运行 gerrit 或 phabricator - 取决于哪个更好/让我们做我们想做的事。

第一个问题:有可能吗?二:怎么办?

4

2 回答 2

4

如果开发人员可能会将更改推送到远程存储库,那么 Gerrit/Phabricator 就不会知道这些更改,那么就没有好的选择。代码审查在这一点上并不是真正有效的——开发人员可能会提出一个看起来完全有效的更改以供审查,但实际上这些更改是对上游删除或重构的文件进行的。

我对 Phabricator 不是很熟悉,但这里有一些 Gerrit 的选项可能会起作用:

  1. 您可以在本地挂载远程存储库,使其看起来像 Gerrit 的本地文件系统吗?那将是理想的解决方案 - Gerrit 将推送到此存储库并捕获任何合并问题,并将它们呈现给用户。

  2. 您可以使用 Gerrit 的复制功能将合并的更改推送到远程存储库。如果存在合并冲突,我不知道处理它们的好方法。

  3. 您可以为 Gerrit 编写一个挂钩,将合并的更改推送到远程存储库。这比 #2 更灵活 - 您可以在合并冲突时收到挂钩电子邮件。

  4. 使用解决方案 2 或 3,您需要某种方法来保持 Gerrit 的存储库副本是最新的。推送到 Gerrit(绕过审查)的远程存储库上的 git 挂钩是最佳选择。否则我认为你必须有一个脚本来轮询远程服务器的更改并将它们推送到 Gerrit。

于 2012-10-25T16:29:53.957 回答
2

Phabricator 不需要存储库的主副本。许多安装(包括 Phabricator 的元安装)当前将它与 GitHub 一起使用,它不提供对 master 的访问。

这是 Phabricator 目前运行的唯一模式(它目前无法管理 master)所以只需按照正常的安装说明进行配置,特别是:

http://www.phabricator.com/docs/phabricator/article/Diffusion_User_Guide.html

于 2012-10-25T17:11:21.693 回答