svn清理:sqlite:数据库磁盘映像格式不正确
我试图做一个svn cleanup
因为我不能在我的工作副本中提交更改,并且出现以下错误:
sqllite:数据库磁盘映像格式不正确
我现在可以做什么?
我有同样的问题。 以下博客帮我解决了这个问题: http : //www.polak.ro/svn-e200030-sqlite-database-disk-image-is-malformed.html
你在跟踪版本库(/.svn/wc.db)的sqlite数据库上进行完整性检查:
sqlite3 .svn/wc.db "pragma integrity_check"
这应该报告一些错误。
那么你可以通过干净的方式清理它们:
sqlite3 .svn/wc.db "reindex nodes" sqlite3 .svn/wc.db "reindex pristine"
如果之后仍然有错误,您仍可以select将存储库的全新副本检出到临时文件夹,然后将.svn文件夹从新副本复制到旧副本。 然后旧的副本应该再次工作,你可以删除临时文件夹。
SVN清理不起作用。 我本地系统上的SVN文件夹被损坏。 所以我刚刚删除了该文件夹,重新创build了一个新的文件夹,并从SVN更新。 这解决了问题!
完整性检查
sqlite3 .svn/wc.db "pragma integrity_check"
清理
sqlite3 .svn/wc.db "reindex nodes" sqlite3 .svn/wc.db "reindex pristine"
另外
您可能能够将可以读取的数据库的内容转储到备份文件中,然后将其转储回新的数据库文件:
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
我从我的同行工作人员的目录复制了.svn文件夹,并解决了问题。
电源中断后,我碰到数据库磁盘映像是格式错误,并build议reindex节点命令并没有解决所有问题由于违反约束。 另外http://mail-archives.apache.org/mod_mbox/subversion-users/201111.mbox/%3C874nybhpxi.fsf@stat.home.lan%3E中描述的过程没有解决问题。;
解决scheme在我的情况:
- 再次检出svn仓库到一个临时文件夹
- 即将新签出的文件“.svn / wc.db”复制到损坏的文件中
这可能是有用的,如果您的原始svn结帐包含许多修改或未版本化的文件,你不想切换到一个新鲜的svn结帐。
也许,可能是一个解决scheme:
- 在项目上单击鼠标右键
- 团队 – >断开连接
- select:同时删除…
现在,再次重新连接:
- 在项目上单击鼠标右键
- 团队 – >分享项目
- select你的
repositorie
:我的SVN
(其他情况下:git等) - select您的
repositorie
文件夹
注意:
在我的情况下,我做了我的文件的备份。 (安全回来:P)
编辑:
我正在谈论Eclipse
上的SVN
插件:)
你有没有看到这个post在颠覆网站? 您也可以尝试validation并直接按照此处所述“修复”数据库。 (请注意,我不是专家,我只是做了一个快速的谷歌search,可能不会涉及到你的问题)。
就个人而言,我会尝试再次检查回购,并重新应用您的更改。 不知道这是可能的,但在你的情况?
在我的研究中,我find了两个可行的解决scheme。
-
如果您正在使用任何types的连接,ssh,samba,挂载,断开/卸载以及重新连接/重新挂载。 再试一次,这常常为我解决问题。 之后,你可以做svn清理或只是继续正常工作(取决于问题出现的时间)。 重新启动我的电脑也解决了这个问题一次…是的,这是愚蠢的我知道!
-
有时候,所有要做的就是rm -rf文件(或者如果你不熟悉这个术语,只需要删除你的svn文件夹),然后再次检查你的svn仓库。 请注意,这并不总是解决问题,你也可能有变化,你不想失去。 这就是为什么我使用它作为第二个选项。
希望这可以帮助你们!
我解决了我的视觉svn服务器rep-cache.db损坏的问题。
他们是两个解决scheme。
停止Visual SVN服务器服务。
从sqllite网站下载sqllite3.exe shell,并将其复制到repo的db文件夹中。
在repo的db文件夹中的命令提示符下键入以下命令。
– 第一解决scheme –
sqlite3 rep-cache.db .clone rep-cache-new.db
按ctrl + c退出sqllite。
ren rep-cache.db rep-cache-old.db ren re-cache-new.db rep-cache.db
– 第二解决scheme –
删除rep-cache.db
del rep-cache.db
它会自动创build。
如果你安装了龟SVN,请去任务pipe理器并停止它。 然后尝试删除该文件夹。 它会工作
无需担心目录locking的家伙。
只要你需要做的是,如果没有安装sqllite3,键入下面的命令,
>sudo apt-get install sqlite3
input这个命令打开SVN数据库,
>sqlite3 .svn/wc.db
现在只需要从SVN DB中删除locking条目。
sqlite> select * from wc_lock; 1|-1 sqlite> delete from wc_lock; sqlite> select * from wc_lock; sqlite> .q
处理完成。 你可以在你的SVN仓库工作,做提交,更新,添加,删除操作没有问题。
🙂
- 在另一个地方看看这个svn
- 显示隐藏的.svn文件
- replacewc文件
这对我有用!
在应用程序开发过程中,我发现这些消息来自频繁和大量的INSERT和UPDATE操作。 确保在一个操作中插入和更新多个行或数据。
var updateStatementString : String! = "" for item in cardids { let newstring = "UPDATE "+TABLE_NAME+" SET pendingImages = '\(pendingImage)\' WHERE cardId = '\(item)\';" updateStatementString.append(newstring) } print(updateStatementString) let results = dbManager.sharedInstance.update(updateStatementString: updateStatementString) return Int64(results)
cd到包含.svn的文件夹
rm -rf .svn svn co http://mon.svn/mondepot/ . --force