SourceForge:镜像GIT存储库到SVN

时间:2011-01-24 00:12:00

标签: svn git sourceforge

我有一个使用GIT开发的项目。我需要为不喜欢GIT的用户创建一个仅限SVN镜像的存储库。我搜索了一些有关它的说明,但所有这些都失败了。他们的一部分是为Linux编写的 - 我有Windows。他们中的一部分建议创建空的存储库,然后将其与主GIT存储库同步 - 这不是我想要的。它们中的一部分简单无法在具有神秘信息的不同阶段失败。所以我决定在这里问一下。我深入研究了git-svn命令描述,试图让这个东西自己起作用。我也失败了。 Github svn导出太不稳定而无法依赖它。现在我请你帮忙。

所以,这里的任务。

  1. 我有本地GIT存储库,包含许多链接的遥控器(我自己的存储库,sf.net,github等)。
  2. 我想从我的本地存储库中创建一个支持SVN的GIT存储库来反映我的开发。
  3. SVN存储库是一个只读镜像。如果SVN保留更改历史,但如果不可能,那就太好了 - 我没有打扰。
  4. 只应将一个分支镜像到SVN。它可能是主分支或任何其他致力于镜像 - 没有打扰以太。
  5. SVN将驻留在SourceForge上。
  6. 是否有可能让这件事真的有效?

2 个答案:

答案 0 :(得分:1)

我认为SubGit是要走的路。

问题在于SubGit将自己的钩子安装到Subversion和Git存储库中。因此,我怀疑是否可以为托管服务提供商设置,例如sourceforge或Google代码。

如果您创建自己的Subversion存储库,使用SubGit设置甚至读写镜像并不是什么大事:

  1. 创建Subversion存储库:

    $ svnadmin create $SVN_REPO
    
  2. 克隆Git存储库:

    $ git clone --mirror $GIT_REMOTE_REPO $GIT_REPO
    
  3. 配置SubGit:

    $ subgit configure $SVN_REPO
    
  4. 调整SubGit配置文件:

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

    # Add all the authors as
    # svnauthor = Git Author <git.author@company.com>
    #     into $SVN_REPO/conf/authors.txt
    
  6. 将SubGit安装到Subversion存储库中:

    subgit install $SVN_REPO
    
  7. 安装完成后,您可以将$ GIT_REPO克隆为另一个远程并推送到此存储库以将所有提交转换为Subversion存储库。

    可以将更改提交到Subversion存储库,SubGit会自动将它们转换为Git提交,因此您可以将其提取回来。

    SubGit是一个商业项目,但它对于开源项目是免费的。有关详细信息,请参阅SubGit documenationgit-svn比较。

答案 1 :(得分:0)

git svn initgit svn clone旨在连接到现有的SVN回购,因此我建议如下。

  1. 设置空的SVN回购
  2. 使用svn git clone
  3. 设置新的git仓库
  4. 将您当地的git repo拉入新的
  5. 使用SVN repo
  6. 执行要与之共享的分支git svn dcommit

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

    当然,使用这种方法,你必须在两个repos中同步手动同步每个提交,但是如果你不想在两个repos中都进行所有提交,那么这就足够了。