我有一个使用GIT开发的项目。我需要为不喜欢GIT的用户创建一个仅限SVN镜像的存储库。我搜索了一些有关它的说明,但所有这些都失败了。他们的一部分是为Linux编写的 - 我有Windows。他们中的一部分建议创建空的存储库,然后将其与主GIT存储库同步 - 这不是我想要的。它们中的一部分简单无法在具有神秘信息的不同阶段失败。所以我决定在这里问一下。我深入研究了git-svn命令描述,试图让这个东西自己起作用。我也失败了。 Github svn导出太不稳定而无法依赖它。现在我请你帮忙。
所以,这里的任务。
是否有可能让这件事真的有效?
答案 0 :(得分:1)
我认为SubGit是要走的路。
问题在于SubGit将自己的钩子安装到Subversion和Git存储库中。因此,我怀疑是否可以为托管服务提供商设置,例如sourceforge或Google代码。
如果您创建自己的Subversion存储库,使用SubGit设置甚至读写镜像并不是什么大事:
创建Subversion存储库:
$ svnadmin create $SVN_REPO
克隆Git存储库:
$ git clone --mirror $GIT_REMOTE_REPO $GIT_REPO
配置SubGit:
$ subgit configure $SVN_REPO
调整SubGit配置文件:
# 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
将SubGit安装到Subversion存储库中:
subgit install $SVN_REPO
安装完成后,您可以将$ GIT_REPO克隆为另一个远程并推送到此存储库以将所有提交转换为Subversion存储库。
可以将更改提交到Subversion存储库,SubGit会自动将它们转换为Git提交,因此您可以将其提取回来。
SubGit是一个商业项目,但它对于开源项目是免费的。有关详细信息,请参阅SubGit documenation和git-svn比较。
答案 1 :(得分:0)
git svn init
或git svn clone
旨在连接到现有的SVN回购,因此我建议如下。
svn git clone
git svn dcommit
醇>
另一种完全不同的方法是在相同的工作文件上使用git和SVN。您只需要确保分别忽略.git和.svn目录。然后对git使用git命令,对SVN使用SVN命令。
当然,使用这种方法,你必须在两个repos中同步手动同步每个提交,但是如果你不想在两个repos中都进行所有提交,那么这就足够了。