将存储库从Windows迁移到Linux时出现格式错误的转储文件头(编码问题?)

时间:2013-09-16 00:26:26

标签: linux windows svn character-encoding svnadmin

我正在将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问题。

2 个答案:

答案 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