svn cleanup:sqlite:数据库磁盘映像格式错误

Rub*_*zzo 89 svn sqlite tortoisesvn

我试图做一个svn cleanup因为我无法在我的工作副本中提交更改,我收到以下错误:

sqllite:数据库磁盘映像格式错误

清理无法处理以下路径

我现在能做什么?

Hen*_*ngJ 90

我有同样的问题.以下博客文章帮助我解决了这个问题:http: //www.polak.ro/svn-e200030-sqlite-database-disk-image-is-malformed.html

您对sqlite数据库执行完整性检查以跟踪存储库(/.svn/wc.db):

sqlite3 .svn/wc.db "pragma integrity_check"
Run Code Online (Sandbox Code Playgroud)

这应该报告一些错误.

然后您可以通过执行以下操作来清理它们:

sqlite3 .svn/wc.db "reindex nodes"
sqlite3 .svn/wc.db "reindex pristine"
Run Code Online (Sandbox Code Playgroud)

如果之后仍有错误,您仍然可以选择将存储库的新副本签出到临时文件夹,并将.svn文件夹从新副本复制到旧副本.然后旧副本应该再次工作,您可以删除临时文件夹.

  • 如果仍然出现错误,您会怎么做:数据库磁盘映像格式错误? (14认同)
  • 这实际上解决了我的问题.非常感谢你. (6认同)
  • 很奇怪,我得到`错误:无法识别要重新编制索引的对象 (5认同)
  • @jwill我在上面给出的解决方案后也遇到了错误...但是我尝试的只是检查你的存储库的新副本然后覆盖新的结帐副本的.svn文件夹到旧的..我解决了我这样的问题... (3认同)
  • 我使用的是_sqlite命令行shell_,可以从[sqlite网站](https://www.sqlite.org/download.html)下载。但是我想您也可以使用任何其他sqlite客户端。 (2认同)
  • 链接http://www.polak.ro/svn-e200030-sqlite-database-disk-image-is-malformed.html似乎永久断开。 (2认同)

mat*_*rns 18

完整性检查

sqlite3 .svn/wc.db "pragma integrity_check"
Run Code Online (Sandbox Code Playgroud)

清理

sqlite3 .svn/wc.db "reindex nodes"
sqlite3 .svn/wc.db "reindex pristine"
Run Code Online (Sandbox Code Playgroud)

另外

您可以将可以读取的数据库内容转储到备份文件中,然后将其重新打包到新的数据库文件中:

sqlite3 .svn/wc.db

sqlite> .mode insert
sqlite> .output dump_all.sql
sqlite> .dump
sqlite> .exit

mv .svn/wc.db .svn/wc-corrupt.db
sqlite3 .svn/wc.db

sqlite> .read dump_all.sql
sqlite> .exit
Run Code Online (Sandbox Code Playgroud)

  • 断言错误的正确修复方法是: 1. 针对原始数据库运行 `sqlite3 .svn/wc.db 'PRAGMA user_version;'` 以获取正确的编号。2. 针对具有正确编号的恢复版本运行“sqlite3 .svn/wc.db 'PRAGMA user_version = XXX;'”。 (3认同)
  • 这有助于我使用不同软件时出错,所以谢谢先生! (2认同)
  • 我没有把所有东西都扔掉,但这已经足够了。在执行“.read dump_all.sql”之前,滚动浏览 sql 文件并将最终的“ROLLBACK;”更改为“COMMIT;”。 (2认同)
  • 这种方法现在似乎失败了,错误是`svn:E235000:在文件'D:\ Development\SVN\Releases\TortoiseSVN-1.9.7\ext\subversion\subversion\libsvn_wc\wc_db_wcroot.c'第311行:断言失败(格式> = 1)`,但是这里有一个解决方法:http://hanscarpenter.blogspot.com.au/2016/05/subversion-fails-du-to-power-outage.html (2认同)

小智 16

SVN清理不起作用.我本地系统上的SVN文件夹已损坏.所以我刚刚删除了文件夹,重新创建了一个新文件夹,并从SVN更新了.这解决了问题!


Tho*_*853 12

电源中断后,我遇到了数据库磁盘映像格式错误,建议的reindex nodes命令没有解决因违反约束而导致的所有问题.此外,http://mail-archives.apache.org/mod_mbox/subversion-users/201111.mbox/%3C874nybhpxi.fsf@stat.home.lan%3E中描述的过程无法解决问题.

解决我的情况:

  • 将svn存储库再次签出到临时文件夹中
  • 将新签出中的文件".svn/wc.db"复制(即替换)为损坏的文件

如果您的原始svn checkout包含许多已修改或未版本控制的文件并且您不想切换到新的svn结帐,这可能很有用.


小智 12

我从同行工作者的目录中复制了.svn文件夹并解决了问题.