我试图做 asvn cleanup
因为我无法在我的工作副本中提交更改,并且我收到以下错误:
sqllite:数据库磁盘映像格式错误
我现在能做什么?
我试图做 asvn cleanup
因为我无法在我的工作副本中提交更改,并且我收到以下错误:
sqllite:数据库磁盘映像格式错误
我现在能做什么?
首先,在存储库根目录(作为子文件夹的文件夹)打开command
/ :terminal
.svn
cd /path/to/repository
下载sqlite3
可执行文件并将其放在文件sqlite3
夹的根目录下。
您对跟踪存储库 ( /path/to/repository/.svn/wc.db
) 的 sqlite 数据库进行完整性检查:
sqlite3 .svn/wc.db "pragma integrity_check"
那应该报告一些错误。
然后,您可以通过执行以下操作来清理它们:
sqlite3 .svn/wc.db "reindex nodes"
sqlite3 .svn/wc.db "reindex pristine"
如果在那之后仍然有错误,您仍然可以选择将存储库的新副本检出到临时文件夹并将 .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 清理不起作用。我本地系统上的 SVN 文件夹已损坏。所以我只是删除了文件夹,重新创建了一个新文件夹,然后从 SVN 更新。这解决了问题!
停电后,我遇到了数据库磁盘映像格式错误的错误,并且由于违反约束,建议的重新索引节点命令没有解决所有问题。此外, http: //mail-archives.apache.org/mod_mbox/subversion-users/201111.mbox/%3C874nybhpxi.fsf@stat.home.lan%3E中描述的过程也没有解决问题。
在我的情况下的解决方案:
如果您的原始 svn checkout 包含许多已修改或未版本化的文件并且您不想切换到新的 svn checkout,这可能很有用。
我从同行工作人员的目录中复制了 .svn 文件夹,这解决了这个问题。
这对我有用!
也许,可能是一个解决方案:
现在,再次重新连接:
repositorie
:我的SVN
(其他情况:git等)repositorie
文件夹笔记:
就我而言,我备份了我的文件。(安全的你回来:P)
编辑:
我说的是SVN
插件Eclipse
:)
不要浪费您的时间checking integrity
或从表中删除数据,work queue
因为这些是临时解决方案,它会在一段时间后打击您。
只需再做一个checkout
并将现有的 .svn 文件夹替换为新文件夹即可。做一个update
,然后它应该很顺利。
我解决了我的视觉 svn 服务器 rep-cache.db 损坏问题。
他们是两个解决方案。
停止 Visual SVN 服务器服务。
从 sqllite 网站下载 sqllite3.exe shell 并将其复制到 repo 的 db 文件夹中。
在 repo 的 db 文件夹中的命令提示符处键入以下命令。
-- 第一个解决方案 --
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
-- 第二个解决方案 --
删除 rep-cache.db
del rep-cache.db
它将自动创建。
如果你安装了 Tortoise SVN,请到任务管理器并停止它。然后尝试删除该文件夹。它会起作用的
在我的研究中,我发现了 2 个可行的解决方案。
如果您使用任何类型的连接,ssh、samba、安装、断开/卸载和重新连接/重新安装。再试一次,这通常为我解决了问题。之后,您可以进行 svn cleanup 或继续正常工作(取决于问题出现的时间)。重新启动我的计算机也解决了一次问题......是的,我知道这很愚蠢!
有时要做的就是 rm -rf 您的文件(或者如果您不熟悉该术语,只需删除您的 svn 文件夹),然后再次重新检查您的 svn 存储库。请注意,这并不总能解决问题,您可能还有不想丢失的更改。这就是为什么我使用它作为第二个选项。
希望这对你们有帮助!
我通过删除隐藏的 .svn 文件夹,然后对该文件夹执行签出到相同的 URL 来修复它发生在我身上的一个实例。
这并没有覆盖我修改过的任何文件,只是对所有现有文件进行了版本控制,而不是从服务器获取新副本。
根据颠覆清理,标记的答案可能是正确的答案。但是这个错误绝对是一个通用的错误,它把我带到了这个问题页面。
我们的项目有依赖 System.Data.SQLite 并且错误消息是相同的:
数据库磁盘映像格式错误
就我而言,我已经通过SQLiteStudio 3.1.1执行了以下检查脚本和以下内容。
pragma integrity_check
(我不知道这些统计数据是否会有所帮助,但无论如何我都会分享它们......)
数据库文件通过内存上的连接日志模式在日常使用中使用了 1.5 年,大小约为 750 MB。每个表大约有 140K 记录,6 个表这么大。
执行完整性检查脚本后,执行时间 30 分钟后返回 11 行。
wrong # of entries in index sqlite_autoindex_MyTableName_1
wrong # of entries in index MyOtherTableAndOrIndexName_1
wrong # of entries in index sqlite_autoindex_MyOtherTableAndOrIndexName_2
etc...
所有结果都与指标有关。跟进重新构建每个索引,我的问题得到了解决。
reindex sqlite_autoindex_MyTableName_1;
reindex MyOtherTableAndOrIndexName_1;
reindex sqlite_autoindex_MyOtherTableAndOrIndexName_2;
重新索引后,完整性检查结果为“ok”。
去年我遇到了这个错误,我从备份中恢复了数据库,然后重新提交了所有更改,这真是一场噩梦......
检查您尝试签出数据的本地机器空间。在我的情况下,我的 c 驱动器没有空间来完成结帐,所以错误来了:)
无需担心目录锁定家伙。
只需要做的是,如果未安装 sqllite3,请键入以下命令,
>sudo apt-get install sqlite3
通过键入此命令打开 SVN 数据库,
>sqlite3 .svn/wc.db
现在你需要做的就是从 SVN DB 中删除锁条目。
sqlite> select * from wc_lock; 1|-1 sqlite> delete from wc_lock; sqlite> select * from wc_lock; sqlite> .q
过程完成。您可以在您的 SVN 存储库上工作,毫无问题地进行提交、更新、添加、删除操作。
:-)
在应用程序开发过程中,我发现消息来自频繁且大量的 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