On Thu, Dec 16, 2010 at 05:03:00PM +0100, Rainer Dorsch wrote:
> Hello,
> 
> I see here a strange behavior of subversion:
> 
> I have a local modification:
> 
> 
> $ svn diff
> Index: README
> ===================================================================
> --- README      (revision 929)
> +++ README      (working copy)
> @@ -10,3 +10,4 @@
>    Contains project administration documents for the project like the project 
> plan
>  - att
>    att traces
> +
> $
> 
> I try to commit the change
> 
> $ svn commit -m "minor change"
> Sending        README
> Transmitting file data .svn: Commit failed (details follow):
> svn: database disk image is malformed
> svn: database disk image is malformed
> $ 
> 
> And get an error back.
> 
> $ svn diff
> Index: README
> ===================================================================
> --- README      (revision 929)
> +++ README      (working copy)
> @@ -10,3 +10,4 @@
>    Contains project administration documents for the project like the project 
> plan
>  - att
>    att traces
> +
> $
> 
> But the repository has the change(!), and I can update
> 
> $ svn update
> G    README
> Updated to revision 930.
> $
> 
> Then my local diff is gone
> 
> $ svn diff
> $
> 
> 
> I found several posts discussing the 
> 
>       svn: database disk image is malformed
> 
> issue. The best solution is saw is to dump the repository and create a new 
> one 
> from the dump.
>
> Is there an easier way to fix the problem in a robust manner? Does maybe even 
> svn provide some fix scripts?

This error message is coming from sqlite, not from Subversion.
You probably have a broken sqlite database in the repository.

The only place I can think of where sqlite is used in FSFS is
the rep-cache.db file. Have you got rep-sharing enabled on the repository?
See the file repos/db/fsfs.conf.

You can safely disable rep-sharing. Maybe this will get rid of the error.
If it does, try to recover the rep-sharing.db using sqlite (though I
don't know how you could do that). If you cannot recover rep-cache.db,
move it out of the way and Subversion will create a new rep-cache.db
sqlite database. But it will be empty.

Representation sharing is not required for a commit to succeed.
This would explain why you see a successful commit in spite of the error.

Stefan

Reply via email to