We are using CVS for around 50 java-projects which we develop using Eclipse, and build using Hudson.
We have now reached the point where we want to migrate to something better, and I am considering that using git masquerading as a CVS server might be exactly what would suit us in terms of learning curve.
We have few but long-lived branches - preferrably on a subset of files (we would essentially like to be able to have a customer specific branch where we can have only the few files actually changed, but add more files later if needed, and the tooling should understand this).
We are only a few active developers co-located.
We usually work with a workspace per main project with a complete checkout of all projects needed to build that. We do not use Maven, and only use ant to build with Hudson.
I understand that git-support-in-Eclipse has been adopted as an actual Eclipse project. Any experiences with that?
I will most likely set up a local git server to do evaluation with. I'd appreciate tips on what to explicit look for which might be troublesome.
We do not use $Id$ or similar keyword expansion (since this induces changes in the source files which we are not interested in knowing about.
So, I'd appreciate any experiences with git in scenarios similar to ours :)
EDIT 2009-10-25: Question is still open. We have decided on moving away from branches (too much pain) and go into multiple source trees - one pr branch. This removes a major painpoint with CVS, but we still want to be able to develop without network access to the repository. Hence git is still very relevant, and I still would like to hear experiences from the trenches.
Invoking Java main method with parameters from Eclipse
Headless Eclipse Build returns ERRORLEVEL 13
With multi-module Maven projects, is it possible to make my root (pom-packaged) project available in Eclipse?
CVS is a centralized VCS, meaning all your projects can fit within one CVS repository: you can checkout any sub-part..
Editor templates for defensive programming
Git is a DVCS, and in the Distributed world, one repository = one "component" (or "module" or "project", ...).
You can use submodules to aggregate several Git repository under one "umbrella" one.
If you clone a Git repository, you will get all the history (unless you limit the depth of the cloning)..
Are there any decent Perl plugins for Eclipse?
So the organization of your projects will be different with Git, and I am not sure if the vision of one "CVS-like" Git server will still apply..
In Eclipse, what can cause Package Explorer “red-x” error-icon when all Java sources compile without errors?
Eclipse + PDT performance tips?
outputting the value of a “Watch” in Eclipse to a log file
1. Actually support for non-anonymous pserver was recently send to git mailing list for inclusion, and is currently in 'pu' (proposed updates) branch, as "git-cvsimport: add support for cvs pserver password scrambling.".
DESCRIPTIONThis application is a CVS emulation layer for git.. It is highly functional.
However, not all methods are implemented, and for those methods that are implemented, not all switches are implemented.. Testing has been done using both the CLI CVS client, and the Eclipse CVS plugin.
Most functionality works fine with both of these clients..
LIMITATIONSCurrently cvsserver works over SSH connections for read/write clients, and over pserver for anonymous CVS access1.. CVS clients cannot tag, branch or perform GIT merges..
git-cvsservermaps GIT branches to CVS modules.
This is very different from what most CVS users would expect since in CVS modules usually represent one or more directories..