有没有一个程序可以做git-svn所做的事情,但是在服务器上的存储库是git,而开发人员使用svn的情况下?
我知道github.com允许svn访问他们托管的git存储库,但看起来他们并没有发布这个项目的开源(还没有?),使用他们的服务器对我来说也不是一个选择(甚至不是他们的私有存储库)。
编辑:我想我要找的是和'git-cvsserver‘类似的-- git-svnserver。在一些搜索中,我在git邮件列表上找到了一些2-3年前的帖子,但看起来没有人取得重大进展。我希望有人能纠正我这一点。
目前是否有任何git-svnserver项目正在进行中?我讨厌有重复的工作,但似乎GitHub is the farthest along,但没有其他人可以拥有它。
发布于 2012-01-11 05:12:25
看看SubGit吧。
SubGit是服务器端解决方案,它支持Subversion访问Git存储库,反之亦然。您可以参考documenation了解更多细节,但一般来说,使用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
您可以指定多个同步到单个Subversion存储库的Git存储库,只需添加必要的[git "identifier"]
部分即可。
您还可以指定任意的存储库布局,例如标准布局如下所示:
trunk = trunk:refs/heads/master
branches = branches/*:refs/heads/*
shelves = shelves/*:refs/shelves/*
tags = tags/*:refs/tags/*
您还可以调整$SVN_REPOS/conf/authors.txt
以将svn作者姓名映射到git身份。
在该运行之后:
$ subgit install $SVN_REPOS
$ ... let initial translation complete ...
$ TRANSLATION SUCCESSFUL
此时,你有了Subversion存储库和它的Git副本,它们是持续同步的,也就是说,SubGit在每个svn commit
上立即将svn版本转换为git提交,在每个git push
上将git提交转换为svn版本。
因此,您可以将更改提交到创建的Subversion存储库,并使所有更改与主Git存储库保持同步。
发布于 2010-10-28 19:08:18
这是通过svn协议为git存储库提供服务的Python代码:
发布于 2015-02-02 02:08:34
SVNGit正是您想要的。它是一个用于SVN客户端访问Git存储库的开源servlet库。
https://stackoverflow.com/questions/3662114
复制相似问题