[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Invalid character in hex checksum?

From: Sander Smeenk <ssmeenk_at_freshdot.net>
Date: Thu, 16 Jun 2016 10:51:27 +0200

Hi,

I'm having a challenge with subversion and old(er) repositories.
I'm currently running svn 1.9.3 (r1718519) but the repositories were
created back in june 2006, i'm not sure what the svn version was back
then.

I had an old local checkout which i had to 'upgrade':
| % svn up
| svn: E155036: Please see the 'svn upgrade' command
| svn: E155036: The working copy at '/home/sanders/svn/foo'
| is too old (format 10) to work with client version '1.9.3 (r1718519)'
| (expects format 31). You need to upgrade the working copy first.

So i did:
| % svn upgrade
| Upgraded '.'
| Upgraded 'debian'
| Upgraded 'debian/source'

But the result is that every action afer that results in an obscure error:
| % svn up
| Updating '.':
| svn: E125012: Invalid character in hex checksum

Trying to do a new checkout of the old repository also results in this error message:
| % svn co file:///svnroot/foo newcheckout
| svn: E125012: Invalid character in hex checksum

The issue 'thus' lies in the repository itself. Not the checkout.

Posts found on Google suggested that doing an 'svnadmin dump' with an
older version of svn, and 'svnadmin load'-ing that on a new svn system,
essentially recreating the repostory from scratch, helps recover from
this situation which is indeed true.
This is all nice if a repo has a few commits but, as one might
imagine, a repo from 2006 has a gazillion of commits. The one i'm
testing with is really small, but i also have a repo that's 28GB on
disk and i don't really feel like dumping and loading that.

So i tried 'svnadmin recover' with the 1.9.3 client on the old repo:
| % svnadmin recover /svnroot/foo
| Repository lock acquired.
| Please wait; recovering the repository may take some time...
| svnadmin: E200004: Could not convert '/
|
|
| 17' into a number

No dice.

Then tried 'svnadmin upgrade' with the 1.9.3 client on the old repo:
| % svnadmin upgrade /svnroot/foo
| Repository lock acquired.
| Please wait; upgrading the repository may take some time...
| Bumped repository format to 7
|
| Upgrade completed.

Looks good. Tried a new checkout w/ 1.9.3:
| % svn co file:///svnroot/foo herp
| svn: E170013: Unable to connect to a repository at URL 'file:///svnroot/foo'
| svn: E180001: Unable to open repository 'file:///svnroot/foo'
| svn: E125006: '/svnroot/foo/db/format' specifies logical addressing for a non-sharded repository

No dice.

[ .. Some time passes while i google this 'logical addressing' thing .. ]

Someone[1] hacked 'addressing logical' from the /svnroot/foo/db/format file.
As did i. Things are now working.

Pfoo. I'd have to test this extensively with the 28GB repository.

I fear that running 'svnadmin upgrade' on the repositories will break
compatibiltiy with older (though not 2006-old) SVN-clients and i don't
like messing with 'addressing logical' in repository files as i have NO
idea what this means at all.

Can anyone explain to me what is going on?

Thx,
-Sander.

[1] https://cygwin.com/ml/cygwin/2015-09/msg00361.html

-- 
| I wish i was a glow worm, a glow worm's never glum.
| How can you be unhappy when the sun shines out your bum!
| 4096R/20CC6CD2 - 6D40 1A20 B9AA 87D4 84C7  FBD6 F3A9 9442 20CC 6CD2
Received on 2016-06-16 10:51:35 CEST

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.