【问题标题】:Install Gerrit and git on different machines在不同的机器上安装 Gerrit 和 git
【发布时间】:2015-01-31 16:42:18
【问题描述】:

我有一个场景。我有两个实例,Gerrit 的实例 1 和 Git 的实例 2。我想了解 git 将如何拦截直接发送到实例 2 的请求?
可以安全地假设我只需要远程安装 gerrit,而不是在 git 实例上。

在初始化 gerrit 时,交互式 cli 屏幕会询问 git 存储库位置,该位置应该是本地(?)目录,例如 /home/me/git-repo(在 git-repo 我有我的 project.git 文件)。如果不是本地存储库,而是指定一个远程存储库 URI,比如 ssh://git@git.machine.com/root/project.git,首先,它会工作吗?如果是,它是如何真正拦截到 ssh://git@git.machine.com/root/ 的所有推送、拉取...请求?

【问题讨论】:

  • 感谢 Magnus 的链接。但是,问题是,我希望 gerrit 只“照顾”远程文件夹中的一个存储库(在许多存储库中)。一种方法是在所有其他存储库上提供完全权限(如果我们这样做,每个人都需要在本地机器上设置 git-review,这是我们不想要的)。我们只希望特定的一组人(在特定的存储库上工作)使用 gerrit。当所有人都不会使用 gerrit 的服务时,为什么还要打扰所有人。
  • 不,您的用户不必设置 git-review。 Gerrit 的审查功能是可选的,您可以将其用作通用 Git 托管软件,例如石榴石。没有人会因为切换到 Gerrit 而烦恼(除了迁移本身)。

标签: git gerrit


【解决方案1】:

这是可能的。首先要了解 gerrit 将充当远程 git 的临时工作场所。这意味着当用户提交补丁集时,它首先需要转到 Gerrrit 的 git 工作区。通常是 $GERRIT_HOME/git/。现在需要启用复制,以便将此存储库同步到他们最终要提交代码的远程 git 服务器。可以在此处找到有关复制设置和 git 项目设置的一些有用链接:

https://review.typo3.org/plugins/replication/Documentation/config.html

Importing already existing git repo with multiple branches and tags into gerrit

可能对您有所帮助的示例 replication.config:

[remote "github-remote-name"]
    url = git@<remote-git-server>/${name}.git

请记住,此 ${name} 是一个神奇的关键字,需要与您要同步的 repo 匹配。为了同步您可能拥有的许多选择性回购,请遵循上面链接中的指南。

希望这会有所帮助。

【讨论】:

  • 感谢您的帮助。但是,我注意到您提到 ${name} 关键字帮助我使 gerrit 与任何“特定”存储库保持同步。我对此有一个小小的跟进,有没有办法在本地实现相同的结果?我的意思是,我只想在特定的存储库(比如 product.git)上而不是在 utility.git 上强制执行 gerrit-review,这两者都可能存在于同一个文件夹中。一种方法是向utilities.git 上的所有用户授予完全权限,但这就像规避规则以获得结果一样。有没有直接的方法?提前致谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-31
  • 2012-08-04
  • 2015-08-02
相关资源
最近更新 更多