2012-10-25 42 views
3

题目中的问题。我想用像gerrit或phabricator这样的工具来改进我们的代码审查。我们无法访问托管我们的git存储库的服务器,但我们有其他服务器,我们可以运行gerrit或phabricator - 取决于哪一个更好/让我们做我们想做的。是否有可能在一台服务器上运行gerrit/phabricator(代码审查),另一台服务器上运行git存储库?并让他们同步?

第一个问题:有可能吗? 二:如何做到这一点?

+1

你就能够推动打算到两个地方? Gerrit和您的其他托管服务提供商?如果将其限制为Gerrit,则可以使用post-receive钩子镜像到其他存储库。我现在用我的一些回购协议做这件事。我在我自己的服务器上托管回购协议(对我来说),但是当我推送给他们时,它会转向并将他们推到1或2个地方。它工作得很好。但是该技术不支持从两个方向提交提交。为此,你必须支持合并,这也意味着你需要处理冲突。 – jszakmeister

+0

我希望能够在没有代码审查的情况下将更改推送到存储库,并且我也不能保证我的团队将成为唯一在存储库中进行更改的人员,因此我们可能会将更改推送到两个位置。 。phabricator怎么样?我已经使用了它一个月左右,与gerrit不同的是,您需要负责在代码审查之后将更改推送到存储库,在这里gerrit会为您做。 –

+0

我对phabricator没有太多的了解,但它似乎支持远程存储库。 – jszakmeister

回答

2

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

这是Phabricator在现在工作(不能用目前管理硕士),所以只要按照配置正常的安装说明,尤其是唯一的模式:

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

+0

我需要帮助phabricator。我已经在Ubuntu上安装了它,但我无法理解如何安装arc和其他实用程序来使用代码审查。谢谢 – 2013-03-06 14:09:47

4

如果开发人员可能会将更改推送到远程存储库,那么Gerrit/Phabricator将不知道这些更改,因此没有好的选择。代码审查在这一点上并不是真正有效的 - 开发人员可能推动审查的改变看起来非常有效,但实际上,这些更改是针对上游已删除或重构的文件进行的。

我不是很熟悉Phabricator,但这里有与格里特几个选项可能工作:

  1. 你能在本地安装远程仓库,这样它看起来像一个本地文件系统格里特?这将是理想的解决方案 - Gerrit会推送到此存储库并捕获任何合并问题,并将它们呈现给用户。

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

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

  4. 无论是解决方案2还是解决方案3,都需要一些方法让Gerrit的存储库副本保持最新。推送给Gerrit的远程存储库上的git钩子(绕过审查)是最好的选择。否则,我认为你必须有一个脚本来调查远程服务器的变化并将它们推送到Gerrit。

+0

这是非常有帮助的答案,谢谢!不过,看起来我会尝试使用phabricator。 –

相关问题