在工作中,我们目前对scm使用subversion。我已经设置了一个本地git svn镜像,并将其用作我的主要开发工作区。我现在对基本功能很满意了。团队中的另一个开发人员也希望迁移到git,因此我们正在考虑使用svn存储库的git镜像。我也想在这个练习的同时尝试格瑞特。
我想象中的场景是这样的:
svn存储库的git镜像。这上面的主分支与svn上的主干同步。
为每个特征创建一个主题分支。这与gerrit有关,在gerrit上会发生评论。变更集获得批准后,gerrit将合并主题分支back master。
在浏览器上查看存储库的GitWeb或类似的Web应用程序。
除了trunk之外的subversion上的其他分支的类似过程。
本质上,我想要的是只与本地git克隆和gerrit webapp交互;将已审阅的更改推回到svn应该会自动发生。我该怎么着手做这样的事情呢?
最佳答案
可以设置与存储库svn同步的git镜像
将SubGit安装到SVN存储库中:
$ subgit install path/to/svn/repository
然后只需设置对使用apache或其他工具创建的链接git存储库(path/to/svn/repository/.git)的访问权限。对git存储库的每次推送都将转换为svn版本,反之亦然。
因此,您可以使用Grit中的链接Git存储库和您的团队(好像Svn永远不存在)。之后,您可以关闭svn存储库(或继续使用)。要在关闭运行之前停止同步,请执行以下操作:
$ subgit uninstall path/to/svn/repository