2013-02-09 61 views
21

我有格里特两个问题:导入资源库,以格里特

  1. 如何转换或导入现有的Git仓库到格里特的格式?没有Gerrit控件的提交很多,我只是简单地将这些提交推送到Gerrit项目中。

    我看到两种方法可以做到这一点:

    1. 复制现有的裸的Git目录格里特然后将其添加到数据库中。这是一种安全的方法吗?

    2. 将所有提交从我的本地存储库推送到gerrit存储库。

  2. 如何恢复从格瑞特库到原来的Git的格式?是否需要删除Gerrit的特殊*/for/*分支才能做到这一点?

回答

21

首先:没有特殊的“Gerrit格式”。 Gerrit与常规的git存储库一起工作。

  1. 在Gerrit中创建一个新项目(没有初始提交)。将创建的存储库作为远程存储添加到现有存储库,然后轻松推送。您可以配置Gerrit以允许直接推入资源库(绕过审阅),允许您导入整个资源库。或者,如果您可以直接访问Gerrit的存储库位置(例如通过SSH或本地文件系统),则可以直接将其直接推入存储库(无论Gerrit创建它),完全绕过Gerrit。之后您需要刷新Gerrit缓存,然而,Gerrit会注意到仓库头部已更新。

  2. 如上所述,没有“Gerrit格式”。从gerrit克隆你的仓库,一切都很好。你不必担心任何特殊的分支。

+14

还有一点关于用户访问权限(推送时)。您必须拥有**创建引用**,**推送**,**推送合并提交**和**推注标签**权利才能成功推送所有旧提交。此外,所有提交用户必须在gerrit中注册或使用别名电子邮件。 – DEgITx 2013-02-09 20:46:39

+5

您可以避免注册提交“Forge Committer Identity”权限的所有提交作者。 – vquintans 2014-10-10 14:48:25

5
  1. 只需创建在格瑞特新的项目,然后按下git仓库那里。如果你想绕过审查,直接推到主,而不是refs/for/master。您需要添加权限才能完成此操作。

    我认为错误信息可能是由于您没有将您的ssh密钥导入到Gerrit中造成的。

  2. 只需从Gerrit克隆存储库即可。它不会包含任何额外的分支。

7

我引进了许多GIT项目,格瑞特,我发现最简单的方法是Git仓库的xy.git目录复制到该目录,其中格里特存款git的回购协议。 重新启动gerrit进程后,新项目位于新项目列表中,您可以编辑描述和访问权限。

+0

确实相当简单。创建符号链接也可以。重新启动gerrit实际上并不需要。 – 2014-02-26 10:54:05

+0

我已经在gerrit 2.9上试过这种方法。需要重新启动,否则新添加的项目将不会显示在项目列表中。 – Roland 2014-08-13 05:21:23

+0

如果项目没有显示,刷新缓存(如helmbert建议)应该足够了。 (它为我工作。) – 2016-03-09 17:27:40