SVN E712392。SVN基本文件已损坏或无法读取

SVN E712392。SVN基本文件已损坏或无法读取,svn,tortoisesvn,Svn,Tortoisesvn,我试图在我的工作副本上运行svn更新。更新失败,产生以下错误 似乎.SVN/pristine中的SVN基文件已损坏。不幸的是,工作副本很大,因此签出新的工作副本是不可行的 谁能解释一下错误及其原因吗?如何继续?原始文件只是工作副本中文件的基本未修改副本。我已经过时几年了,但据我所知,它们仍然是纯存储的,未压缩的,所以这里的任何损坏都可能是磁盘的问题 在不完全结账的情况下修复此问题的最简单方法是 找到其他具有签出功能的人,并从其原始文件夹中获取此文件。如果您需要复制整个原始文件夹,即存在其他问题

我试图在我的工作副本上运行svn更新。更新失败,产生以下错误

似乎.SVN/pristine中的SVN基文件已损坏。不幸的是,工作副本很大,因此签出新的工作副本是不可行的


谁能解释一下错误及其原因吗?如何继续?

原始文件只是工作副本中文件的基本未修改副本。我已经过时几年了,但据我所知,它们仍然是纯存储的,未压缩的,所以这里的任何损坏都可能是磁盘的问题

在不完全结账的情况下修复此问题的最简单方法是

  • 找到其他具有签出功能的人,并从其原始文件夹中获取此文件。如果您需要复制整个原始文件夹,即存在其他问题,那么理想情况下,您应该在同一版本上签出

  • 计算出这是哪个文件,然后自己再签出同一个文件。您需要查询sqlite数据库,例如,从下载sqlite3,然后在.svn文件夹中运行

    sqlite3 wc.db
    select repos_path from NODES where checksum like '$sha1$b1807867%';
    
    其中十六进制数字来自错误消息的开头。这将为您提供已损坏文件的路径。然后可以使用
    svn export
    svn checkout--depth=empty;svn update
    按此处所述获取文件:然后将其放入原始文件夹。(如果使用checkout--depth=empty方法,将得到一个文件名正确的原始文件夹。)

    我不确定这里的确切SQL在SVN版本中的可移植性,但在我看来1.8和1.9都是正确的