Re: Subversion on container



On Mon, 2005-06-20 at 11:39 +0700, Ross Golder wrote:
> On จ., 2005-06-20 at 03:46 +1000, Jeff Waugh wrote:
> > Hi,
> > 
> > Could the sysadmin team please investigate the creation of a Subversion repo


Some things the sysadmin team might want to know when doing convertions:

This is the procedure I used to migrate several of our company CVS
repositories for some of our huge Java projects to Subversion. With huge
I mean up to 160M in size (and +50 tags and 15 branches on average).

Note that those Java guys often put .jar files in CVS (-kb). Also those
got migrated to SVN perfectly (so we also tested binary files).


# mkdir /root/playground/
# cp -a /cvsroot/CVSROOT /root/playground/
# cp -a /cvsroot/PROJECT /root/playground/
# mkdir /root/svndump
# cd /root/svndump
# cvs2svn --dump-only /root/playground/PROJECT/
# svnadmin create /var/lib/svn/gnome/PROJECT
# svnadmin load /var/lib/svn/gnome/PROJECT < cvs2svn-dump
# chown www-data.www-data /var/lib/svn/gnome/PROJECT/* -R
# chown www-data.www-data /var/lib/svn/gnome/PROJECT
# cd ..
# rm -rf /root/svndump

cp -a /cvsroot/CVSROOT /root/playground/

for PROJECT in /cvsroot
do
   mkdir /root/playground/
   cp -a /cvsroot/$PROJECT /root/playground/
   mkdir /root/svndump
   cd /root/svndump
     cvs2svn --dump-only /root/playground/$PROJECT/
     svnadmin create /var/lib/svn/gnome/$PROJECT
     svnadmin load /var/lib/svn/gnome/$PROJECT < cvs2svn-dump
     chown www-data.www-data /var/lib/svn/gnome/$PROJECT/* -R
     chown www-data.www-data /var/lib/svn/gnome/$PROJECT
   cd ..
   rm -rf /root/svndump
   rm -rf /root/playground/$PROJECT
done

> One repo? I was considering having one Subversion repo per CVS module.

Right, you really really really want one Subversion repo per CVS module.

> I installed Subversion etc on container already, and started playing
> with cvs2svn on a small cross-section of modules. I chose the 'test'
> module (<1Mb of raw CVS), 'gtranslator' (IIRC, about ~20Mb) and
> 'evolution' (huge!). I ran cvs2svn on each module and obtained the
> '.dump' files you see in /svn/gnome, which were used to create the
> repositories there.


> There were several warnings/errors on importing the larger two modules,
> mostly due to tags and branches with conflicting names etc. The output
> of 'cvs2svn' for each can also be found in /svn/gnome. I've copied them
> here for people to see:

We've had conflicts while running cvs2svn on removed files in .Attic. We
solved this by simply removing the RCS files. I can, however, imagine
this wouldn't be a desirable solution for GNOME.

> > None of the existing scripts seem to be particularly good for migration of
> > long-running projects like ours, but I've heard reports that the cut-and-run
> > approach [1] has annoyed projects after migration (such as Samba). We'll
> > have to figure out which path suits us better, and the only way we're ever
> > going to get traction on this is to test it out.
> 
> I think it would be a great shame to lose the history. There's no real
> urgency to switch to Subversion, so let's spend a little time ironing
> out any problems involved in importing the complete history, so we can
> still do a 'svn log' with some degree of certainty, and any new
> SVN-based viewcvs will give the full picture etc.


At our company, we didn't loose "any" history when doing the conversion
of CVS to SVN using te latest cvs2svn. Or projects used branches AND
tags heavily. It looks like both tags and branches where converted to
"SVN branches": copies of trunk.


-- 
Philip Van Hoof, software developer at x-tend 
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
work: vanhoof at x-tend dot be 
http://www.pvanhoof.be - http://www.x-tend.be




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]