Re: Dealing with very old repo format (version 1)

2015-04-28 Thread Joseph Bruni
> On Apr 28, 2015, at 2:03 PM, Andrew Reedick  wrote:
> 
> Does anyone have any tips on how to upgrade a very old repo?  The db/format 
> lists "1".  A 1.8 svn client cannot hotcopy, dump or "svnadmin upgrade" such 
> an old repo, all of which fail with "svnadmin: E720002: Can't open file 
> 'devel\db\current': The system cannot find the file specified."
> 
> Do I need find a really old svn client (1.3?) and upgrade?  Do I need to 
> manually create the db/current file?
> 
> 
> Supposedly , a format of "1" is from pre-svn 1.0.  
> https://svn.apache.org/repos/asf/subversion/trunk/subversion/libsvn_repos/repos.h
>  -> "Formats 0, 1 and 2 were pre-1.0."  
> 

Hi Andrew,

I'm guessing your old format was built using the BerkeleyDB backend since many 
of the earlist repos defaulted to BDB until FSFS came around. If you build your 
svn with BDB, does it still complain?

Regards,
joseph




RE: Dealing with very old repo format (version 1)

2015-04-28 Thread Bert Huijben


> -Original Message-
> From: Andrew Reedick [mailto:jreed...@incomm.com]
> Sent: dinsdag 28 april 2015 23:03
> To: users@subversion.apache.org
> Subject: Dealing with very old repo format (version 1)
> 
> Does anyone have any tips on how to upgrade a very old repo?  The
db/format
> lists "1".  A 1.8 svn client cannot hotcopy, dump or "svnadmin upgrade"
such an
> old repo, all of which fail with "svnadmin: E720002: Can't open file
> 'devel\db\current': The system cannot find the file specified."
> 
> Do I need find a really old svn client (1.3?) and upgrade?  Do I need to
manually
> create the db/current file?
> 
> 
> Supposedly , a format of "1" is from pre-svn 1.0.
>
https://svn.apache.org/repos/asf/subversion/trunk/subversion/libsvn_repos/re
p
> os.h -> "Formats 0, 1 and 2 were pre-1.0."

There are repository versions and database versions (format files are in
repos/ and repos/db/). It looks like he is talking about the db format,
which is documented in the filesystem backends.

Bert 




RE: Dealing with very old repo format (version 1)

2015-04-28 Thread Andrew Reedick
> -Original Message-
> From: Joseph Bruni [mailto:jbr...@icloud.com] 
> Sent: Tuesday, April 28, 2015 5:09 PM
> To: Andrew Reedick
> Cc: users@subversion.apache.org
> Subject: Re: Dealing with very old repo format (version 1)
>
> > On Apr 28, 2015, at 2:03 PM, Andrew Reedick  wrote:
> > 
> > Does anyone have any tips on how to upgrade a very old repo?  The db/format 
> > lists "1".  A 1.8 svn client cannot hotcopy, dump or "svnadmin upgrade" 
> > such an old repo, all of which fail with "svnadmin: > E720002: Can't open 
> > file 'devel\db\current': The system cannot find the file specified."
> > 
> > Do I need find a really old svn client (1.3?) and upgrade?  Do I need to 
> > manually create the db/current file?
> > 
> > 
> > Supposedly , a format of "1" is from pre-svn 1.0.  
> > https://svn.apache.org/repos/asf/subversion/trunk/subversion/libsvn_repos/repos.h
> >  -> "Formats 0, 1 and 2 were pre-1.0."  
> > 
>
> Hi Andrew,
>
> I'm guessing your old format was built using the BerkeleyDB backend since 
> many of the earlist repos defaulted to BDB until FSFS came around. If you 
> build your svn with BDB, does it still complain?
>

Forgot to mention, "db\fs-type" is "fsfs" so BDB isn't (shouldn't) be an issuse.

On the plus side, I found some ancient installers:  
http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=469&expandFolder=469&folderID=11149
  





RE: Dealing with very old repo format (version 1)

2015-04-28 Thread Andrew Reedick


