首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >RW使用svn ( git -svnserver)访问git存储库?

RW使用svn ( git -svnserver)访问git存储库?
EN

Stack Overflow用户
提问于 2010-09-08 03:45:41
回答 4查看 4.1K关注 0票数 16

有没有一个程序可以做git-svn所做的事情,但是在服务器上的存储库是git,而开发人员使用svn的情况下?

我知道github.com允许svn访问他们托管的git存储库,但看起来他们并没有发布这个项目的开源(还没有?),使用他们的服务器对我来说也不是一个选择(甚至不是他们的私有存储库)。

编辑:我想我要找的是和'git-cvsserver‘类似的-- git-svnserver。在一些搜索中,我在git邮件列表上找到了一些2-3年前的帖子,但看起来没有人取得重大进展。我希望有人能纠正我这一点。

目前是否有任何git-svnserver项目正在进行中?我讨厌有重复的工作,但似乎GitHub is the farthest along,但没有其他人可以拥有它。

EN

回答 4

Stack Overflow用户

发布于 2012-01-11 05:12:25

看看SubGit吧。

SubGit是服务器端解决方案,它支持Subversion访问Git存储库,反之亦然。您可以参考documenation了解更多细节,但一般来说,使用SubGit相当容易

SubGit需要本地访问您要推送的Git存储库。在同一台机器上创建Subversion仓库:

代码语言:javascript
复制
    $ svnadmin create $SVN_REPOS

然后运行

代码语言:javascript
复制
    $ subgit configure $SVN_REPOS

此命令创建$SVN_REPOS/conf/subgit.conf文件,调整其git.default.repository选项,如下所示:

代码语言:javascript
复制
    [git "default"]
    repository = /path/to/your/git/repository.git

您可以指定多个同步到单个Subversion存储库的Git存储库,只需添加必要的[git "identifier"]部分即可。

您还可以指定任意的存储库布局,例如标准布局如下所示:

代码语言:javascript
复制
    trunk = trunk:refs/heads/master
    branches = branches/*:refs/heads/*
    shelves = shelves/*:refs/shelves/*
    tags = tags/*:refs/tags/*

您还可以调整$SVN_REPOS/conf/authors.txt以将svn作者姓名映射到git身份。

在该运行之后:

代码语言:javascript
复制
    $ subgit install $SVN_REPOS
    $ ... let initial translation complete ... 
    $ TRANSLATION SUCCESSFUL

此时,你有了Subversion存储库和它的Git副本,它们是持续同步的,也就是说,SubGit在每个svn commit上立即将svn版本转换为git提交,在每个git push上将git提交转换为svn版本。

因此,您可以将更改提交到创建的Subversion存储库,并使所有更改与主Git存储库保持同步。

票数 10
EN

Stack Overflow用户

发布于 2010-10-28 19:08:18

这是通过svn协议为git存储库提供服务的Python代码:

http://git.q42.co.uk/git_svn_server.git

票数 4
EN

Stack Overflow用户

发布于 2015-02-02 02:08:34

SVNGit正是您想要的。它是一个用于SVN客户端访问Git存储库的开源servlet库。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3662114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档