在工作中,我们目前使用Subversion for SCM。我已经设置了一个本地git-svn镜像,并将其用作我的主要开发工作区。我现在对基本功能感到满意。团队中的另一个开发人员也想迁移到Git,因此我们正在考虑使用svn存储库的git镜像。我也想和Gerrit一起尝试这个练习。
我想象的设置是这样的:
svn存储库的git镜像。此分支上的主分支与svn上的主干同步。
为每个要素创建主题分支。这与审查发生的Gerrit有关。一旦变更集获得批准,Gerrit就会将主题分支合并为主。
gitweb或类似的Web应用程序,用于在浏览器上查看存储库。
除了trunk之外,其他分支在subversion上的类似过程。
基本上,我想要的是我只与我的本地git clone和Gerrit webapp交互;将审查的更改推回到svn应该会自动发生。我如何设置这样的东西?
答案 0 :(得分:6)
不幸的是,不可能自动完成这一切(至少,没有大量的工作)。以下是一些可以让您接近的步骤:
就像上面提到的Greg一样,当第4步失败时,事情就会变得棘手。您必须重置Gerrit中的git存储库以匹配svn并重新提交您的更改。如果/当你说服你的团队的其他人放弃svn并使用git / Gerrit时,这会更容易: - )
祝你好运!
答案 1 :(得分:2)
可以设置与存储库SVN同步的Git镜像
将SubGit安装到您的SVN存储库中:
$ subgit install path/to/svn/repository
然后使用Apache或其他任何方式设置对创建的链接Git存储库(path / to / svn / repository / .git)的访问权限。对Git存储库的每次推送都将转换为SVN版本,反之亦然。
因此,您可以在Gerrit和团队中使用链接的Git存储库(就好像SVN从未存在过)。之后,您可以关闭SVN存储库(或继续使用)。在关闭运行之前停止同步:
$ subgit uninstall path/to/svn/repository