Is git with cvs faster than cvs alone?

My team works on a project in cvs containing about 20,000 Java files. Because of the number of files, it takes a while to do a cvs update. I typically keep about 5 copies of the entire tree checked out, to make it easy to check in different requests without worrying about which files were modified for each. It’s a real pain to keep all 5 trees up to date and in sync with each other.

I’ve read that it’s fairly easy to use git locally with a remote cvs server, and that git is fast. Will git significantly speed up the updating of my local trees?

  • Git/Mercurial locally ontop of local cvs checkout
  • How to get a list of tags created in CVS repository?
  • Practical way to commit changes in source control to multiple branches
  • What are the advantages of using SVN over CVS?
  • How can I git-cvsimport multiple modules from a CVS repository, with differing branches?
  • Android and version control systems, commit gen folder or put on ignore list?
  • I realize the lower bound is the time to do one cvs update. But I’m thinking that once the first tree is up to date, it might possible to quickly sync the other 4 with the first, rather than to do 4 more cvs update commands. Do I understand git correctly?

  • Getting error “Updates were rejected because the tip of your current branch is behind”
  • Git won't revert or commit a file that it thinks is modified
  • Installing Git in PATH with GitHub client for Windows
  • git svn rebase problem on windows
  • Public anonymous access to local TFS2013 git repository
  • Update a submodule to the latest commit
  • 2 Solutions collect form web for “Is git with cvs faster than cvs alone?”

    I use Git as a Subversion client on a large project (on the order of 10k files). Git is fast, really fast. It’s so fast that I only keep one working clone, and switch between feature branches within that same clone. Like you, when I used Subversion I would have two or three similar checkouts and would switch between them regularly as I had multiple things in progress simultaneously. It got to be pretty confusing sometimes. With Git’s features like lightweight branches, the stash, and “git add -p”, I find that I no longer need multiple checkouts. I can do everything in one directory, and not worry as much about losing changes that I either forgot about or accidentally overwrote.

    I haven’t used Git with CVS, but if its integration is anything like git-svn then it’s going to be no problem.

    We do something similar at work. We basically use the master branch in git as a single, updated CVS version of the code; we don’t do any development there, just CVS updates. Then, all of our development projects happen on feature branches that we rebase. When we do CVS updates on the master branch we commit those changes to master and then rebase our other development branches against master.

    It’s not ideal — it makes sharing branches with other people difficult. But, we can manage several development projects at once and do branches, merges, and diffs against them easily. And, we only interact with CVS on the one master branch, as needed.

    Git Baby is a git and github fan, let's start git clone.