Re: Dealing with very old repo format (version 1)
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." > > >
Re: Dealing with very old repo format (version 1)
[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)
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)
> -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)
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)
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)
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)
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)
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)
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)
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)
> -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)
> -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)
> -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)
> 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
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/repos.h -> "Formats 0, 1 and 2 were pre-1.0."