我正在将SVN存储库从Windows机器(Windows 7)移动到Linux机器(Ubuntu 13)。我用svnadmin dump
在Windows上转储repo并将文件复制到Linux机器上。现在我正在运行
svnadmin load dest-folder < dumpfile
终端以
回应'vnadmin: E140001: Malformed dumpfile header 'SVN-fs-dump-format-version: 2
我怀疑我的字符编码(Windows与Unix)存在问题,这是基于单引号从行的末尾开始到最开始的事实。但我尝试在Notepad ++中转换字符编码,我只收到不同的错误。
当我以UTF-8编码时,会出现上述错误。
转换为“无BOM的UTF-8”或“ANSI”时:
' into a number04: Could not convert ' 2
转换为“UCS-2 Big Endian”或“UCS-2 Little Endian”时:
svnadmin: E140001: Malformed dumpfile header '?\254?\255'
我对字符编码一无所知,所以我不知道接下来要去哪里。或者也许这是我的转储或回购的问题,但我到目前为止还没有任何SVN问题。
答案 0 :(得分:13)
这个答案来自用户kostix对我的问题的评论。
问题是我使用PowerShell创建转储文件。当我在Windows中切换到使用vanilla命令提示符时,问题就解决了。正如所指出的,PowerShell通过管道或shell输出文件自动输出UCS-2文件,Linux不喜欢这种字符编码。
答案 1 :(得分:0)
如果你收到错误svnadmin:E140001:格式错误的dumpfile标题'?\ FF?\ FES'
如果使用PowerShell进行备份,Windows SVN转储在Linux SVN上不起作用,我建议在Windows中使用vanilla命令提示符(默认),它比PowerShell快10倍,以便进行转储备份。
svnadmin dump / repository_name&gt; backup_svn.dump