> -Original Message-
> From: Andrew Reedick [mailto:jreed...@incomm.com] 
>
> > > On Apr 28, 2015, at 2:03 PM, Andrew Reedick  wrote:
> > > 
> > > Does anyone have any tips on how to upgrade a very old repo?  The 
> > > db/format lists "1".  A 1.8 svn client cannot hotcopy, dump or "svnadmin 
> > > upgrade" such an old repo, all of which fail with "svnadmin: > E720002: 
> > > Can't open file 'devel\db\current': The system cannot find the file 
> > > specified."
> > > 
> > > Do I need find a really old svn client (1.3?) and upgrade?  Do I need to 
> > > manually create the db/current file?
> > > 
> > > 
> > > Supposedly , a format of "1" is from pre-svn 1.0.  
> > > https://svn.apache.org/repos/asf/subversion/trunk/subversion/libsvn_repos/repos.h
> > >  -> "Formats 0, 1 and 2 were pre-1.0."  
> > > 
> >
> > Hi Andrew,
> >
> > I'm guessing your old format was built using the BerkeleyDB backend since 
> > many of the earlist repos defaulted to BDB until FSFS came around. If you 
> > build your svn with BDB, does it still complain?
> >
>
> Forgot to mention, "db\fs-type" is "fsfs" so BDB isn't (shouldn't) be an 
> issuse.
>
> On the plus side, I found some ancient installers:  
> http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=469&expandFolder=469&folderID=11149
>   

Looks like the "fsfs" type was introduced in 1.1.  However, a 1.1.4 client 
fails with 
svn: Can't open file 'devel/db/current': The system cannot find the 
file specified.

And the 1.0.9 client fails with
svn: Berkeley DB error while opening 'nodes' table for filesystem devel 
- Copy/db:
No such file or directory

Looks like I need  a bigger hammer.




Re: Dealing with very old repo format (version 1)

2015-04-28 Thread Nico Kadel-Garcia
On Tue, Apr 28, 2015 at 5:03 PM, Andrew Reedick  wrote:
> Does anyone have any tips on how to upgrade a very old repo?  The db/format 
> lists "1".  A 1.8 svn client cannot hotcopy, dump or "svnadmin upgrade" such 
> an old repo, all of which fail with "svnadmin: E720002: Can't open file 
> 'devel\db\current': The system cannot find the file specified."
>
> Do I need find a really old svn client (1.3?) and upgrade?  Do I need to 
> manually create the db/current file?
>
>
> Supposedly , a format of "1" is from pre-svn 1.0.  
> https://svn.apache.org/repos/asf/subversion/trunk/subversion/libsvn_repos/repos.h
>  -> "Formats 0, 1 and 2 were pre-1.0."

Why can't you do a fresh working copy, and copy all files except those
in '.svn' subdirectories?


Re: Dealing with very old repo format (version 1)

2015-04-28 Thread Branko Čibej
On 28.04.2015 23:03, Andrew Reedick wrote:
> Does anyone have any tips on how to upgrade a very old repo?  The db/format 
> lists "1".  A 1.8 svn client cannot hotcopy, dump or "svnadmin upgrade" such 
> an old repo, all of which fail with "svnadmin: E720002: Can't open file 
> 'devel\db\current': The system cannot find the file specified."
>
> Do I need find a really old svn client (1.3?) and upgrade?  Do I need to 
> manually create the db/current file?
>
>
> Supposedly , a format of "1" is from pre-svn 1.0.  
> https://svn.apache.org/repos/asf/subversion/trunk/subversion/libsvn_repos/repos.h
>  -> "Formats 0, 1 and 2 were pre-1.0."  

Are we talking about the repository format or the FSFS format here? If
/db/fs-type says "fsfs" then the repository format
(/format) is probably 3 and you're talking about
/db/format, yes? The distinction is important.

In any case, 1.8 /should/ be able to dump an FSFSv1 repository, and the
/db/current file should exists; it's been around since FSFSv1.
You can try recreating it; the format is described here:

https://svn.apache.org/repos/asf/subversion/trunk/subversion/libsvn_fs_fs/structure

To find the youngest revision, look for the highest-numered file in
/db/revs. If you're just going to dump the repository, it should
be safe to set the next-node-id and next-copy-id to some large number,
say 99; but I wouldn't recommend trying to commit to the repository.

Please report if the above works or I'm just talking through my hat. :)

-- Brane


Re: Dealing with very old repo format (version 1)

