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

Nat*_*ons 16 svn git version-control git-svn

是否有一个程序可以执行git-svn的功能,但是在服务器上的存储库是git,开发人员使用svn的情况下?

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

编辑:我认为我正在寻找的是与'git-cvsserver'平行 - git-svnserver.在一些搜索中,我在git邮件列表上找到了一些2-3岁的线程,但看起来并没有任何人取得重大进展.我希望有人可以纠正我.

目前有没有git-svnserver项目正在进行中?我讨厌重复努力,但似乎GitHub是最远的,但没有其他人可以拥有它.

vad*_*hev 10

看看SubGit.

SubGit是服务器端解决方案,它允许Subversion访问Git存储库,反之亦然.您可以参考文档了解更多详细信息,但一般来说使用SubGit相当容易:

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

    $ svnadmin create $SVN_REPOS
Run Code Online (Sandbox Code Playgroud)

然后运行

    $ subgit configure $SVN_REPOS
Run Code Online (Sandbox Code Playgroud)

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

    [git "default"]
    repository = /path/to/your/git/repository.git
Run Code Online (Sandbox Code Playgroud)

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

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

    trunk = trunk:refs/heads/master
    branches = branches/*:refs/heads/*
    shelves = shelves/*:refs/shelves/*
    tags = tags/*:refs/tags/*
Run Code Online (Sandbox Code Playgroud)

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

之后运行:

    $ subgit install $SVN_REPOS
    $ ... let initial translation complete ... 
    $ TRANSLATION SUCCESSFUL
Run Code Online (Sandbox Code Playgroud)

这时你有Subversion版本库及其对应的Git被连续同步,即SubGit立即转化SVN版本到git的承诺每个svn commit和git提交到SVN版本上的每个git push.

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


Von*_*onC 0

我相信该git-svn链接是由 git 驱动的(用于监视——rebase 或 dcommit——一个 SVN 分支)。
这意味着您可以首先在本地服务器(您也使用 SVN)上克隆所需的任何 git 存储库,然后将其用于git-svn本地 Git 存储库和 SVN 工作区之间的“ ”命令。

一旦本地 Git 存储库充分反映了 SVN 存储库,您就可以推送回远程 Git 服务器。