Ubuntu环境SVN本地导出数据转Git报E235000错误如何解决
Ubuntu环境SVN本地数据转Git报错排查方案
报错信息(中文译版)
执行SVN本地仓库导出转Git操作时触发运行错误,完整报错内容:
svn: E235000: 程序文件'/build/subversion-owKwd0/subversion-1.13.0/subversion/libsvn_subr/dirent_uri.c'第1684行触发断言失败:"URI规范化校验失败" error: git-svn进程被信号6终止
故障根因
Ubuntu软件源自带的Subversion 1.13版本对file协议访问本地仓库的路径格式有严格的URI合规校验,传入的路径不符合URI规范、包含未转义特殊字符,或是本地SVN仓库元数据存在路径损坏时,就会触发底层断言,直接abort进程(对应信号6)导致git-svn中断。
修复步骤
- 传入本地SVN仓库地址时,必须使用标准file协议格式,不能直接写本地文件系统路径,也禁止使用相对路径拼接file协议地址,必须写完整绝对路径。例如本地仓库存放在
/data/svn/myproj,正确的地址写法为file:///data/svn/myproj,注意file协议头后需要跟3个斜杠。 - 检查仓库路径中是否包含空格、中文、
#、?、%这类特殊字符,这类字符必须做URI编码后才能传入:空格转%20、%转%25,中文转对应UTF-8编码的百分号格式。 - 路径格式调整后仍报错的,先执行
svn info file:///你的完整仓库路径校验路径是否能被SVN正常识别,如果该命令复现同样报错,说明仓库元数据损坏,执行svnadmin verify 本地仓库根目录扫描损坏的版本节点,修复完成后再执行git-svn操作。 - 以上方案都无效时,可以绕开file协议校验:启动临时本地svn服务,通过svn协议地址访问仓库:
- 执行命令
sudo svnserve -d -r 本地SVN仓库根目录 --listen-port=3690启动临时服务 - git-svn操作时使用地址
svn://127.0.0.1/项目相对路径即可正常拉取转换
- 执行命令
内容的提问来源于stack exchange,提问作者shwetali shinde
相关产品推荐
相关产品推荐

