我遇到了一个 svn 存储库的问题,该存储库到目前为止一直运行良好。
我收到错误
svnadmin: Can't set position pointer in file 'repository/db/revs/0/783': Invalid argument
例如当我跑步时
svnadmin verify
其他一般症状包括无法签出、更新、提交等。
非常感谢任何帮助
谢谢!彼得
好的...我刚遇到这个问题并且能够解决它。我正在使用 FSFS。我的最后一个好版本是第 88 版。第 89 版被破坏了。
我复制了存储库并将其命名为repository-2018-10-18-broken
. 绝对要先做这个!!!
我删除了原始存储库中的以下文件:
/repository/db/revs/0/89
/repository/db/revprops/0/89
/repository/db/transactions/89*.*
/repository/db/current
并将其更改89
为88
. 我离开了尾随的新行。这就像一个魅力。我不能说它适用于其他任何人,但我不明白为什么它不会。看起来它确实有效地删除了错误的修订。
当发生同样的问题时,我们能够将其追踪到一个包含错误移动文件的文件夹。
其他文件夹允许提交和更新,只有在包含该文件夹时,我们才会收到无法设置指针的消息。
解决方案是:
这似乎可以解决任何问题。
通过更多的试验和错误,我想问题可以被追踪到负责的文件,但在这种情况下,我们在文件夹级别停止了。
我能找到的唯一解决方案是按如下方式复制我的存储库
svnadmin create newrepo
svnadmin dump -r 0:783 repository | svnadmin load newrepo
mv repository repository_corrupted
mv newrepo repository
在此之后,通常需要在用户签出的目录中进行 svn 清理
对某些文件有同样的问题。当我深入到有问题的文件夹时,修订文件 repository/db/revs/89 是一个零文件。我猜这个问题可能是由于某些硬件故障或电源中断(存储库位于 USB 驱动器上)。我修复的方法是将 88 复制到 89,然后我能够再次提交更改。