1

我在将 svn 更改拉入我的 mercurial repo 时遇到了一个错误:

abort: ('Valid UTF-8 data\n(hex: 75 6c 6c 20 74 61 73 6b 20 6c 69 73 74 20 74 68 65 20 63 6c 69 65 6e 74)\nfollowed by invalid UTF-8 sequence\n(hex: 92 73 20 4e)', 22)

我已经找到了如何为 svn 检测它(修复了文件名,但没有修复内容);如何将此检测应用于 hgsubversion 以便我可以继续拉?

4

1 回答 1

0

以下方法不起作用 - 请参阅第 4 步(如果这有助于节省您的时间,请点赞 :))。希望真正的答案是对此有所不同...

  1. 查看修订版的 svn 日志,看看哪些文件受到影响(希望是少量)
  2. 对于每个文件使用isutf8 .hg/store/data/trunk/{svn path}(来自moreutils包)(由于 hg 分支我不明白的东西,[my] 分支也出现在主干中......)。如果事情发生“正确错误”,那么isutf8抱怨的偏移量应该非常接近invalid UTF-8 sequence消息。就我而言,isutf8在第 24 位抱怨,我的错误在 22 处(我认为这只是报告 unicode 解码的开始或结束......)
  3. 做一些类似的事情

    iconv -f iso-8859-1 -t utf8 {file name} > {temp file}
    mv {file name} ~ # For backup purposes
    mv {temp file} {file name}
    
  4. 在我写下我的乐观答案后,最终记录 svn 并开始拉动再次观看hg pull失败。

于 2011-05-18T23:03:35.470 回答