【问题标题】:Fixing svn UTF-8 data issues in hgsubversion pull修复 hgsubversion pull 中的 svn UTF-8 数据问题
【发布时间】:2011-08-28 10:45:18
【问题描述】:

我在将 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,以便我可以继续拉取?

【问题讨论】:

  • 我认为convmv -f latin1 -t utf-8 * 是答案,但这只会转换文件名

标签: svn mercurial utf-8 pull hgsubversion


【解决方案1】:

以下方法不起作用 - 请参阅第 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. 看到hg pull 在最终登录 svn 并开始拉动之后再次失败我已经写了我的乐观答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-06
    • 1970-01-01
    • 2011-08-28
    • 1970-01-01
    • 2014-12-18
    • 2017-04-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多