Discussion:
Accessing really old SVN repo
"Zow" Terry Brugger
2018-04-10 18:09:20 UTC
Permalink
Good day,

I have a SVN repo that I probably have not touched in seven or eight
years (and I won't claim that the server was up to date at that time). I
have mounted the disk with the repo on a new server (Ubuntu 16), but am
having some issues accessing the contents. Here is the repo info:
$ svnadmin info /home/repos
Path: /home/repos
UUID: 8a0b9f2b-ae37-0410-8d94-9d817d00ed75
Repository Format: 3
Compatible With Version: 1.1.0
Filesystem Type: fsfs
Filesystem Format: 1
FSFS Sharded: no
FSFS Logical Addressing: yes
Configuration File: /home/repos/db/fsfs.conf

But if I try to do a checkout of it:
$ svn co file:///home/repos
svn: E125012: Invalid character in hex checksum

And if I try to do the same from my workstation:
$ svn co svn+ssh://svnserver/home/repos
svn: E125012: Invalid character in hex checksum

At least that's consistent. Consequently I went to check the integrity
of the repo:
***@ten:~/convert 791 $ svnadmin verify /home/repos
* Error verifying revision 0.
svnadmin: E200004: Could not convert '/


17' into a number

Well, that does not seem good. So I did some investigation and it
sounded like old versions of repos need to be upgraded to work with the
latest svn clients, and the safe way to do this is to dump and load the
repo, but when I try to do that:
$ svnadmin dump /home/repos > /tmp/repos.dump
* Dumped revision 0.
svnadmin: E160004: Invalid revision footer

I did a lot of searching on these errors as well as looking for
information on accessing old SVN repos to no avail, which seems odd
given that SVN has been around a while now, I would expect more people
to hit these sorts of issues. I am running
$ svn --version
svn, version 1.9.3 (r1718519)
compiled Aug 10 2017, 16:59:15 on x86_64-pc-linux-gnu
on both my server and workstation.

Any thoughts on how I can access this repo? If it looks like something
broken, how about at least accessing the HEAD?

I am not subscribed, so I would appreciate a cc on any responses!

Thanks in advance!
Terry
Stefan Hett
2018-04-10 19:38:20 UTC
Permalink
Hi,
Post by "Zow" Terry Brugger
Good day,
I have a SVN repo that I probably have not touched in seven or eight
years (and I won't claim that the server was up to date at that time).
I have mounted the disk with the repo on a new server (Ubuntu 16), but
$ svnadmin info /home/repos
Path: /home/repos
UUID: 8a0b9f2b-ae37-0410-8d94-9d817d00ed75
Repository Format: 3
Compatible With Version: 1.1.0
Filesystem Type: fsfs
Filesystem Format: 1
FSFS Sharded: no
FSFS Logical Addressing: yes
Configuration File: /home/repos/db/fsfs.conf
This doesn't look quite right to me at first glance... FSFS logical
addressing was added in 1.9 and was certainly not available with format
3 then. That might however just be an issue with the presented output
not being correct rather than pointing to some actual issue.
Post by "Zow" Terry Brugger
$ svn co file:///home/repos
svn: E125012: Invalid character in hex checksum
$ svn co svn+ssh://svnserver/home/repos
svn: E125012: Invalid character in hex checksum
At least that's consistent. Consequently I went to check the integrity
* Error verifying revision 0.
svnadmin: E200004: Could not convert '/
17' into a number
Well, that does not seem good. So I did some investigation and it
sounded like old versions of repos need to be upgraded to work with
the latest svn clients, and the safe way to do this is to dump and
$ svnadmin dump /home/repos > /tmp/repos.dump
* Dumped revision 0.
svnadmin: E160004: Invalid revision footer
I did a lot of searching on these errors as well as looking for
information on accessing old SVN repos to no avail, which seems odd
given that SVN has been around a while now, I would expect more people
to hit these sorts of issues. I am running
$ svn --version
svn, version 1.9.3 (r1718519)
   compiled Aug 10 2017, 16:59:15 on x86_64-pc-linux-gnu
on both my server and workstation.
Any thoughts on how I can access this repo? If it looks like something
broken, how about at least accessing the HEAD?
I am not subscribed, so I would appreciate a cc on any responses!
Thanks in advance!
Terry
I recall there' were some fixes related to some old repositories in 1.10
(which is currently in RC2) but skimming quickly through it I didn't
find a related note in the changelog directly.

Still, maybe worth a shot to see what svnadmin verify reports with the
1.10-version. If you have a windows machine, there's a prebuild 1.10
build available here [1] (disclaimer, I'm the maintainer/developer
behind that one). I'd also have a prebuild 1.10.0-rc2 build lying around
which hasn't been released yet, but I'd be able to make it available to
you, if that helps.

[1] http://www.luke1410.de/typo3/index.php?id=97
--
Regards,
Stefan Hett, Developer/Administrator

EGOSOFT GmbH, Heidestrasse 4, 52146 Würselen, Germany
Tel: +49 2405 4239970, www.egosoft.com
Geschäftsführer: Bernd Lehahn, Handelsregister Aachen HRB 13473
Evgeny Kotkov
2018-04-10 20:08:57 UTC
Permalink
Post by "Zow" Terry Brugger
Any thoughts on how I can access this repo? If it looks like something
broken, how about at least accessing the HEAD?
Subversion 1.9.3 had a bug where it made incorrect assumptions about old
repositories without a "db/format" file. This is the most likely cause for
the errors you're seeing.

This bug has been fixed starting from version 1.9.5, so you might want
to try accessing the repository with a more recent version. Alternatively,
you should be able to use any of the 1.8.x versions, as they didn't have
this bug.

If using a different version is unfeasible for any reason, you can try a
workaround by manually creating a "db/format" file containing "1\n" within
your repository.

Also, please note that dump and load is not required to access your data
(even for old repositories) with newer versions of Subversion, as these
newer versions are fully compatible with all previous repository formats
and can both read and write to them.

Hope this helps!


Regards,
Evgeny Kotkov
"Zow" Terry Brugger
2018-04-11 03:10:04 UTC
Permalink
Post by Evgeny Kotkov
Post by "Zow" Terry Brugger
Any thoughts on how I can access this repo? If it looks like something
broken, how about at least accessing the HEAD?
Subversion 1.9.3 had a bug where it made incorrect assumptions about old
repositories without a "db/format" file. This is the most likely cause for
the errors you're seeing.
This bug has been fixed starting from version 1.9.5, so you might want
to try accessing the repository with a more recent version. Alternatively,
you should be able to use any of the 1.8.x versions, as they didn't have
this bug.
Stefan also suggested a more recent version. I built 1.10.0-rc2 from the
source tarball, the repo now verifies clean, and I am able to perform a
checkout. Based on those data points I believe that should take care of it.

Thank you both for your insight and suggestions!!!

Terry

Loading...