由于断言错误"svn_fspath__is_canonical(child_fspath)"(cygwin),git svn dcommit失败

gof*_*ian 17 svn git cygwin git-svn

我希望有人可以帮助我.

当我尝试将我的本地git分支推送到svn服务器时,这将始终导致此错误:

$ git svn dcommit
Committing to http://.../Dev_Stream/01_workspace ...
    C      path/to/file/AbstractSystemThread.java => other/path/to/file/Thread/AbstractThread.java
assertion "svn_fspath__is_canonical(child_fspath)" failed: file "/usr/src/subversion/subversion-1.8.0-1/src/subversion-1.8.0/subversion/libsvn_subr/dirent_uri.c", line 2502, function: svn_fspath__skip_ancestor
Run Code Online (Sandbox Code Playgroud)

前提条件:

  • 清理本地git存储库(没有暂存或未暂存的更改)
  • 之前称为git svn rebase

Cygwin安装包含以下软件包:

  • git,git-svn 1.7.9-1
  • subversion,subversion-perl 1.8.0-1

当在互联网上搜索这个问题时,我发现了一些像这样的错误,其中路径无法规范化.但我没有找到解决这个问题的方法.

有谁知道如何解决它?有没有信息丢失?

rse*_*nna 13

如果你不能降级到SVN 1.7.X,另一种选择是以这种方式进行Git-SVN提交:

git svn dcommit -C1 -l1
Run Code Online (Sandbox Code Playgroud)

这基本上关闭了Git重命名检测(因此它是一种解决方法,而不是修复).您将丢失重命名跟踪信息(重命名将被提交为删除,后跟新文件,如SVN 1.4).但提交将起作用.

编辑尽管有一些评论,我相信这将适用于Cygwin存储库(1.7.9.1)上的当前Git版本.如果有一天发生变化,我会相应地更新我的答案.

事实上,我们希望情况有所改善,以我们一点也不会需要任何修订或变通方法,和Git,SVN只是工作(因为它使用).:-)

  • 这对我很有用.它可能不是最好的选择,但它有效! (2认同)

小智 7

我也有这个问题(git版本1.8.3)并通过将subversion降级到1.7.9(从1.8.0)解决了它.