2015-04-28 Thread Branko Čibej
On 29.04.2015 05:09, Nico Kadel-Garcia wrote:
> On Tue, Apr 28, 2015 at 5:03 PM, Andrew Reedick  wrote:
>> Does anyone have any tips on how to upgrade a very old repo?  The db/format 
>> lists "1".  A 1.8 svn client cannot hotcopy, dump or "svnadmin upgrade" such 
>> an old repo, all of which fail with "svnadmin: E720002: Can't open file 
>> 'devel\db\current': The system cannot find the file specified."
>>
>> Do I need find a really old svn client (1.3?) and upgrade?  Do I need to 
>> manually create the db/current file?
>>
>>
>> Supposedly , a format of "1" is from pre-svn 1.0.  
>> https://svn.apache.org/repos/asf/subversion/trunk/subversion/libsvn_repos/repos.h
>>  -> "Formats 0, 1 and 2 were pre-1.0."
> Why can't you do a fresh working copy, and copy all files except those
> in '.svn' subdirectories?

Without db/current, he can't perform a checkout, and if he could and
just copied the file, he'd be throwing away all history.

-- Brane


Re: Dealing with very old repo format (version 1)

2015-04-29 Thread Nico Kadel-Garcia
On Wed, Apr 29, 2015 at 12:03 AM, Branko Čibej  wrote:
> On 29.04.2015 05:09, Nico Kadel-Garcia wrote:
>> On Tue, Apr 28, 2015 at 5:03 PM, Andrew Reedick  wrote:
>>> Does anyone have any tips on how to upgrade a very old repo?  The db/format 
>>> lists "1".  A 1.8 svn client cannot hotcopy, dump or "svnadmin upgrade" 
>>> such an old repo, all of which fail with "svnadmin: E720002: Can't open 
>>> file 'devel\db\current': The system cannot find the file specified."
>>>
>>> Do I need find a really old svn client (1.3?) and upgrade?  Do I need to 
>>> manually create the db/current file?
>>>
>>>
>>> Supposedly , a format of "1" is from pre-svn 1.0.  
>>> https://svn.apache.org/repos/asf/subversion/trunk/subversion/libsvn_repos/repos.h
>>>  -> "Formats 0, 1 and 2 were pre-1.0."
>> Why can't you do a fresh working copy, and copy all files except those
>> in '.svn' subdirectories?
>
> Without db/current, he can't perform a checkout, and if he could and
> just copied the file, he'd be throwing away all history.

What? "hotcopy", "dump", and "svnadmin upgrade" are all operations on
the repository itself. The database *of the repository* is irrelevant
to fresh checkouts, as long as they can speak any relevant network
protocols associated with the old service. And heck, if you need to
pull logic this way, use 'git-svn' to pull it into a git repository
and push it back to a new, clean, Subversion repository.

Unless, Andrew? Do you not have any network based service associated
with the old repository?


Re: Dealing with very old repo format (version 1)

2015-04-29 Thread Branko Čibej
On 29.04.2015 07:14, Nico Kadel-Garcia wrote:
> On Wed, Apr 29, 2015 at 12:03 AM, Branko Čibej  wrote:
>> On 29.04.2015 05:09, Nico Kadel-Garcia wrote:
>>> On Tue, Apr 28, 2015 at 5:03 PM, Andrew Reedick  wrote:
 Does anyone have any tips on how to upgrade a very old repo?  The 
 db/format lists "1".  A 1.8 svn client cannot hotcopy, dump or "svnadmin 
 upgrade" such an old repo, all of which fail with "svnadmin: E720002: 
 Can't open file 'devel\db\current': The system cannot find the file 
 specified."

 Do I need find a really old svn client (1.3?) and upgrade?  Do I need to 
 manually create the db/current file?


 Supposedly , a format of "1" is from pre-svn 1.0.  
 https://svn.apache.org/repos/asf/subversion/trunk/subversion/libsvn_repos/repos.h
  -> "Formats 0, 1 and 2 were pre-1.0."
>>> Why can't you do a fresh working copy, and copy all files except those
>>> in '.svn' subdirectories?
>> Without db/current, he can't perform a checkout, and if he could and
>> just copied the file, he'd be throwing away all history.
> What? "hotcopy", "dump", and "svnadmin upgrade" are all operations on
> the repository itself. The database *of the repository* is irrelevant
> to fresh checkouts, as long as they can speak any relevant network
> protocols associated with the old service.


