【发布时间】:2013-09-16 00:26:25
【问题描述】:
我正在将 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 编码时出现上述错误。
当转换为“UTF-8 without BOM”或“ANSI”时:
' into a number04: Could not convert ' 2
当转换为“UCS-2 Big Endian”或“UCS-2 Little Endian”时:
svnadmin: E140001: Malformed dumpfile header '?\254?\255'
我对字符编码一无所知,所以我不知道下一步该去哪里。或者可能是我的转储或回购有问题,但到目前为止我还没有遇到任何 SVN 问题。
【问题讨论】:
-
你是如何将转储从一台机器转移到另一台机器的?你不是偶然使用普通的FTP吗?我怀疑如果您以这种方式发送了一个未压缩的转储文件,并且如果您没有将传输模式切换到
binary,则该文件在飞行中损坏了。我会再次转储,或者,如果您有足够新的 svn 客户端,只需从客户端运行svnrdump。 -
当然,您绝不能尝试对转储文件进行任何编码转换:它应该是不透明的!唯一有意义的问题可能是 BOM 标记和/或 EOL 序列。以防万一,我刚刚在 Windows 上使用 Subversion 1.8.0 运行了一个
svnrdump,它生成了一个带有LF仅 EOL 的转储文件;该文件是 UTF-8,没有 BOM。 -
@kostix:我使用闪存驱动器复制了文件。如果我根本不编辑文件并尝试按原样使用,我会收到上面显示的第一个错误。最后,我开始使用命令提示符并切换到 PowerShell。这可能是我的问题,我今天会尝试并回复。
标签: linux windows svn character-encoding svnadmin