首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >git svn dcommit失败,因为断言错误"svn_fspath__is_canonical(child_fspath)“(cygwin)

git svn dcommit失败,因为断言错误"svn_fspath__is_canonical(child_fspath)“(cygwin)
EN

Stack Overflow用户
提问于 2013-07-17 15:02:03
回答 9查看 4.8K关注 0票数 17

我希望任何人都能帮助我。

当我尝试将我的本地git分支推送到svn服务器时,总是会导致以下错误:

代码语言:javascript
复制
$ 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

前提条件:

  • 清除本地git存储库(在

之前没有暂存或未暂存的changes)

  • called git svn rebase

Cygwin安装包含以下软件包:

svn 1.7.9-1

  • subversion,subversion- 1.8.0-1

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

有谁知道怎么解决这个问题吗?有什么信息丢失了吗?

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2013-08-02 23:10:44

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

票数 7
EN

Stack Overflow用户

发布于 2013-12-21 09:07:15

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

代码语言:javascript
复制
git svn dcommit -C1 -l1

这基本上关闭了Git重命名检测(所以这是一种变通方法,而不是修复方法)。您将丢失重命名曲目信息(重命名将提交为delete,然后是一个新文件,如SVN 1.4)。但是提交将会起作用。

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

事实上,让我们希望情况有所改善,这样我们就不需要任何修复或变通了,Git-SVN就可以工作了(就像以前一样)。:-)

票数 13
EN

Stack Overflow用户

发布于 2014-02-10 18:43:54

从github安装git-svn修补版本的一种简单方法:

  1. 找到有错误的脚本:

find /usr -name Editor.pm

  • Replace it with patched version:

cd /usr/lib/perl5/vendor_perl/5.18.1/Git/SVN mv Editor.pm Editor.pm.bak wget https://raw.github.com/git/git/2394e94e831991348688831a384b088a424c7ace/perl/Git/SVN/Editor.pm

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17693255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档