# Migration from CVS to GIT - Multiple directories in CVS repo to a single Git repo

7 messages from 2011-06-22 to 2011-06-23. Participants: sandy2010, Andreas Ericsson, Michael Haggerty, Jakub Narebski.
Thread: https://gitlist.dev/t/27685

## sandy2010, 2011-06-22 09:06

Subject: Migration from CVS to GIT - Multiple directories in CVS repo to a single Git repo
Message-ID: <1308733591425-6503493.post@n2.nabble.com>
URL: https://gitlist.dev/e/1308733591425-6503493.post%40n2.nabble.com

```
Hello,

I'm aware of cvs2git and git fast-import utilities to do this. My
requirement is little different.
My CVS Repo is:
/cvs/BFARM

This consists of following directories:
Misc/suite1
Misc/suite2
Misc/suite3

Now, I want to Migrate the suite1 and suite2 into a single Git repo
"/git/Testsuites" and it should look like this:
/git/Testsuites/suite1
/git/Testsuites/suite2

How can I do this? I do not want to make suite1 and suite2 as separate git
repos.

Thanks.

--
View this message in context: http://git.661346.n2.nabble.com/Migration-from-CVS-to-GIT-Multiple-directories-in-CVS-repo-to-a-single-Git-repo-tp6503493p6503493.html
Sent from the git mailing list archive at Nabble.com.

```

## Andreas Ericsson, 2011-06-22 09:22

Subject: Re: Migration from CVS to GIT - Multiple directories in CVS repo to a single Git repo
Message-ID: <4E01B44C.7090003@op5.se>
URL: https://gitlist.dev/e/4E01B44C.7090003%40op5.se
In-Reply-To: <1308733591425-6503493.post@n2.nabble.com>

```
On 06/22/2011 11:06 AM, sandy2010 wrote:
> Hello,
> 
> I'm aware of cvs2git and git fast-import utilities to do this. My
> requirement is little different.
> My CVS Repo is:
> /cvs/BFARM
> 
> This consists of following directories:
> Misc/suite1
> Misc/suite2
> Misc/suite3
> 
> Now, I want to Migrate the suite1 and suite2 into a single Git repo
> "/git/Testsuites" and it should look like this:
> /git/Testsuites/suite1
> /git/Testsuites/suite2
> 
> How can I do this? I do not want to make suite1 and suite2 as separate git
> repos.
> 

Make a single repository out of them first, and then look at
git-filter-branch to create separate repositories for them.
You'll want to use the tree-filter option.

-- 
Andreas Ericsson                   andreas.ericsson@op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231

Considering the successes of the wars on alcohol, poverty, drugs and
terror, I think we should give some serious thought to declaring war
on peace.

```

## sandy2010, 2011-06-22 10:21

Subject: Re: Migration from CVS to GIT - Multiple directories in CVS repo to a single Git repo
Message-ID: <1308738087757-6503654.post@n2.nabble.com>
URL: https://gitlist.dev/e/1308738087757-6503654.post%40n2.nabble.com
In-Reply-To: <4E01B44C.7090003@op5.se>

```
I did not understand when you say "Make a single repository out of them
first". You mean single Git repository? Infact, my requirement is same. Can
I have a single git repository "/git/Testsuites" which will contain suite1
and suite2 directories? Provided suite1 and suite2 are no git repositories.

--
View this message in context: http://git.661346.n2.nabble.com/Migration-from-CVS-to-GIT-Multiple-directories-in-CVS-repo-to-a-single-Git-repo-tp6503493p6503654.html
Sent from the git mailing list archive at Nabble.com.

```

## Michael Haggerty, 2011-06-22 10:58

Subject: Re: Migration from CVS to GIT - Multiple directories in CVS repo to a single Git repo
Message-ID: <4E01CAD5.8080808@alum.mit.edu>
URL: https://gitlist.dev/e/4E01CAD5.8080808%40alum.mit.edu
In-Reply-To: <1308733591425-6503493.post@n2.nabble.com>

