You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Mike George <mi...@mail.georgetech.com> on 2002/10/29 14:28:10 UTC

Need advice on upgrading

Hello,

I've been putting off upgrading for a _really_ long time, and now I'm stuck.  I'm currently using the subversion-0.8.0-1271 rpm that I got off the subversion site some time ago.  I'd like to upgrade now, but unfortunately that version doesn't have svnadmin dump.  Whats the best way to handle the upgrade?

--Mike

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Need advice on upgrading

Posted by cm...@collab.net.
Ben Collins-Sussman <su...@collab.net> writes:

> "Mike George" <mi...@mail.georgetech.com> writes:
> 
> > Hello,
> > 
> > I've been putting off upgrading for a _really_ long time, and now
> > I'm stuck.  I'm currently using the subversion-0.8.0-1271 rpm that I
> > got off the subversion site some time ago.  I'd like to upgrade now,
> > but unfortunately that version doesn't have svnadmin dump.  Whats
> > the best way to handle the upgrade?
> 
> My friend, you have quite a bit of dumping and loading in your
> future.  :-)
> 
> Go to the "file sharing" area of the svn website, and click on the
> 'source tarballs' section.
> 
> You'll need to download the 2092g, 2402d, 3200 sourceballs.
> [...]

I haven't tried this, but I'm wondering what the results would be...

Depending on the size of your repository, it might be easier just to
do something like:

   #!/usr/bin/perl
   
   $repos = 'svn-logos';
   $dump_data_dir = '/tmp/dump';
   $svnlook_cmd = 'svnlook';
   $svnadmin_cmd = 'svnadmin';
   
   mkdir($dump_data_dir);
   $youngest = `$svnadmin_cmd youngest $repos`;
   for ($rev = 1; $rev <= $youngest; $rev++)
   {
       print "Dumping patches and meta-data for revision $rev...";
       `$svnlook_cmd $repos author rev $rev > $dump_data_dir/rev_author.$rev`;
       `$svnlook_cmd $repos log    rev $rev > $dump_data_dir/rev_log.$rev`;
       `$svnlook_cmd $repos date   rev $rev > $dump_data_dir/rev_date.$rev`;
       `$svnlook_cmd $repos diff   rev $rev > $dump_data_dir/rev_diff.$rev`;
       print "done.\n"
   }
 
Then upgrade to the latest Subversion, create a new repository, check
out that repository, and apply each of your patches (rev_diff.$i) in
succession to your new working copy.  You can commit them with an
empty log message or something.  Then, you can use `svn propset -r REV
-F FILE` to set the author, log, and date for each of your revisions,
using the appropriate property-value-containing files you created
above.

Now, you'll have the massage the patches a little bit -- hand applying
any property changes, and adding/removing files and dirs by hand,
but...  I dunno, may be worth a try, if you think it'll be faster than
compiling 4 more versions of Subversion, plus 4 dumps and 4 loads.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Need advice on upgrading

Posted by Ben Collins-Sussman <su...@collab.net>.
"Mike George" <mi...@mail.georgetech.com> writes:

> Hello,
> 
> I've been putting off upgrading for a _really_ long time, and now
> I'm stuck.  I'm currently using the subversion-0.8.0-1271 rpm that I
> got off the subversion site some time ago.  I'd like to upgrade now,
> but unfortunately that version doesn't have svnadmin dump.  Whats
> the best way to handle the upgrade?

My friend, you have quite a bit of dumping and loading in your
future.  :-)

Go to the "file sharing" area of the svn website, and click on the
'source tarballs' section.

You'll need to download the 2092g, 2402d, 3200 sourceballs.

Build each sourceball with --disable-shared, and set each statically
linked 'svnadmin' binary aside.

Use the 2092g svnadmin to 'svnadmin dump' your repository.

Use the 2402d svnadmin to 'svnadmin load' into a new repository.

Use the 2402d svnadmin to 'svnadmin dump' the new repository.

Use the 3200 svnadmin to 'svnadmin load' into an even newer repository.

Have fun!

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org