svn 无法在文件中设置位置指针
Posted
技术标签:
【中文标题】svn 无法在文件中设置位置指针【英文标题】:svn Can't set position pointer in file 【发布时间】:2013-01-25 12:03:55 【问题描述】:我遇到了一个 svn 存储库的问题,该存储库到目前为止一直运行良好。
我收到了错误
svnadmin: Can't set position pointer in file 'repository/db/revs/0/783': Invalid argument
例如当我跑步时
svnadmin verify
其他一般症状包括无法签出、更新、提交等。
非常感谢任何帮助
谢谢! 彼得
【问题讨论】:
【参考方案1】:好的...我刚刚遇到了这个问题并且能够解决它。我正在使用 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
。我离开了尾随的新行。
这就像一个魅力。我不能说它适用于其他任何人,但我不明白为什么它不会。看起来它确实有效地删除了错误的修订。
【讨论】:
非常感谢。您的解决方案在我的 windows svn 服务器上成功运行。【参考方案2】:当同样的问题发生时,我们能够追踪到一个文件夹,其中的文件移动不正确。
其他文件夹允许提交和更新,只有在包含该文件夹时,我们才会收到无法设置指针的消息。
解决方案是:
-
从 SVN 中删除有问题的文件夹(忽略、递归)
再次添加文件夹。
提交文件夹。
这似乎解决了所有问题。
经过更多的试验和错误,我想问题可能会被追踪到负责的文件,但在这种情况下,我们在文件夹级别停止了。
【讨论】:
【参考方案3】:我能找到的唯一解决方案是按如下方式复制我的存储库
svnadmin create newrepo
svnadmin dump -r 0:783 repository | svnadmin load newrepo
mv repository repository_corrupted
mv newrepo repository
在此之后,通常需要在用户签出的目录中进行 svn 清理
【讨论】:
【参考方案4】:无法在文件中设置位置指针的最简单方法:
我是这样做的:
-
转到项目的父目录(文件夹)。
按右键单击
按 TortoiseSVN 然后按 清理...
清理对话框会自动出现
选择
Clean up working copy status
、Break locks
、Fix time stamps
、Vacuum pristine copies
、Refresh shell overlays
、Include externals
按确定
查看屏幕截图以供参考。
第一步:
第二步:
希望这会对你有所帮助。
【讨论】:
【参考方案5】:对某些文件有同样的问题。当我深入到有问题的文件夹时,修订文件 repository/db/revs/89 是一个零文件。我猜这个问题可能是由于某些硬件故障或电源中断(存储库位于 USB 驱动器上)。我修复的方法是将 88 复制到 89,然后我能够再次提交更改。
【讨论】:
以上是关于svn 无法在文件中设置位置指针的主要内容,如果未能解决你的问题,请参考以下文章