As announced two weeks ago, I am going to migrate the Jaybird code from 
CVS to Subversion in 1 hour.

This migration will take place between 12:00 to 16:00 UTC (14:00 to 
18:00 CEST); this mail is sent around 11:00 UTC. During the migration 
the subversion repository is not available for commits*.

There is one deviation from the migrationplan below: the 
cvs2svn-specific commits (eg for tags) will not contain a username after 
all.

*) I am not sure if SourceForge will actually make the repository 
unavailable, but any commits during the migration will be lost.

Mark Rotteveel

On 22-7-2012 15:25, Mark Rotteveel wrote:
> I finished the instructions and tested them (except for the
> sourceforge-specific parts) on a local copy of the Firebird-repository.
> See below. For now I have assumed to use my own username for cvs2svn
> specific revisions.
>
> During the import the repository is not available for commits. The
> creation of the dumpfile is can be done in advance, assuming no further
> checkins happen to the client-java module in CVS.
>
> I guess that the migration will take 1 to 2 hours, assuming I use rsync
> to update the backup of the svn repository on my machine instead of a
> full new backup (1-2 minutes to update between yesterday and today,
> about 1.5 hours for a new, full rsync).
> There however is uncertainty on the amount of time that copying the
> repository for edit (step 3b) and saving it back (step 5a) will take and
> how fast loading the dumpfile into the repository is on sourceforge
> (step 4; this takes about 5 minutes on my machine).
>
> The timetable for this would be:
> T - 1 hour     : reminder to firebird-devel about migration
> T - 5 minutes  : announcement to firebird-devel that migration starts,
> no more subversion commits from this time.
> T + 0          : Backup repository (step 1)
> T + 5 minutes  : Create client-java folder (step 2)
> T + 6 minutes  : Upload jaybirddump.zip to sourceforge and unzip (step 3a)
> T + 15 minutes : Checkout repository (step 3b)
> T + 45 minutes : Load dumpfile into repository (step 4)
> T + 75 minutes : Save repository back (step 5a)
> T + 105 minutes: Migration done, sanity checks on repository (eg browse,
> checkout)
> T + 110 minutes: announcement to firebird-devel, subversion commits
> allowed again
>
> Note: I have assumed 30 minutes for each step with uncertainty in time,
> if things go faster, then the repository will simply be available
> sooner. However we probably should factor in an additional two hours
> just to be on the safe side.
>
> I propose to do this migration on Sunday 2012-08-05 (August fifth)
> between 12:00 and 16:00 UTC (14:00 and 18:00 Central European Summer
> Time), as it seems that Sundays are usually pretty low on commits.
>
> Rollback before step 5a will consist of simply calling adminrepo --discard.
>
> Rollback after step 5a consists of me generating a dumpfile based on the
> backup and recreating and reloading the repository using the
> instructions on
> http://sourceforge.net/apps/trac/sourceforge/wiki/SVN%20adminrepo#Importingthedumpfile
> Given the size of the repository that rollback scenario would probably
> take several hours.
>
> Steps to import Jaybird into Subversion
> =======================================
>
> Instructions based on Windows and Cygwin with folder /repomigration for
> various backups and files.
> Migration uses trunk version of cvs2svn from cvs2svn.tigris.org (and not
> the cygwin version) to solve problems with linebreaks(?) in log texts.
>
> Create the dumpfile from CVS
> ----------------------------
>
> To prevent conflict with local (Windows) python:
>       unset PYTHONHOME
>
> 1) backup the entire CVS repository using rsync: (execute from folder
> /repomigration/cvsrepo)
>       rsync -av firebird.cvs.sourceforge.net::cvsroot/firebird/* .
> 2) Create dumpfile
>       /repomigration/cvs2svn-trunk/cvs2svn --username=mrotteveel
> --auto-props=/repomigration/svn-eol-style.txt
> --mime-types=/repomigration/mime.types -–eol-from-mime-type
> --dumpfile=/repomigration/jaybirddump /repomigration/cvsrepo/client-java
>
> svn-eol-style.txt:    http://www.apache.org/dev/svn-eol-style.txt
> mime.types:   
> http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types
>
> Import the dumpfile into SVN
> ----------------------------
>
> Note: during import, no commits can be made by other users
>
> 1) Backup the SVN repository using rsync: (execute from folder
> /repomigration/svnrepo)
>       rsync -av firebird.svn.sourceforge.net::svn/firebird/* .
> 2) Create client-java folder in the subversion repository (eg using
> TortoiseSVN) or commandline:
>       svn mkdir -m "Create repository-folder for Jaybird (Firebird JDBC)"
> https://firebird.svn.sourceforge.net/svnroot/firebird/client-java
> 3) <sourceforge specifics (upload dumpfile, retrieve repository)
> 3a) Upload zipped dumpfile and unzip:
>       Use sf-help to find out the shell session and host info for sftp to
> connect to
>       Use sftp (or WinSCP) to upload the dumpfile (to
> /home/project-web/firebird/htdocs as that seems to be the only writable
> location according to most sources)
> 3b) Checkout repository for edit into /svnroot/firebird:
>       adminrepo --checkout svn
> 4) Load dump into repository into folder client-java:
>       svnadmin load --parent-dir client-java /svnroot/firebird < jaybirddump
> 5) <sourceforge specifics (save repository)
> 5a) Save checkedout repository back:
>       adminrepo --save svn
>
> Not saving changes:
>       adminrepo --discard
>
> References:
> http://cvs2svn.tigris.org/cvs2svn.html
> http://sourceforge.net/apps/trac/sourceforge/wiki/Using%20rsync%20for%20backups
> http://sourceforge.net/apps/trac/sourceforge/wiki/SVN%20adminrepo#ImportingfromotherreposincludingotherSCMs
> http://sourceforge.net/apps/trac/sourceforge/wiki/Shell%20service#Accessingyourshellwithothertools
>


-- 
Mark Rotteveel

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to