Tortoise Check-in error Checksum mismatch

此生再无相见时 提交于 2019-12-23 10:15:32

问题


I cannot figure out why I get this error during check-in. I checked in successful only a few hours ago so not sure why now it's complaining

Error: Commit failed (details follow):  
Error: Checksum mismatch for   
Error: 'C:\sss\sss\trunk\xxxx\.svn\text-base\Header.ascx.svn-base'; expected:   
Error: '3cee96f580409a1711a47541a07860dd', actual: 'a5fc0f8819b88bf32ab38d4c9a6b0654'  
Error: Try a 'Cleanup'. If that doesn't work you need to do a fresh checkout.  

I got latest and also performed a clean-up which said successful so not sure what else to do.


回答1:


Something has gotten out of sync or has become corrupt, and because it's in your .svn BASE directory, unless you are confident tinkering with this, you're probably better off deleting the parent of the .svn directory and then perform an update. Of course, take a backup or see if an export works before doing this, so you don't lose any changes.

FWIW, I get this sometimes with our library references where Visual Studio seems to keep a lock on some files (even though it's not compiling) and won't let me update them. I believe this is related to the xml documentation files.

Note: Subversion 1.7+ implements a new working copy approach which centralises the meta data, and it now has a single .svn directory at the root of your working copy. Your best bet is a cleanup, failing that a fresh checkout into another directory and export or file copy the corrupted working copy except for the .svn directory, over to the fresh checkout, and commit any local changes.




回答2:


Looks like one of your SVN files is corrupt. First, check-in everything that can safely be checked in, and make sure to backup everything. Then fix the offending file - usually this involves deleting it from your repository. This should be okay if you're checking in a new version anyway.




回答3:


I received a similar error after our project repository was moved to a new server. Try reverting your file and reapplying your changes.




回答4:


I had same problem after googling for some help found articles that suggested to override the checksum in the .svn\entries file. But in that file the checksum was actually as the the expected one in the error message.

To fix the problem, I navigated to .svn\text-base dir of problem file's directory and found out that there's a copy of the file i was trying to check in changes for. I opened that file in Notepad++ and replaced it's content with content of the file to be commited and i was able to commit afterwards.

But just in case, make a backup copy of the .svn\text-base file. I think this happened because i did an svn update before commit because it complained that my version is outdated. Anyway, it's fixed for me and hope my solution helps someone else too.




回答5:


With Tortoise SVN, I choose to delete the file in Repo Browser.

First back up the problem file. and use Repo Browser delete the problem file in it, then update local folder so the file in local folder is deleted. Then copy back the backup file and Add > Commit, then I can update successfully.

The disadvantage of this method is the history of this file will be removed.

Also see another post.



来源:https://stackoverflow.com/questions/1156431/tortoise-check-in-error-checksum-mismatch

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!