Question

I successfully converted and imported into git an eight-year old CVS master tree which contains individual CVS projects. I am trying to figure out what the cvs2git conversion did to the individual CVS repositories.

Fortunately, I still have the master CVS tree and have not deployed anything, so I can do this again. I'm looking for git commands that will let me explore what I converted, so I can tell if I should have converted each CVS repository separately.

Was it helpful?

Solution

You can verify what cvs2git did by issuing git log against one of your subprojects:

git log -- <directory>

If that command returns a full history, cvs2git merged all your subprojects into one. Based on your comments this looks to be the case.

You've now got a choice: Fracture the repo or keep it combined? This isn't always a clear-cut decision, and the motivations for fracturing a repo in CVS are different than they are in git.

I recommend trying your new git repository for a couple of weeks, without fracturing it into submodules, subtrees, or nested repositories. This will get you comfortable with common git commands, and let you try out some great git features like git bisect, which are more difficult to use when you nest projects. Additionally, I suspect you'll find branching and particularly merging to be stupidly easy in comparison to CVS. It might be the case that you don't need to fracture the repository at all.

If you decide you want to do so, give some other answers on the topic a read. Splitting the repo itself is easy. Here's a simple tutorial from github. A quick google search will turn up quite a few more.

OTHER TIPS

I just converted an eight years old CVS repository using cvs2git. I found that using "gitk --all" in the resulting repositories let me have a good grasp as to how the convertion did. So, I'd suggest this command to you.

However, I didn't convert the whole CVS repo into a single Git repo. As your, my CVS repo had, in fact, several different projects inside it. Each project was inside a different directory. So, I performed several conversions, one for each project. You simply point cvs2git to the particular subdirectory of the CVS repo that you are interested in. It will convert the directories history into a Git repository. So, I ended up with several Git repos, one for each project, which gave me much better histories for each repository. I'd suggest you try this approach too.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top