You proposed copying "all files except those in .svn directories" from a
fresh checkout. This implies actually doing a checkout, which you can't
do if your repository is corrupt, and it's corrupt if it's a FSFS repo
without a db/current file. It's irrelevant whether you're doing a
checkout from a local repository or over the network or via git-svn or
whatever.

-- Brane



Re: Dealing with very old repo format (version 1)

2015-04-29 Thread Philip Martin
Branko Čibej  writes:

> In any case, 1.8 /should/ be able to dump an FSFSv1 repository, and the
> /db/current file should exists; it's been around since FSFSv1.
> You can try recreating it; the format is described here:
>
> https://svn.apache.org/repos/asf/subversion/trunk/subversion/libsvn_fs_fs/structure

Running 'svnadmin recover' should recreate the missing file.

-- 
Philip Martin | Subversion Committer
WANdisco // *Non-Stop Data*


Re: Dealing with very old repo format (version 1)

2015-04-29 Thread Nico Kadel-Garcia
On Wed, Apr 29, 2015 at 1:32 AM, Branko Čibej  wrote:
> On 29.04.2015 07:14, Nico Kadel-Garcia wrote:
>> On Wed, Apr 29, 2015 at 12:03 AM, Branko Čibej  wrote:
>>> On 29.04.2015 05:09, Nico Kadel-Garcia wrote:
 On Tue, Apr 28, 2015 at 5:03 PM, Andrew Reedick  
 wrote:
> Does anyone have any tips on how to upgrade a very old repo?  The 
> db/format lists "1".  A 1.8 svn client cannot hotcopy, dump or "svnadmin 
> upgrade" such an old repo, all of which fail with "svnadmin: E720002: 
> Can't open file 'devel\db\current': The system cannot find the file 
> specified."
>
> Do I need find a really old svn client (1.3?) and upgrade?  Do I need to 
> manually create the db/current file?
>
>
> Supposedly , a format of "1" is from pre-svn 1.0.  
> https://svn.apache.org/repos/asf/subversion/trunk/subversion/libsvn_repos/repos.h
>  -> "Formats 0, 1 and 2 were pre-1.0."
 Why can't you do a fresh working copy, and copy all files except those
 in '.svn' subdirectories?
>>> Without db/current, he can't perform a checkout, and if he could and
>>> just copied the file, he'd be throwing away all history.
>>
>> What? "hotcopy", "dump", and "svnadmin upgrade" are all operations on
>> the repository itself. The database *of the repository* is irrelevant
>> to fresh checkouts, as long as they can speak any relevant network
>> protocols associated with the old service.
>
> You proposed copying "all files except those in .svn directories" from a
> fresh checkout. This implies actually doing a checkout, which you can't
> do if your repository is corrupt, and it's corrupt if it's a FSFS repo
> without a db/current file. It's irrelevant whether you're doing a
> checkout from a local repository or over the network or via git-svn or
> whatever.

I was assuming his core problem was the age of the repository and
finding compatible server side tools to help with the upgrade. I also
admit, myself, that when migrating old repositories, I could generally
not care less about the history, which has often become quite
cluttered with old mistakes and accidental binary commits.

If it's genuinely corrupt, that's a distinct issue from "all my
current tools are unable to read such an old repository", which is
what it sounded like. I'll be curious to see if Philip Martin's
suggestion to use 'svnadmin recover' helps out with that.

I'd also make *absolutely sure* to use "rsync -a" or "cp -a" on Linux
systems to copy the repository somewhere else, and only touch the
*copy*, until this is straightened out.


RE: Dealing with very old repo format (version 1)

2015-04-29 Thread Andrew Reedick

> -Original Message-
> From: Branko Čibej [mailto:br...@wandisco.com] 

> Are we talking about the repository format or the FSFS format here? If 
> /db/fs-type says "fsfs" then the repository format
> (/format) is probably 3 and you're talking about /db/format, 
> yes? The distinction is important.

Yes, I'm referring to db/* files.
$ more format  fs-type
::
format
::
1
::
fs-type
::
fsfs

