【发布时间】:2011-07-01 19:52:58
【问题描述】:
几乎每次我提交 SVN 时,我都会不断收到校验和不匹配错误。我已经知道如何修复它(通过检查文件夹并在删除旧文件夹后复制 .svn 文件夹)。我想知道是什么原因导致我开始发疯。
操作系统:Windows 7 SVN 客户端:VisualSVN、TortoiseSVN
【问题讨论】:
标签: windows svn tortoisesvn visualsvn corrupt-data
几乎每次我提交 SVN 时,我都会不断收到校验和不匹配错误。我已经知道如何修复它(通过检查文件夹并在删除旧文件夹后复制 .svn 文件夹)。我想知道是什么原因导致我开始发疯。
操作系统:Windows 7 SVN 客户端:VisualSVN、TortoiseSVN
【问题讨论】:
标签: windows svn tortoisesvn visualsvn corrupt-data
1.重命名工作目录中损坏的文件
2.Commit(它将从存储库中删除损坏的文件,并添加重命名的文件)
3.将文件重命名为工作目录中的原始名称
4.提交
工作对我来说就像一个魅力,希望它有所帮助。
【讨论】:
是的,这个错误有点烦人。发生这种情况的原因有多种,比如网络中断、断电或文件损坏。您想出的解决方法是克服此错误的最佳方法 afaik ..
有关发生此错误的原因和理论的更多详细信息:(类似问题,md5 为空;在您的情况下,它的值与服务器上的值不同)
【讨论】:
我前一阵子可以解决的这个解决方案是在问题文件所在的文件夹中打开一个命令外壳并执行以下命令:
svn update --set-depth empty
svn update --set-depth infinity
我不记得我在哪里找到了解决方案,我想在应得的地方给予赞扬,但我不记得了,我在 shell 命令历史记录中找到了这个。
【讨论】:
我遇到了这样的错误。我找到的最简单的解决方案是删除 fil 所在的文件夹,然后在我选择的 svn 客户端中更新。
这将从服务器恢复校验和。
当然,唯一的问题是您在最后一次提交之前所做的任何更改都将丢失。如果它是一个简单的源文本文件,您可以将整个内容复制到记事本(或任何文本编辑器),更新 svn,然后再次将源文本复制到文件中并提交。
【讨论】:
这曾经在 eclipse svn 插件中发生在我身上,我提交了一些文件,然后在执行过程中单击了取消按钮。然后我得到了和你一样的错误。 svn 服务器似乎已经收到了提交的文件并更新了校验和,但是在我的本地 svn 中,文件仍然指向旧的校验和。
我的解决方案是删除/移动包含问题文件的文件夹,然后我再次签出或更新该文件夹。
【讨论】:
获取文件校验和:
SELECT CHECKSUM FROM NODES WHERE REPOS_PATH LIKE '%FILE_NAME%'
您需要删除表 NODES 和 PRISTINE 中的记录:
DELETE FROM NODES WHERE CHECKSUM = 'CHECKSUM from 2.'
DELETE FROM PRISTINE WHERE CHECKSUM = 'CHECKSUM from 2.'
它对我有用。
【讨论】: