I am interested in the value (or lack thereof) of using a traditional SCM product (ClearCase, AccuRev, Perforce, etc.) along with Git for large projects with distributed teams.
Is there a significant value-add in terms of increased visibility into team activities? Control of branching and merging? Access control and security? Release engineering? Other factors?
Or is it better to Git by itself? Or is there an open source SCM that would be equivalent to the commercial products mentioned above?
Thanks.
There is value.
Use flexibility and convenience of cheap local branching to facilitate developer work flow in your local (machine) environment, use the centralized system for easy control of role based permissions and conglomeration of large numbers of files.
Developer task-based branching stays in the distributed system and keeps centralized history cleaner.
Centralized systems can be used to off load large binary assets from distributed systems.
There is cost.
Supporting/training for a hybrid environment.
Requires locating/maintaining a translation layer between systems.
Integrating Git with ClearCase or SVN isn't something I am looking for at the moment, mainly because a Git repo cannot keep the same kind of data (binaries) or volume (number/size of files) than traditional centralized repos.
See "What are the Git limits?".
I am trying to introduce Git right now in a corporate ClearCase-SVN environment, as a stand-alone alternative.
While the speed, private commits and merge features are very much appreciated, I am asked to solve real issues in term of:
prereceive
hooks in order to have at least one commit made with the rightuser.name
config (i.e. auser.name
equals to the common namecn
in the LDAP of our company). (a bit like the gitolite script 'contrib/update.email-check
', but foruser.name
, not for email).But using ssh private/public keys also means having private keys with pass-phrase (mandatory according to our security team), and that isn't trivial to integrate with Hudson or other tools.
In short, I still find Git better, but since I am in charge of implementing its installation/administration, I fully agree with my previous analysis made in the SO question "Can we finally move to DVCS in Corporate Software? Is SVN still a 'must have' for development?" ;).
Use as few systems as you can get away with. If you don't see an advantage in using anything other than git alone, then just use git alone.
Most projects use just one VCS (e.g. git or Subversion) and can do everything they need to do (branching, ..) so unless you have a requirement you know of which is unusual, you can be pretty certain that one product will do everything you need.