Search code examples
gitcvsgit-cvs

Git cvsimport missing incremental changes to branch


We're using git-cvsimport to periodically copy changes from cvs into git

For better or worse, we stuck with git cvsimport and not cvs2svn. Initially we planned a "once-and-for-all" cvs-to-git migration, but people ended up doing more incremental work on the cvs repository. We want to bring changes over from a CVS branch into a git so developers can work on the feature in git.

Context

  • We have a dedicated 'fromcvs' git repository used solely for importing from cvs
  • A designated "merge developer" merges from this 'fromcvs' repository into his/her local
  • I periodically execute this command to bring changes from CVS into git git-cvsimport -p -x -v -d $CVSROOT myProj

The Question

Why does the "git version" of branch FEATURE-FOO lack commits I see in the CVS version of said branch?

For example, in cvs I see, on branch FEATURE-FOO a change made to SomeDAO.java on Fri Feb 11. In the "fromcvs" git repository, I do not see that same change on the branch,

git checkout FEATURE-FOO git log src/java/com/company/somefeature/SomeDAO.java

  • Is this a bug in gitcvsimport?
  • Or are we misisng a step (see below) to keep
  • Any other pearls of wisdom ?

How do you interpret the warning on the git cvs import man page?

One other thing: The git-cvsimport man page has this warning (I've broken it into bullet points for legibility).

What specifically does this mean "After that, you need to git merge incremental imports, or any CVS branches, yourself."

  1. You should never do any work of your own on the branches that are created by git cvsimport.

  2. By default initial import will create and populate a "master" branch from the CVS repository’s main branch which you’re free to work with;

  3. After that, you need to git merge incremental imports, or any CVS branches, yourself.

  4. It is advisable to specify a named remote via -r to separate and protect the incoming branches.

Git cvsimport has actually worked pretty well for us until now, despite the warnings over the internet. (i.e. "...no man must travel alone in the Klondike after fifty below"). Perhaps I/we foolishly ignored the advice and were lulled into a false sense of security.

Any recommendations?

thanks

will


Solution

  • You are having problems because git-cvsimport is fundamentally broken. For example, see the "issues" section of its manpage.