看一下SubGit。
SubGit是一种服务器端解决方案,它使得Subversion可以访问Git存储库,反之亦然。您可以参考文档了解更多细节,但总的来说,使用SubGit相当容易:
SubGit需要访问您正在推送到的Git存储库的本地访问权限。在同一台机器上创建Subversion存储库:
$ svnadmin create $SVN_REPOS
然后运行
$ subgit configure $SVN_REPOS
该命令将创建$SVN_REPOS/conf/subgit.conf
文件,并将其git.default.repository
选项调整如下:
[git "default"]
repository = /path/to/your/git/repository.git
您可以指定许多Git存储库同步到单个Subversion存储库,只需添加必要的[git“标识符”]
部分。
您还可以指定任意的存储库布局,例如标准布局如下:
trunk = trunk:refs/heads/master
branches = branches
您还可以调整$SVN_REPOS/conf/authors.txt
以将svn作者名称映射到git身份。
之后运行:
$ subgit install $SVN_REPOS
$ ... let initial translation complete ...
$ TRANSLATION SUCCESSFUL
目前您拥有Subversion仓库及其Git对应仓库,它们是持续同步的,即SubGit会立即将svn修订版本转换为每个svn commit
上的git提交,并在每个git push
上将git提交转换为svn修订版本。
因此,您可以向创建的Subversion仓库提交更改,并保持所有更改与主Git仓库同步。