Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以在一台服务器上运行gerrit/phabricator(代码审查),在另一台服务器上运行git存储库?让他们同步?_Git_Gerrit_Phabricator - Fatal编程技术网

是否可以在一台服务器上运行gerrit/phabricator(代码审查),在另一台服务器上运行git存储库?让他们同步?

是否可以在一台服务器上运行gerrit/phabricator(代码审查),在另一台服务器上运行git存储库?让他们同步?,git,gerrit,phabricator,Git,Gerrit,Phabricator,标题中的问题。我想用gerrit或phabricator这样的工具来改进代码审查。我们无法访问托管git存储库的服务器,但我们有其他服务器可以运行gerrit或phabricator,这取决于哪个更好/让我们做我们想做的 第一个问题:可能吗? 第二:如何做?如果开发人员可能会将更改推送到远程存储库,这样Gerrit/Phabricator就不会知道这些更改,那么没有好的选择。代码审查在这一点上并不是真正有效的——开发人员可能会提出一个看起来完全有效的更改以供审查,但实际上这些更改是对上游删除或重

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

第一个问题:可能吗?
第二:如何做?

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

我对Phabricator不太熟悉,但下面是Gerrit的一些可能有效的选项:

  • 您能否在本地装载远程存储库,使其看起来像Gerrit的本地文件系统?这将是理想的解决方案-Gerrit将推送到该存储库并捕获任何合并问题,并将它们呈现给用户

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

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

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


  • Phabricator不需要存储库的主副本。许多安装(包括Phabricator的meta安装)目前将其与GitHub一起使用,GitHub不提供对主机的访问

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


    您是否打算同时向这两个地方推进?Gerrit和你的另一个主机提供商?如果将其限制为Gerrit,则可以使用post接收挂钩镜像到其他存储库。我现在用我的一些回购协议来做这件事。我(为我)在自己的服务器上托管repo,但当我推到它们时,它会反过来将它们推到1或2个以上的位置。它工作得很好。但该技术不支持来自两个方向的提交。为此,您必须支持合并,这也意味着您需要处理冲突。我希望能够在不进行代码审查的情况下将更改推送到存储库,而且我也不能保证我的团队将是唯一在存储库中进行更改的人,因此我们有可能将更改推送到两个位置。。。那么phabricator呢?我已经使用了大约一个月了,它与gerrit的不同之处在于,您负责在代码审查后将更改推送到存储库,gerrit会在存储库中为您进行更改。我不太了解phabricator,但它似乎支持远程存储库。这是一个非常有用的回答,谢谢!不过,看起来我会尝试使用phabricator。我需要phabricator方面的帮助。我已经在ubuntu上安装了它,但我无法理解如何安装arc和其他实用程序来使用代码审查。谢谢