如何将 Gerrit 3.0 项目从一台 Gerrit 3.0 服务器迁移到另一台 Gerrit 3.0 服务器并维护更改元数据?

问题描述 投票:0回答:1

我正在寻找一种本机方法来简单地将项目从运行 3.X 的一台 Gerrit 服务器(服务器 A)传输到另一台运行 3.X 的 Gerrit 服务器(服务器 B),但是,我需要保留来自服务器的更改元数据A 流入服务器 B。最终结果是一组完全合并的 Gerrit 服务器,这些服务器当前托管着截然不同的代码库。

我熟悉 Gerrit Importer 插件,但它似乎从 2.16 开始就被破坏了: https://bugs.chromium.org/p/gerrit/issues/detail?id=10353

我可以在服务器 B 中创建新项目并将代码推送给它们,但元数据不会随之出现,这是我所期望的,因为它存储在 git 存储库中。 (我可能在这里遗漏了一些东西)

我还将存储库从服务器 A 的后端复制到服务器 B 的后端,试图让 Gerrit 识别完整的存储库。这可行,但需要我将服务器 B 的服务器 ID 更改为服务器 A 的服务器 ID,以便在 UI 中查看更改。这很好,但是一旦服务器 ID 更改为服务器 A 的 ID,服务器 B 的更改就不会加载到 UI 中。

希望对此有一些指导,或者有人可以指出我在上述尝试中错过的一些明显错误。

git migration gerrit
1个回答
0
投票

根据这个视频,看起来将git存储库复制到新服务器后,您只需使用

gerrit.importedServerId
选项添加旧服务器的id即可。

请参阅:https://gerrit-review.googlesource.com/Documentation/config-gerrit.html

从其他 Gerrit 服务器导入的存储库的 ServerId。与导入的 serverId 相关的更改会被编入索引并 显示在 UI 中,但无法通过 changeNumber 搜索 因此,index.cacheQueryResultsByChangeNum 也必须设置为 错误的。导入的更改仍然可以通过任何其他方式发现,例如 示例:

project:someproject branch:main changeId:I78a7add1fe2597cad788c833d8f771f09b54cf33

指定多个 gerrit.importedServerId 以允许从具有不同 serverId 的多个 Gerrit 服务器导入。

Note
The account-ids referenced in the imported changes are used for looking up the associated account-id locally, using the imported:
external-id. Example: the account-id 1000 from the imported server-id
59a4964e-6376-4ed9-beef will be looked up in the local accounts using
the imported:1000@59a4964e-6376-4ed9-beef external-id.

如果未设置此值,则从其他 Gerrit 服务器导入的所有更改都将被忽略。

默认为空。

© www.soinside.com 2019 - 2024. All rights reserved.