Unexpectedly broken, and fixed: svnbackup

Yesterday Pierre Lemay sent me one of the clearest bug reports I’ve seen in quite a while, and a patch to fix the problem. He was having trouble with svnbackup duplicating changesets in the dump files. It turns out every changeset that appeared on a “boundary” (at the end of one dump file and the beginning of the next) was included in both dumps. Oops.

When I tested the script, I was able to recover the repository without any trouble. I didn’t check 2 cases that Pierre encountered. First, the changeset revision numbers did not stay consistent. When the changeset was duplicated, that threw off all of the subsequent changeset ids by 1. For each duplicate. That in itself is only annoying. The more troubling problem is when a duplicate changeset includes a delete operation. The second delete would fail while restoring, which prevented Pierre from importing the rest of the backup.

In his email describing all of that, he gave me great details about how he had tested, the specific scenario that caused the problem, and then provided the fix!

So, if you are using version 1.0, go on over and download version 1.1 with Pierre’s fixes.