如何在 GIT w/o 中继中镜像 SVN

How to mirror SVN in GIT w/o a trunk

我们正在使用 Stash (3.8.0) 和 SVN Mirror for Atlassian Stash (2.0.15) 插件,均已获得许可50个以上的座位。然而,我们正在尝试将 SVN 镜像到 Stash 中的一个空存储库。以下内容使我们无法继续。

我们的 SVN link 是 svn://svn.hostname.com/。代码位于 / 中,而不是分支、主干或标记中。我们不使用任何这些。当 Stash 完成导入时,我们在 Stash 中没有错误。

状态页面显示以下内容,但存储库仍为空。

有人知道这是可能的错误还是配置错误?

这是 2.0.15 中的错误和配置错误。默认情况下,SVN 镜像插件假定您有标准的 trunk/branches/tags 结构,如果没有这样的目录,则不会翻译任何提交。但是如果你有不同的存储库结构,你也可以指定它,并且从版本 2.0.16(当它发布时;2.0.15 不支持)你可以指定项目根目录作为唯一的 "branch"项目。

所以步骤是:

  1. 安装版本 >= 2.0.16 的 SVN 镜像插件或使用此 link 到 2.0.16-beta3 版本(如果尚未发布):

http://old.subgit.com/download/stash/stash-svn-importer-2.0.16-beta3.jar

(选择Administration | Manage add-ons | Upload add-on | From this URL

  1. 创建存储库,选择"Subversion Mirror"。
  2. 填写 SVN URL,保留 Trunk/Branches/Tags/Shelves 选项,稍后您将覆盖它们。如果需要,请指定其他选项。按 "Continue".
  3. 选择高级配置 |应用更改

编辑配置以删除所有 trunk/branches/tags/shelves 选项并仅添加

trunk = :refs/heads/master

您可以在 SubGit book 和此文件中从 # 个字符开始的注释中找到有关选项的文档。

:refs/heads/master 规则意味着 : 字符之前的 SVN 路径(这是一个空字符串,对应于项目根目录)被映射到 Git 引用 refs/heads/master .

  1. 在 "Authors mapping" 选项卡中检查作者并按 "Continue"。

就是这样,现在 refs/heads/master Git 引用具有您在 Subversion 存储库中的项目根目录的历史记录。