git svn dcommit 提交失败,原因:assertion "svn_fspath__is_canonical(child_fspath)" faile
git svn dcommit 提交失败,原因:assertion "svn_fspath__is_canonical(child_fspath)" failed
在使用 git svn 作为客户端对一个 svn 库进行提交的时候出现了错误:
git svn dcommit Committing to https://xx.xx.xx.xx/svn/xyz/trunk ... R CODING_STYLE.md => doc/CODING_STYLE.md assertion "svn_fspath__is_canonical(child_fspath)" failed: file "/usr/src/packages/subversion/subversion-1.8.5-1/src/subversion-1.8.5/subversion/libsvn_subr/dirent_uri.c", line 2504, function: svn_fspath__skip_ancestor error: git-svn died of signal 6
错误发生在 cygwin 下,git 版本 1.7.9,svn 版本 1.8.5。
stackoverflow 上说,原因是 git 的重命名检测机制与 svn 发生了冲突。有两个解决方案:
- 把 svn 降级到 1.7.9,一劳永逸。
- 使用
git svn dcommit -C1 -l1
来提交。这样会关闭 git 的重命名检测机制,这次提交会丢失重命名操作,取而代之的是一次 remove 和 一次 add 操作,就和 svn 1.4 一样。
- 文章ID:2030
- 原文作者:zrong
- 原文链接:https://blog.zengrong.net/post/git_svn_dcommit_fails_because_of_assertion_error_svn_fspath__is_canonical/
- 版权声明:本作品采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可,非商业转载请注明出处(原文作者,原文链接),商业转载请联系作者获得授权。