I'm helping get the SCM set up for a new program, and we're currently in the process of deciding on a VCS.
The main contenders at this point are SVN, ClearCase, SVN+DVCS, and just a DVCS.
At the moment, the team is leaning towards either SVN or SVN+DVCS. We want to avoid the expense and administration costs of ClearCase, but want the workflow and versioning options it offers. I brought forward the option of using a DVCS as well, and the idea is being considered.
For the DVCS, we're considering Mercurial, Bazaar, and Git. The team feels comfortable with SVN, but don't think it'll offer the versatility needed, which is why we're looking at the DVCS on top of SVN option.
Does anyone have any advice (e.g. existing tools, processes) for getting such a setup going?
Concerns include:
As an administrator of ClearCase, I would rule out that tool unless you have a complex merge workflow.
The workflow you mention involves being able to branch, fix and then merge back easily, which should not be in favor of SVN.
The biggest trap when you are used to ClearCase (espacially non-UCM ClearCase) is the "composition" of a config spec.
If you choose a DVCS (Mercurial, Bazaar -- or Git since it works really well on Windows), you would not be able to get the same "inheritance effect" -- (when you are selecting different versions with different successive select rules --: as said in that answer:
In a purely central VCS, you can define your workspace (in ClearCase, your "view" either snapshot or dynamic) with whatever rules you want.
That would not be practical in a DVCS (as in "Distributed"): when you are making a branch with it, you need to do so with a starting point and a content clearly defined and easily replicated to other repositories.
If you are using ClearCase UCM, that means identifying coherent sets of files, which can only be achieved through - for instance - Git submodules.
The complexity is higher with those DVCS, since they do not record the dependencies between modules (or "set of files") the way ClearCase UCM does.
So, to recap:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With