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 statusBreak locksFix time stampsVacuum pristine copiesRefresh shell overlaysInclude externals确定

查看屏幕截图以供参考。

第一步:

第二步:

希望这会对你有所帮助。

【讨论】:

【参考方案5】:

对某些文件有同样的问题。当我深入到有问题的文件夹时,修订文件 repository/db/revs/89 是一个零文件。我猜这个问题可能是由于某些硬件故障或电源中断(存储库位于 USB 驱动器上)。我修复的方法是将 88 复制到 89,然后我能够再次提交更改。

【讨论】:

以上是关于svn 无法在文件中设置位置指针的主要内容,如果未能解决你的问题,请参考以下文章

无法在 Xcode 5 中设置 SVN

怎样在hbuilder中设置图片路径

在 Swift 中设置 Realm 的位置

如何在 xCode 9.0 中设置 SVN 存储库

如何在 application.properties 中设置文件夹位置?

如何在lua中设置文件写入函数调用的长度?