使用Subversion存储库的Git镜像设置Gerrit

Bin*_*mas 7 svn git gerrit

在工作中,我们目前使用Subversion for SCM.我已经设置了一个本地git-svn镜像,并将其用作我的主要开发工作区.我现在对基本功能感到满意.团队中的另一个开发人员也想迁移到Git,因此我们正在考虑使用svn存储库的git镜像.我还想和Gerrit一起尝试这个练习.

我想象的设置是这样的:

  1. svn存储库的git镜像.这上的主分支与svn上的主干同步.

  2. 对于每个要素,都会创建主题分支.这与审查发生的Gerrit有关.一旦变更集获得批准,Gerrit就会合并主题分支返回主变量.

  3. gitweb或类似的Web应用程序,用于在浏览器上查看存储库.

  4. 除了trunk之外,其他分支在subversion上的类似过程.

基本上,我想要的是我只与我的本地git clone和Gerrit webapp交互; 将审查的更改推回到svn应该会自动发生.我如何设置这样的东西?

Bra*_*rad 6

不幸的是,不可能自动完成这一切(至少,没有大量的工作).以下是一些可以让您亲近的步骤:

  1. 在Gerrit服务器上设置你的git clone
  2. 创建一个svn钩子或一个周期性任务,它将从svn中获取并推送到你的git clone
  3. Gerrit有一个内置版本的gitweb,所以你可以在那里看到它
  4. 在Gerrit服务器上,创建一个更改合并钩子,它将推回到svn

就像上面提到的Greg一样,当第4步失败时,事情就会变得棘手.您必须重置Gerrit中的git存储库以匹配svn并重新提交您的更改.如果/当你说服你的团队的其他人放弃svn并使用git/Gerrit时,这会更容易:-)

祝好运!


Dmi*_*nko 2

可以设置与存储库 SVN 同步的 Git 镜像

将SubGit安装到您的 SVN 存储库中:

$ subgit install path/to/svn/repository
Run Code Online (Sandbox Code Playgroud)

然后只需设置对使用 Apache 或其他方式创建的链接 Git 存储库(path/to/svn/repository/.git)的访问即可。对该 Git 存储库的每次推送都将转换为 SVN 修订版,反之亦然。

因此,您可以在 Gerrit 和您的团队中使用链接的 Git 存储库(就好像 SVN 从未存在过一样)。之后您可以关闭 SVN 存储库(或继续使用)。要在关闭运行之前停止同步:

$ subgit uninstall path/to/svn/repository
Run Code Online (Sandbox Code Playgroud)