Resolving SVN error "Could not open the requested SVN filesystem"
Recently I bought a Synology DS1821+ to complement a pair of long-in-the-tooth HP N40L micro servers running Windows. Although I originally bought it just for storage and "real" RAID, I found it such a delightful device that I decided that it should replace the micro servers completely. Prior to this I've never really used Docker, but the Synology DiskStation Manager (DSM) software makes it a breeze - in no time at all I had Jenkins and Gitea running on it via official packages, and a third party for SVN as I still have both a legacy and a "current" repository, the latter one that I'm piecemeal converting to git.
The only problem was, the truly ancient VB6 repository would load fine, but the "current" C# one failed when trying to access it:
Could not open the requested SVN filesystem
I then had a rather frustrating session trying assorted
fruitless attempts to get the repository accessible, copying it
directly, doing svnadmin dump
and svnadmin load
, deleting
Windows-based hooks, etc etc without success.
Worried that the original repository was corrupt, I finally did
a svnadmin verify
on it, which passed with flying colours.
However, when I tried the same command on my most recent clone,
instead of the generic error I'd been getting with other
commands I got something specific and helpful.
svnadmin: E160043: Expected FS format between '1' and '7'; found format '8'
Now we're getting somewhere! It appears that the third party image I'm using isn't using an up to date version of SVN, but 1.9.7 from 6 years ago. Alas this blog doesn't support emoji otherwise there'd be a facepalm here for sure, both for this image being woefully out of date, and for me forgetting I wrote about how I upgraded my repository from an older version some years back.
When you create a repository via svnadmin create
, there is a
--compatible-version
switch you can use to force an older
version. So back on the Windows box I created a new repository,
using the 1.7 format.
svnadmin create clone --compatible-version 1.7
I then loaded in a previous dump
svnadmin load clone < cyotekdump.svn
Once done, I zipped up the repository, dropped it on the NAS, deleted the "broken" clone, and extracted the zip in-situ. Then I re-ran the verify command and...
Huzzah! And the web interface works too.
Of course, once you look at the Edge and SSH screenshot you can see the same error code is present in both, not that I know SVN error codes off the top of my head! In addition I only used Edge to create the screenshots for this post, originally my testing was with Firefox - and this didn't show the XML at all, only the error text.
Although I have this working, it seems rather pointless having this shiny new device and then installing software on it that is obsolete and so I need to find a newer image. (Of course, I really should focus on migrating away from SVN as well!)
But I haven't blogged for a very long time and who knows, this particular information might help someone else down the line.
Like what you're reading? Perhaps you like to buy us a coffee?