Earlier this year we had a talk about GIT (a distributed version control system), the truth is that I had used a few times for my personal projects but at work I was (and still) using CVS. As this year I had the opportunity to use and learn more about how GIT works, I proposed in my work to migrate our repository and modernize us a bit.

Obviously we will need to access to the whole history and tags from GIT. I’ve been researching a little about the migration process so I made ​​a little ‘manual’ I hope we can implement in the coming weeks. Of course there is a lot of documentation and manuals on how to migrate from CVS to GIT, this is just a summary of the steps we will have follow in our case.

I obtained much of the information from “CVS to git Transition Guide” but this guide included to freeze the CVS archive and we will not need to do so.

We will use git command “git cvsimport” which will allow us to fetch and update the GIT repository from CVS repository. We want to create a central master repository (as we have in CVS) with the master branch.

mkdir project
cd project
git cvsimport -v -k -i -d /path/to/CVSROOT -C project project

Now we will create a new repository without a working copy (project.git) cloning the repository that we have created:

git clone --bare project
rm -rf project

On the other hand, the committers have to create a clone to start working with him:

git clone :project.git

And they will have to set some things:

git config --global "Your Name"
git config --global ""

To make it more comfortable to do pulls is convenient to add what is called ‘remote’:

git remote add origin :project.git
git push origin master

Someday I will tell you how was the experience because we have some reluctance on the team … hopefully we will convince them!


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: