Artifact 798120516f681aa75d6b70ec5929cf1da54c98db:
Wiki page
[
Converting CVS to Fossil] by
hypnotoad
2013-12-08 11:51:23.
D 2013-12-08T11:51:23.553
L Converting\sCVS\sto\sFossil
P a616a1545491a84191ca79de23054ac01ca1d2e3
U hypnotoad
W 1738
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 <a href="http://vincew.net/content/import-cvs-repository-fossil">Here</a>.
<p>
The script used is as follows:
<verbatim>
#!/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
</verbatim>
<p>
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.
<p>
Example:
<verbatim>
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:
</verbatim>
<p>
If I ls the directory:
<p>
<verbatim>
ls
cvs2fossil.sh
tclvfs.fossil
tclvfs/
</verbatim>
Z a1dbcf3d9e9b79a73c3f094b61528d7a