>
> In any case, 1.8 /should/ be able to dump an FSFSv1 repository, and the 
> /db/current file should exists; it's been around since FSFSv1.
> You can try recreating it; the format is described here:
>
> https://svn.apache.org/repos/asf/subversion/trunk/subversion/libsvn_fs_fs/structure
>
> To find the youngest revision, look for the highest-numered file in 
> /db/revs. If you're just going to dump the repository, it should be 
> safe to set the next-node-id and next-copy-id to some large number, say 
> 99; but I wouldn't recommend trying to commit to the repository.
>
> Please report if the above works or I'm just talking through my hat. :)
>
> -- Brane

Good News:  Recreating the db/current file worked in that it allowed 'svnadmin 
dump' to run.  

Bad News:  However, it seems that I have bigger issues:
* Dumped revision 109662.
svnadmin: E720002: Can't open file 'devel_copy\db\revprops\109663': The 
system cannot find the file specified.

When I sort the files in db/revs numerically, I see gaps in the revs:
109661
109662
109668
109734
...
109735
157939
157940
157941
159433 
159607 
160600 
160601
162409
And 'ls | wc -l' in dev/revs shows that there are 141,768 files, but the 
highest rev in db/revs is 162409...

*sigh*  I guess I can try piecemeal dumps.

Thanks for the help everyone, but I'm thinking my missing db/current file is a 
symptom of the repo being mangled (probably due to inadequate backup procedures 
or a bad restore from tape.   Rev 1 is from 2006, and the repo was just around 
for reference so no real worries.) 




Re: Dealing with very old repo format (version 1)

2015-04-29 Thread Philip Martin
Andrew Reedick  writes:

> Bad News:  However, it seems that I have bigger issues:
>   * Dumped revision 109662.
>   svnadmin: E720002: Can't open file
> 'devel_copy\db\revprops\109663': The system cannot find the file
> specified.
>
> When I sort the files in db/revs numerically, I see gaps in the revs:
>   109661
>   109662
>   109668
>   109734
>   ...
>   109735
>   157939
>   157940
>   157941
>   159433 
>   159607 
>   160600 
>   160601
>   162409
> And 'ls | wc -l' in dev/revs shows that there are 141,768 files, but
> the highest rev in db/revs is 162409...

You can replace a missing revprop file with a file containing a single
line:

END

There is not much you can do replace missing revision files so this may
not help you.

-- 
Philip Martin | Subversion Committer
WANdisco // *Non-Stop Data*


Re: Dealing with very old repo format (version 1)

2015-04-29 Thread Daniel Shahaf
[snipping the part about db/revs, this is only about db/revprops]

Philip Martin wrote on Wed, Apr 29, 2015 at 18:53:04 +0100:
> Andrew Reedick  writes:
> 
> > Bad News:  However, it seems that I have bigger issues:
> > * Dumped revision 109662.
> > svnadmin: E720002: Can't open file
> > 'devel_copy\db\revprops\109663': The system cannot find the file
> > specified.
> 
> You can replace a missing revprop file with a file containing a single
> line:
> 
> END
> 

The file must be exactly four bytes long and must end with an LF
character (0x0A).  In particular, just using 'echo END > foo' will work
*on unix* but not on windows.

Daniel


Re: Dealing with very old repo format (version 1)

2015-04-29 Thread Daniel Shahaf
For future reference: if svnadmin is version 1.9 or newer, it should
have the 'info' subcommand, which will display both the repository
format and the FS format.

http://subversion.apache.org/docs/release-notes/1.9#svnadmin-info

Daniel
(1.9 hasn't been released yet, as of this writing)

Andrew Reedick wrote on Tue, Apr 28, 2015 at 21:03:12 +:
> Does anyone have any tips on how to upgrade a very old repo?  The db/format 
> lists "1".  A 1.8 svn client cannot hotcopy, dump or "svnadmin upgrade" such 
> an old repo, all of which fail with "svnadmin: E720002: Can't open file 
> 'devel\db\current': The system cannot find the file specified."
> 
> Do I need find a really old svn client (1.3?) and upgrade?  Do I need to 
> manually create the db/current file?
> 
> 
> Supposedly , a format of "1" is from pre-svn 1.0.  
> https://svn.apache.org/repos/asf/subversion/trunk/subversion/libsvn_repos/repos.h
>  -> "Formats 0, 1 and 2 were pre-1.0."  
> 
> 
>