From where I’m standing SVN seems to bring with it a lot of the issues that CVS had with regards to “too much” changing on your local disk and then that getting you into trouble when you went to check it into the repo.
I never figured out why exactly CVS would frequently balk at this type of work, especially once you introduced file renames and refactoring, but I thought one of the big benefits of SVN was that it fixed that… you know, CVS but better. Suffice it to say, that’s not what I’m experiencing so far with a few years of SVN. It’s just as stupid as CVS in the areas that count — namely the areas that cost you at least an hour to troubleshoot when they go south.
It was late last night, I was sitting in IntelliJ 9 getting ready to check in 10 new files and 4 changed ones. I selected “Version Control” and “Commit Changes…” before heading to bed:
IntelliJ ground for a while before barfing with an error and coming back with “Commit failed <FILENAME> already exists.” – which was odd because it was complaining about one of the files I had made changes to and was trying to check back in… of course it existed.
I ignored the failure and continued to work before trying again to check my changes in, at which point I received the damnable:
svn: Checksum mismatch for '.svn/text-base/AbstractFeedParser.java.svn-base'; expected: 'f8d45250f7df5561635854165862fdd8', actual: '644f85c4befa671150c5c6ec5fad9885'
After 20 mins of Clean, Update and Commit attempts, I finally gave up. I had no idea what was wrong, so I started googling.
The first post (and second and fifth) I ran across said the trick was to check the entire project out again into a separate directory and copy the .svn/text-base contents from the working copy on top of the corrupted copies I had in my repository.
That didn’t work.
The third post I found made a bit more sense, it said the problem was that the .svn/entries file contained a bogus checksum for that particular file, and I had to manually edit the .svn/entries file to put the right checksum in so the check would past.
So I popped open the .svn/entries file, found the line that contained the checksum for my AbstractFeedParser file and changed it to the “actual” value that SVN was reporting above. Then I tried the Update and Commit operations again, which were now failing with a different checksum error. I tried this for a few more minutes and cycles before realizing this wasn’t going to work at all.
So that didn’t work either.
The only way I got this god-forsaken SVN operations to work again was to use the SVN Repository Browser inside of IntelliJ to find the file that it was bitching about, actually Delete it from the repo, and check it back in.
I don’t know if this is “right”, and I think I’ve lost the history on that file now (which isn’t too important) but if you are like me, scouring the web looking for a solution and none of the “Replace the .svn directory contents” tips are working for you, this is what worked for me.
For the life of me I can’t figure out why this issue exists in the first place. SVN is suppose to be aware of two files:
- My local copy of the file
- The repository copy of the file
And when you do an update or commit it figures out the difference between the two and does the right thing. Why is it checksum’ing local copies of my files for a 3rd layer of validation? What value does that serve besides introducing another potential point of failure as seen here? It should give a flip what I do with my local file until I go to check it in and why would it “expect” any particular checksum for my local file?
I’ve never wanted to try Git so much in my life…




I’ve been plagued by this problem, too. It happens regardless of the client I use (Eclipse, Versions, and command line). I used the same delete method you mentioned here, but in the case of my project, each commit to SVN triggers a build operation so it wasn’t a great fix when I’d get this error on several files in one commit.
The workaround that has worked for me has been running “rm -rf ” (I definitely navigate within a folder to run this but it still makes me nervous) on the parent directory containing the problematic file and then do an svn update. If the problem happens after a merge, I do the same thing to both branches/trunks being referenced in the merge. The one inconsistency is that I sometimes have to delete the parent’s parent directory. In any case, it seems a clean check out/update fixes the problem 80% of the time for me. I’m just fortunate that the issue typically occurs when committing my merged files and not my initial branch commit or my fix wouldn’t be very helpful if I had to reapply my changes each time and not just re-merge them.
Mindy, what version of SVN are you using in your repo and locally? This didn’t end up happening to me again once I figured out that it was actually IJ locking up and me hitting “Commit” again, causing 2 threads to actually try and commit at the same time that was screwing all this up.
Is it possible that is what is happening when yours gets corrupted? Two SVN threads operating on the same tree?
I have this issue with Collabnet 1.6.9 -
2 svn servers, slave and master,
i386 linux, master on x64 linux.
can commit on master but not on slave.
Tried your solutions, did’nt help either.
Anyone got any ideas?