I keep my home
directory in a Subversion repository. A month ago that repository broke
down. Subversion developers were unable to help me without access
to the repository, which I didn't want to grant, since my repository
contains some private data (Jabber account passwords and the like).
I spent a day debugging the problem until I found the cause (a loop in a
data structure). Then I was too busy to do anything, and a month went by
without regular backups. Two days ago I finally hacked a workaround and
managed to extract a nearly complete repository dump. All is well again,
except for my confidence in Subversion, which is a bit shaken.
All of my Subversion repositories now use the fsfs
format. I only had troubles with the bdb
format so far.
The most annoying subversion error message:
$ svn up
svn: Won't delete locally modified directory 'foo/bar'
svn: Left locally modified or unversioned files
This happens when a subdirectory of 'foo/bar' is removed from
the upstream repository, and subversion tries and fails to remove ir locally --
fails because it finds some some files that are listed in svn:ignore (e.g.
editor backup files, compiled object files, compiled Python modules).
Now you have to figure out which subdirectory of 'foo/bar' subversion wants
to remove. Then you have to manually remove junk files from it. Then you
have to repeatedly try various combinations of
svn up and
svn cleanup until Subversion finally agrees to continue the
svn up operation.
Please, Subversion folks -- if you cannot delete a directory because it
contains just junk files (those ignored in the output of
status), just print a meaningful warning message (and name the correct
directory rather than its parent!) and continue with the update.
Update: It seems to be fixed in
Subversion 1.1. Unfortunately Subversion 1.1 is not in Debian.