Fertilization Part 0: Creating a fork

Use Case Maker is housed in an old CVS repository.  The first thing that I want to do is to convert that into a more modern source control system, such as subversion or git.  Because of my own personal preferences, I am going to choose git as the repository of choice.  This will also enable me to host the repository on GitHub for my readers to browse.

I want to retain the existing history, so simply downloading the source and pushing it into a new repository is not an option.  I'm going to have to jump though some hoops to get the job done.

First, I need to download some tools.  I'm not going to go through the process of installing them here, but I'll provide the links I used:

  • cwRsync
  • python (Get python 2.x, cvs2git does not work with 3.x)
  • cvs2git (I ran into problems with the release version, and ended up using the latest from the svn trunk)
  • cvs (I just put cvs.exe in my working directory for simplicity)
  • msysgit

Once all of the tools are installed, I pull down a local copy of the existing CVS repository, following these documents from SourceForge:

> mkdir use-case-maker-cvs
> \path\to\cwRsync\bin\rsync -av rsync://use-case-maker.cvs.sourceforge.net/cvsroot/use-case-maker/* use-case-maker-cvs

Next, execute cvs2git:

> \Python27\python.exe cvs2svn\cvs2git --blobfile=git.blob --dumpfile=git.dump --username=sczetty use-case-maker-cvs

Almost there!  Now open up a msysgit shell to create the git repository:

> mkdir use-case-maker
> cd use-case-maker
> git init
> git fast-import --export-marks=../git-marks.dat < ../git.blob
> git fast-import --import-marks=../git-marks.dat < ../git.dump

And we're done!  I have pushed a copy of this repository to https://github.com/stephen-czetty/UseCaseMaker

No Comments

Add a Comment