SVN 存储库不断损坏

SVN repository keeps getting corrupted

我一周前才开始遇到这种情况,我尝试了很多方法,但它一直在发生。它以失败的提交错误消息开头:

Can't set position pointer in file '(revision path)': An attempt was made to move the file pointer before the beginning of the file.

第一次得到它时,我发现一些资源表明最新版本中存在某种损坏。我研究了如何删除修订版,然后按照 this process 创建了一个新的存储库并将未损坏的修订版转储到其中。那是成功的,但必须一遍又一遍地重复一个相当繁重的过程。

第二次发生时,我找到了this resource,它解释了如何直接在repo 文件夹结构中删除损坏的修订版,并将当前修订版设置回之前的修订版。这比上述方法有效并且更快,但我仍然不想重复。

然后今天又发生了。

每次我都使用 svnadmin verify 并得到这个(显然每次都有不同的修订号):

svnadmin 验证(回购路径) * 验证版本 0 的元数据 ... * 验证存储库元数据时出错。 svnadmin:E160058:l2p 索引条目 PHYS -1 与 PHYS 1407

的 p2l 索引值日志 r391:i10 不匹配

我用谷歌搜索了那个错误,但实际上什么都不存在,那个错误代码或那个神秘消息中的其他垃圾没有任何结果。

请帮我想办法阻止这种情况发生。

编辑: 在成功提交大约 8 次修改后,这次我遇到了一个新错误:

Item index 69 too large in revision 398

svnadmin 验证报告:

Unexpected end of index file (repo path)/db/revs/0/396 at offset 0x43c8.

这是该偏移量处的内容。似乎还没有结束:

Research 也表示腐败。到底发生了什么事?

  1. 没有 "TortoiseSVN repository" 这样的东西。您有一个 Subversion 存储库,很可能是您不正确地访问它导致损坏。
  2. 您很可能将存储库存储在网络共享上并通过 file:// 协议访问它。如果是您的情况,请阅读 https://tortoisesvn.net/faq.html#reponoserver.