【问题标题】:svn: E155016: The file 'xxxxx' has no checksumsvn: E155016: 文件 'xxxxx' 没有校验和
【发布时间】:2013-12-04 01:17:04
【问题描述】:

执行 'svn upgrade' 时出错。
我在 Mac OS Lion 中使用过 svn 1.6。几天前我更新到了 Mac OS Mountain Lion。
所以我必须升级svn。

我通常使用终端应用程序并在 CUI 中执行 svn 命令。

当我执行'svn update'时

$ svn 更新
svn: E155036:请参阅“svn 升级”命令 svn:E155036:工作 副本“xxxxx”太旧了 (格式 10,由 Subversion 1.6 创建)

当我执行'svn upgrade'时

$ svn 升级
...
升级版 'aaaa'
升级版 'bbbbb'
升级版 'ccccc'
升级版 'dddd'
svn: E155016: 此工作副本已损坏且无法升级。 请查看新的工作副本。 svn: E155016: 文件 'eeee' 没有校验和

顺便说一下,错误文件的文件名中有日文字符。 也许这是原因。

那么我应该如何解决这个问题呢?
谢谢。

【问题讨论】:

    标签: macos svn terminal


    【解决方案1】:

    您似乎已从 1.6 切换到 1.7 或 1.8。你没有提到你在哪里得到你正在使用的 svn 1.6 的副本,但你可能使用的是一个修复了 unicode 组合问题的补丁。具体来说,有一个经常使用的补丁,但由于它不是一个完整的解决方案,因此尚未将其应用于整个项目。我不确定日语是否会遇到这些问题,因为我对日语不太了解,但这似乎是合理的。

    我建议您使用新的 Subversion 客户端从工作副本创建新的结帐。我不确定是否有从这种情况中恢复的好方法。特别是我不确定补丁是否能够确保 svn upgrade 正确执行。

    另一方面,这可能与 OS X 上的 unicode 问题无关,而且您的工作副本可能只是以一种直到最近才出现的方式损坏。升级命令需要接触所有内容才能从旧的平面文件系统转换为 sqlite。所以它经常出现损坏的工作副本。当您可以进行新的结帐时,通常不值得尝试调试损坏。

    如果您想在工作副本中保留未提交的更改,我建议您将工作副本内容的相同修订版本与新版本签出。您应该能够使用旧的 1.6 svnversion 命令或通过手动检查 .svn/entries 文件来确定版本。完成此操作后,将旧工作副本的内容同步到新工作副本上,同时忽略 .svn 目录。然后运行 ​​svn 更新。如果您没有完全正确地获得工作副本签出的版本,则在运行更新时可能会遇到一些其他问题。但希望您没有太多未提交的更改需要清理。

    或者,您可以尝试安装 Subversion 的 1.6 副本,看看是否可以区分您的更改并确定正确的版本。但我不确定在中断升级期间工作副本数据库的状态是什么。这可能是最好的方法,因为我相信我们非常小心不要搞砸事情。

    【讨论】:

    • 谢谢。现在,我再次结帐并合并来源。并成功提交。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-10
    • 2011-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多