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:

  1. 在项目上单击鼠标右键
  2. 团队 – >断开连接
  3. select:同时删除…

现在,再次重新连接:

  1. 在项目上单击鼠标右键
  2. 团队 – >分享项目
  3. select你的repositorie :我的SVN (其他情况下:git等)
  4. select您的repositorie文件夹

注意:

在我的情况下,我做了我的文件的备份。 (安全回来:P)

编辑:

我正在谈论Eclipse上的SVN插件:)

你有没有看到这个post在颠覆网站? 您也可以尝试validation并直接按照此处所述“修复”数据库。 (请注意,我不是专家,我只是做了一个快速的谷歌search,可能不会涉及到你的问题)。

就个人而言,我会尝试再次检查回购,并重新应用您的更改。 不知道这是可能的,但在你的情况?

在我的研究中,我find了两个可行的解决scheme。

  1. 如果您正在使用任何types的连接,ssh,samba,挂载,断开/卸载以及重新连接/重新挂载。 再试一次,这常常为我解决问题。 之后,你可以做svn清理或只是继续正常工作(取决于问题出现的时间)。 重新启动我的电脑也解决了这个问题一次…是的,这是愚蠢的我知道!

  2. 有时候,所有要做的就是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仓库工作,做提交,更新,添加,删除操作没有问题。

🙂

  1. 在另一个地方看看这个svn
  2. 显示隐藏的.svn文件
  3. 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