几乎每次我提交SVN时,我都会遇到校验和不匹配错误。我已经知道如何修复它(通过签出文件夹并在删除旧文件夹后复制.svn文件夹)。我想知道的是导致这种情况导致我疯狂的原因。
操作系统:Windows 7 SVN客户:VisualSVN,TortoiseSVN
答案 0 :(得分:6)
1.在工作目录中重命名已损坏的文件
2.Commit(它将从存储库中删除损坏的文件,并添加重命名的文件)
3.将文件重命名为工作目录中的原始名称
4.Commit
对我而言,工作就像一个魅力,希望它有所帮助。
答案 1 :(得分:5)
是的,这个错误有点烦人。可能会出现多种原因,例如网络损坏,断电或说文件损坏。你弄清楚的解决方法是克服这个错误的最佳方法..
有关出现此错误的原因和理论的更多详细信息:(类似问题,md5为null;在您的情况下,其值与服务器上的值不同)
答案 2 :(得分:3)
我之前可以解决的问题是在问题文件所在的文件夹中打开命令shell并执行以下操作:
svn update --set-depth empty
svn update --set-depth infinity
我不记得我在哪里找到了解决方案,我想在应有的地方给予肯定,但我记不住了,我在shell命令历史中找到了这个。
答案 3 :(得分:1)
我有这样的错误。我找到的最简单的解决方案是删除fil所在的文件夹,然后在我选择的svn客户端中进行更新。
这将从服务器恢复校验和。
当然,唯一的问题是您在上一次提交之前所做的任何更改都将丢失。如果它是一个简单的源文本文件,您可以将整个内容复制到记事本(或任何文本编辑器),更新svn,然后再将源文本复制到文件中并提交。
答案 4 :(得分:0)
这次曾经发生在我的eclipse svn插件中,我提交了一些文件,然后在它正在进行时点击了取消按钮。然后我得到了与你相同的错误。似乎svn服务器已收到提交的文件并更新了校验和,但在我的本地svn中,文件仍然指向旧的校验和。
我的解决方案是删除/移动包含问题文件的文件夹,然后我检出或再次更新该文件夹。
答案 5 :(得分:0)
获取文件的校验和:
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.'
它对我有用。