0

嗨,我无法使用“git svn”工具将我的存储库从 SVN 转移到 Git。

我面临以下错误

$ git svn fetch
Index mismatch: a93a7f4289f88b70ba85c8f6210e3c64b97447d5 != 20979407f93a6908d2dadee058774021b68f80af
rereading 44999ef977dddeed551f4822d25763b1c38a7307
        M       parser/service/src/main/java/service/Add.java
        M       parser/service/src/main/java/service/DependencyUtil.java
        M       parser/service/src/main/java/service/Log.java
        M       parser/service/src/main/java/service/ParseTableFilter.java
svn: In file 'subversion/libsvn_delta/text_delta.c' line 657: assertion failed (window->sview_len == 0 || (window->sview_offset >= ab->sbuf_offset && (window->sview_offset + window->sview_len >= ab->sbuf_offset + ab->sbuf_len)))
error: git-svn died of signal 6

我该如何解决这个问题?任何帮助表示赞赏!

4

1 回答 1

2

您可以尝试使用 SubGit将 SVN 存储库导入 Git。此外,此工具允许在同一个存储库中同时使用 Subversion 和 Git。

以下是如何设置 SubGit 的基本说明:

$ subgit configure SVN_REPOS
# Adjust SVN_REPOS/conf/subgit.conf to specify your branches and tags
# Adjust SVN_REPOS/conf/authors.txt to specify git & svn authors mapping
$ subgit install SVN_REPOS
...
# INSTALLATION SUCCESSFUL

安装后,您可以在 SVN_REPOS/.git 找到导入的 Git 存储库;从这一刻起,SubGit 会自动在每个svn commitgit push. 如果您不需要 SubGit 的镜像功能,只需运行以下命令:

$ subgit uninstall --purge SVN_REPOS

此命令删除所有与 SubGit 相关的文件,因此您导入了不再与 SVN 同步的 Git 存储库。

在SubGit 文档git-svn比较页面中查找更多详细信息。

SubGit 是一款商业产品,但一次性转换是免费的。如果您对 SubGit 的镜像模式感兴趣,它对开源、学术和小型项目(最多 10 个提交者)是免费的。

免责声明:我是 SubGit 开发人员之一。

于 2012-10-15T12:32:07.860 回答