Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将存储库从Windows迁移到Linux时,转储文件头格式不正确(编码问题?)_Linux_Windows_Svn_Character Encoding_Svnadmin - Fatal编程技术网

将存储库从Windows迁移到Linux时,转储文件头格式不正确(编码问题?)

将存储库从Windows迁移到Linux时,转储文件头格式不正确(编码问题?),linux,windows,svn,character-encoding,svnadmin,Linux,Windows,Svn,Character Encoding,Svnadmin,我正在将SVN存储库从Windows机器(Windows 7)移动到Linux机器(Ubuntu 13)。我使用svnadmin dump在Windows上转储repo,并将文件复制到Linux机器上。现在我在跑步 svnadmin load dest-folder < dumpfile 我怀疑我的字符编码(Windows与Unix)有问题,因为单引号从行的末尾(应该是的地方)一直到行的开头。但是我尝试过在Notepad++中转换字符编码,我只收到不同的错误 上面的错误在我用UTF-8编

我正在将SVN存储库从Windows机器(Windows 7)移动到Linux机器(Ubuntu 13)。我使用
svnadmin dump
在Windows上转储repo,并将文件复制到Linux机器上。现在我在跑步

svnadmin load dest-folder < dumpfile
我怀疑我的字符编码(Windows与Unix)有问题,因为单引号从行的末尾(应该是的地方)一直到行的开头。但是我尝试过在Notepad++中转换字符编码,我只收到不同的错误

上面的错误在我用UTF-8编码时出现

当转换为“无BOM的UTF-8”或“ANSI”时:

当转换为“UCS-2大端点”或“UCS-2小端点”时:


我对字符编码一无所知,所以我不知道下一步该去哪里。或者这可能是我的转储或回购的问题,但到目前为止,我与SVN没有任何问题。

这个答案来自用户kostix对我的问题的评论


问题是我正在使用PowerShell创建转储文件。当我在Windows中切换到使用香草命令提示符时,问题就解决了。如前所述,PowerShell通过管道或shell输出文件自动输出UCS-2文件,Linux不喜欢这种字符编码。

如果您收到错误svnadmin:E140001:格式错误的转储文件头“?\FF?\FES”

Windows SVN dump在Linux SVN上不起作用如果您使用PowerShell进行备份,我建议在Windows中使用vanilla命令提示符(默认),执行转储备份的速度将是PowerShell的10倍


svnadmin dump/repository\u name>backup\u svn.dump

您是如何将转储从一台机器转移到另一台机器的?你不是偶然使用普通FTP吗?我怀疑,如果您以这种方式发送未压缩的转储文件,并且没有将传输模式切换到
二进制
,则文件会在传输过程中损坏。我会再次转储,或者,如果您最近有足够多的svn客户端,只需从客户端运行
svnrdump
。当然,您绝对不能尝试对转储文件进行任何编码转换:它应该是不透明的!唯一有意义的问题可能是BOM标记和/或EOL序列。以防万一,我刚刚在Windows上使用Subversion 1.8.0运行了一个
svnrdump
,它生成了一个只有
LF
EOL的转储文件;文件是UTF-8,没有BOM。哦,顺便问一下,在生成和保存转储文件时,您不是在使用PowerShell吗?好吧,它的作者都是白痴,他们让它将UCS-2输出到管道或shell重定向文件中——例如,请参阅,一般来说。@kostix:我使用闪存驱动器复制了该文件。如果我根本不编辑该文件并尝试按原样使用,则会出现上面显示的第一个错误。最后,我开始使用命令提示符并切换到PowerShell。这可能是我的问题,我今天将尝试并发回。这不是“Linux不喜欢编码”——而是Subversion希望其转储文件以UTF-8编码,无论它是在哪个平台。有没有简单的方法将文件转换为UTF-8?我使用了Notepad++。它允许您在保存之前动态切换编码。我已经使用visualsvn powershell工具对我需要的存储库进行了迭代,并在它们上运行了包括dump在内的工作流。将命令和输出包装在.bat文件中似乎会有所帮助。有趣的是,这帮助我解决了相反的情况:在linux上转储,在Windows上加载(VisualSVN)。起初,我尝试了PowerShell获取内容(而不是“cat”),但出现了一个错误。但是旧的cmd.exe和类型命令通过管道传输到svnadmin load中起作用。
'vnadmin: E140001: Malformed dumpfile header 'SVN-fs-dump-format-version: 2
' into a number04: Could not convert ' 2
svnadmin: E140001: Malformed dumpfile header '?\254?\255'