```
On 06/22/2011 11:06 AM, sandy2010 wrote:
> I'm aware of cvs2git and git fast-import utilities to do this. My
> requirement is little different.
> My CVS Repo is:
> /cvs/BFARM
> 
> This consists of following directories:
> Misc/suite1
> Misc/suite2
> Misc/suite3
> 
> Now, I want to Migrate the suite1 and suite2 into a single Git repo
> "/git/Testsuites" and it should look like this:
> /git/Testsuites/suite1
> /git/Testsuites/suite2
> 
> How can I do this? I do not want to make suite1 and suite2 as separate git
> repos.

Since CVS works filewise, you can simply move the suite1 and suite2
directories from within the CVS repository into a pseudo CVS repository,
then convert that:

$ mkdir /tmp/fake-cvs-repo /tmp/fake-cvs-repo/Misc
$ cp -pr /cvs/BFARM/CVSROOT /tmp/fake-cvs-repo
$ cp -pr /cvs/BFARM/Misc/suite1 /tmp/fake-cvs-repo/Misc
$ cp -pr /cvs/BFARM/Misc/suite2 /tmp/fake-cvs-repo/Misc

and then convert the pseudo-repository "/tmp/fake-cvs-repo/Misc".
Depending on the tools and filesystems involved, you might be able to
use hardlinks or symlinks instead of full copies when building up the
pseudorepo.

Michael

-- 
Michael Haggerty
mhagger@alum.mit.edu
http://softwareswirl.blogspot.com/

```

## Andreas Ericsson, 2011-06-22 11:55

Subject: Re: Migration from CVS to GIT - Multiple directories in CVS repo to a single Git repo
Message-ID: <4E01D847.9080707@op5.se>
URL: https://gitlist.dev/e/4E01D847.9080707%40op5.se
In-Reply-To: <1308738087757-6503654.post@n2.nabble.com>

```
On 06/22/2011 12:21 PM, sandy2010 wrote:
> I did not understand when you say "Make a single repository out of them
> first". You mean single Git repository?

Yes.

> Infact, my requirement is same. Can
> I have a single git repository "/git/Testsuites" which will contain suite1
> and suite2 directories? Provided suite1 and suite2 are no git repositories.
> 

Yes.

-- 
Andreas Ericsson                   andreas.ericsson@op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231

Considering the successes of the wars on alcohol, poverty, drugs and
terror, I think we should give some serious thought to declaring war
on peace.

```

## sandy2010, 2011-06-23 05:58

Subject: Re: Migration from CVS to GIT - Multiple directories in CVS repo to a single Git repo
Message-ID: <1308808706969-6507269.post@n2.nabble.com>
URL: https://gitlist.dev/e/1308808706969-6507269.post%40n2.nabble.com
In-Reply-To: <4E01CAD5.8080808@alum.mit.edu>

```
Thanks Michael! This worked like a charm! I was not aware that we can do such
things in CVS. Can you point me to some good docs/articles on such
comparison of CVS and Git?

Thanks again!

--
View this message in context: http://git.661346.n2.nabble.com/Migration-from-CVS-to-GIT-Multiple-directories-in-CVS-repo-to-a-single-Git-repo-tp6503493p6507269.html
Sent from the git mailing list archive at Nabble.com.

```

## Jakub Narebski, 2011-06-23 08:11

Subject: Comparison of CVS and Git (was: Re: Migration from CVS to GIT)
Message-ID: <m3mxh955nm.fsf_-_@localhost.localdomain>
URL: https://gitlist.dev/e/m3mxh955nm.fsf_-_%40localhost.localdomain
In-Reply-To: <1308808706969-6507269.post@n2.nabble.com>

```
sandy2010 <sandeeptt@yahoo.com> writes:

> Thanks Michael! This worked like a charm! I was not aware that we can do such
> things in CVS. Can you point me to some good docs/articles on such
> comparison of CVS and Git?

A bit of self-promotion:

  "Difference between GIT and CVS" on StackOverflow (my answer)
  http://stackoverflow.com/questions/802573/difference-between-git-and-cvs/824241#824241

A blog post I recently found, describing how the workflow changed
rather that the differences between Git and CVS:

  "From CVS to Git, 9 Things I\u2019ve Learned" on EclipseSource blog
  http://eclipsesource.com/blogs/2011/06/09/git-lessons-learned/

This article describes how Git could came into being, IMHO quite well
presenting Git philosophy as well:

  "The Git Parable" by Tom Preston-Werner (of GitHub)
  http://tom.preston-werner.com/2009/05/19/the-git-parable.html


And just FYI, another tool to convert CVS to Git (non-incremental):

  http://cvs2svn.tigris.org/cvs2git.html

-- 
Jakub Narebski
Poland
ShadeHawk on #git

```
