lost_bits1110
lost_bits1110

Reputation: 2420

Subversion: base checksum mismatch

I am trying to commit a change in subversion to a file. This file belongs to a directory that is linked to my project via an external, and is pegged at a certain revision.

When I do a commit, I get the error:

Commit failed
Base checksum mismatch on....

I tried to check out the directory again to ensure that it was clean and perform the commit again, but I still receive the same error.

Could it be related to committing to a pegged file? I thought that committing onto a file that is pegged should be possible and essentially branches off this code?

Upvotes: 39

Views: 47109

Answers (16)

Wernfried Domscheit
Wernfried Domscheit

Reputation: 59513

For me also this one worked:

  • Delete entire local folder
  • checkout the repository

Upvotes: 0

Eric Minnaert
Eric Minnaert

Reputation: 57

I did this.

  1. Deleted the .svn folder in the workspace.
  2. Checked out the project to a new temporary folder
  3. Copied the .svn folder from the new temporary folder
  4. Pasted the .svn folder into the workspace.
  5. Committed without issue.
  6. Delete temporary folder.

Upvotes: 4

Berend de Boer
Berend de Boer

Reputation: 2112

I simply removed the file from the working directory, then did svn up. Example:

rm dir/bad-file.txt
svn up dir/bad-file.txt

That worked.

Upvotes: 0

rattkin
rattkin

Reputation: 46

For me, a new checkout would be very time consuming (several gigs thousands of files). What I did:

  • delete the file with corrupted metadata (keep local file, or back it up)
  • it did not complain about metadata mismatch
  • commit
  • add file back to working copy
  • commit !
  • profit!

Upvotes: 1

leonp
leonp

Reputation: 507

The simplest way IMHO is:
1. Checkout the last copy from your repository into some directory (f.e. TTTT).
2. Copy TTTT/.svn content to your normal source directory (override the existing content).
You are done - the original directory may be committed.

Upvotes: 1

nokieng
nokieng

Reputation: 2126

I solved the issue as the following
First, backup the folder where the problem is
2ns, Delete the original folder and commit it.
3rd, copy folder from backup folder
4th, I could commit this folder without the issue

This may not be the good solution, since, I delete the folder and commit, So that I think I can not revert it after I fixed this issue if I want to.

Upvotes: 0

0xbaadf00d
0xbaadf00d

Reputation: 2643

I had this issue, but deleting the folders didn't seem to do anything.

I managed to fix this by checkouting the same source files to another place and copying over the files which had these problems.

Clean / Revert / Update(after deleting the files) did nothing.

I'm running windows 7 with tortoisesvn 1.7.11 64 bit version.

Upvotes: 1

Mohamed Ramadan
Mohamed Ramadan

Reputation: 21

Just had the same issue and I used console client to deal with it:

  1. Backup files
  2. Delete files from repo by svn rm filename
  3. Commit it
  4. Copy files back from backup use svn add filename
  5. Commit it

Upvotes: 2

Karol Flis
Karol Flis

Reputation: 311

What worked for me is to:

svn up --set-depth=empty

then

svn up --set-depth=infinity

error is gone!

Upvotes: 1

Oleg Sobko
Oleg Sobko

Reputation: 11

Just had the same issue and I used console client to deal with it:

  1. Backup files
  2. Delete files from repo by svn rm filename
  3. Commit it
  4. Copy files back from backup use svn add filename
  5. Commit it

Upvotes: 1

Vicky
Vicky

Reputation: 5136

Check your server's SVN version it might be mismatch with your local svn version.

1. Check SVN version by following command and upgrade it, if its mismatch with your server version.

svn --version 

2. Checkout the project with latest version of SVN (i.e. your server svn version).

3. Commit the file.

Note : It will work only for SVN version mismatch case.

Upvotes: 0

Ru887321
Ru887321

Reputation: 387

What worked for me:

  1. Make copy of current version of file.
  2. svn rm 'filename'
  3. svn ci
  4. change the file name back to the original
  5. svn add 'filename'
  6. svn ci

After this, the commits and updates seem to work correctly.

Upvotes: 0

Tomasito
Tomasito

Reputation: 1883

The way worked for me:

  1. Make copy of problematic file.
  2. Revert.
  3. Unversion and add to ignore item.
  4. Commit.
  5. Owerwrite ignored file from copy.
  6. Add file back to SVN.
  7. Commit.

Upvotes: 52

Jacco
Jacco

Reputation: 493

The way that worked best for me, was:

  1. Doing an Export of the whole folder that won't commit (using Tortoise for example)
  2. Delete the folder currently in SVN (also using your SVN client)
  3. Put the folder you exported everything to, at the same place as the previously deleted folder, preferably with the same name
  4. Add and Commit the folder
  5. You are back where you were without losing your changes and without wrong checksums!

Upvotes: 6

mike nelson
mike nelson

Reputation: 22166

Copy all files in your project to a temporary backup folder. Click "Revert" on your original project folder. Diff changed files with the backup folder, copy your changed files into the original project folder. Commit and your original folder is back to normal.

Just had this same issue on two projects and that method worked.

Upvotes: 11

Dmitry Pavlenko
Dmitry Pavlenko

Reputation: 8968

Your working copy maybe corrupted. You may try to repair it with SmartSVN (select Modify | Validate Admin Area). If this won't help only a fresh checkout will help.

Upvotes: 0

Related Questions