Open Design and Integration Environment

Update of "Converting CVS to Fossil"
Login
Bounty program for improvements to Tcl and certain Tcl packages.
Tcl 2018 Conference, Houston/TX, US, Oct 15-19
Send your abstracts to tclconference@googlegroups.com or submit via the online form
by Aug 20.

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview

Artifact ID: 798120516f681aa75d6b70ec5929cf1da54c98db
Page Name:Converting CVS to Fossil
Date: 2013-12-08 11:51:23
Original User: hypnotoad
Parent: a616a1545491a84191ca79de23054ac01ca1d2e3
Content

The procedure for migrating from CVS to Fossil requires an intermediary step through GIT. The process used by ODIE was originally described by Vince West Here.

The script used is as follows:

#!/bin/bash

die(){
        echo $1
        exit 1
}

# parameters:
# 1 - username of admin
# 2 - cvs repository to convert
# 3 - module in cvs to convert
# 4 - name of fossil repo (no extension)
# note: the repository will be created right here!

if [ "$4" == "" ]
then
        echo "Syntax:"
        echo " cvs2fossil username  cvsroot module fossil-repo-name"
        die  "Please make sure you have all three parameters set!"
fi

echo "Importing from CVS to git.  This will take some time, be patient!"
mkdir $4
cd $4
cvs -d $2 login
git cvsimport -v -d $2 $3 || die "Unable to import to git"

echo "Importing from git to fossil.  This will also take some time, sadly"

(
git fast-export --full-tree --all | fossil import --git ../$4.fossil || die "Unable to import into fossil"
)

echo "Done!."
fossil user new $1 -R ../$4.fossil
fossil user capabilities $1 'v' -R ../$4.fossil

In the end you well have a directory with the name of argument4 (containing the git repository) and a file called argument4.fossil with the new fossil repository.

Example:

sh cvs2fossilnew hypnotoad :pserver:anonymous@tls.cvs.sourceforge.net:/cvsroot/tls tls tls
* Prompts for CVS Password*
<i>Lots of activity</i>
Done!.
contact-info: Sean Woods
password: 
Retype new password: 

If I ls the directory:

ls
cvs2fossil.sh
tclvfs.fossil
tclvfs/