SourceForge:将GIT存储库镜像到SVN

SourceForge:将GIT存储库镜像到SVN,svn,git,sourceforge,Svn,Git,Sourceforge,我有一个使用GIT开发的项目。我需要为不喜欢GIT的用户创建一个只支持SVN镜像的存储库。我在谷歌上搜索了一些说明,但都失败了。其中一部分是为Linux编写的——我有Windows。其中一部分建议创建空存储库,然后将其与GIT主存储库同步——这并不是我真正想要的。其中一部分simple无法在不同的阶段使用神秘的消息。所以我决定在这里问。我钻研了git svn命令描述,不顾一切地试图让这件事自己完成。我也失败了。Github svn导出太不稳定,无法依赖它。现在我请你帮忙 所以,这里是任务 我有本

我有一个使用GIT开发的项目。我需要为不喜欢GIT的用户创建一个只支持SVN镜像的存储库。我在谷歌上搜索了一些说明,但都失败了。其中一部分是为Linux编写的——我有Windows。其中一部分建议创建空存储库,然后将其与GIT主存储库同步——这并不是我真正想要的。其中一部分simple无法在不同的阶段使用神秘的消息。所以我决定在这里问。我钻研了git svn命令描述,不顾一切地试图让这件事自己完成。我也失败了。Github svn导出太不稳定,无法依赖它。现在我请你帮忙

所以,这里是任务

  • 我有本地GIT存储库和许多链接的远程设备(我自己的存储库、sf.net、github等)
  • 我想从我的本地存储库中创建一个支持SVN的GIT存储库,以反映我的开发

  • SVN存储库将是一个只读镜像。如果SVN能保留变化的历史,那就太好了,但如果这不可能的话,我就不麻烦了
  • 只有一个分支应镜像到SVN。它可以是master branch,也可以是任何其他专门用于镜像的分支—不必麻烦
  • SVN将驻留在SourceForge上

  • 有没有可能让这个东西真正起作用呢?

    git svn init
    git svn clone
    旨在连接到现有的svn repo,因此我建议如下

  • 设置一个空的SVN回购
  • 使用
    svn git clone
  • 将您当地的git回购协议纳入新的
  • 对要与svn回购共享的分支机构执行git svn DCOMIT

  • 另一种完全不同的方法是在相同的工作文件上使用git和SVN。您只需确保分别忽略.git和.svn目录。然后将git命令用于git,将SVN命令用于SVN

    当然,使用这种方法,您必须手动同步您希望在两个回购中进行的每个提交,但是如果您不想在两个回购中都进行所有提交,这可能就足够了。

    我认为这是一种方法

    问题是SubGit将自己的钩子安装到Subversion和Git存储库中。所以,我怀疑是否有可能为托管提供商(如sourceforge或google code)设置此功能

    如果您创建自己的Subversion存储库,那么使用SubGit设置读写镜像也没什么大不了的:

  • 创建Subversion存储库:

    $ svnadmin create $SVN_REPO
    
    $ git clone --mirror $GIT_REMOTE_REPO $GIT_REPO
    
    subgit install $SVN_REPO
    
  • 克隆Git存储库:

    $ svnadmin create $SVN_REPO
    
    $ git clone --mirror $GIT_REMOTE_REPO $GIT_REPO
    
    subgit install $SVN_REPO
    
  • 配置子Git:

    $ subgit configure $SVN_REPO
    
  • 调整子Git配置文件:

    # Specify 'git.default.repository = $GIT_REPO'
    #     at $SVN_REPO/conf/subgit.conf
    
  • 添加作者映射:

    # Add all the authors as
    # svnauthor = Git Author <git.author@company.com>
    #     into $SVN_REPO/conf/authors.txt
    
  • 安装完成后,您可以将$GIT_REPO克隆为另一个远程服务器,并推送到该存储库,以将所有提交转换为Subversion存储库

    您可以将更改提交到Subversion存储库中,SubGit会自动将其转换为Git提交,所以您可以将其取回


    SubGit是一个商业项目,但对于开源项目是免费的。更多详情,请参考和比较。

    如果人们为了上帝的爱,会对双方都做出承诺,请不要这样做。我试着为web2project协调了八个月。一个糟糕的重新基址让我们筋疲力尽,git svn想要重新同步8个多月(500多次提交)。我最终放弃了,只是手动将回购协议中的内容合并。。。SVN存储库将是一个只读镜像。对git SVN来说,双方的承诺都是一个巨大的问题,因为git SVN在设计上不支持对存储库的并发访问。请参阅我对SubGit的评论:从第一天起,这个工具就被开发为一个双向Git SVN桥。当Subversion和Git存储库都保持可写状态时,它可以很好地处理。SourceForge有一个实现Git到svn桥的相关协议,但它没有足够的投票权来满足实现的条件。