在hgsubversion pull中修复svn UTF-8数据问题

时间:2011-05-18 22:23:55

标签: svn mercurial utf-8 pull hgsubversion

我在将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)

我发现了how to detect it for svn(修复了文件名,但没有内容);如何将此检测应用于hgsubversion,以便我可以继续拉?

1 个答案:

答案 0 :(得分:0)

以下不起作用 - 请参阅步骤4(如果这是有帮助的,则可以节省您的时间:))。希望真正的答案是对此的一些变化......

  1. 查看修订版的svn日志,看看哪些文件受到影响(希望少量)
  2. 对于每个文件使用isutf8 .hg/store/data/trunk/{svn path}(来自moreutils包)(其中[my]分支也出现在主干中,因为hg分支内容我不明白......)。 如果事情“正确错误”,那么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再次失败我写了我的乐观答案。