[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: Need info about merging / conflicts
RE: Need info about merging / conflicts
Thu, 6 Dec 2007 11:01:29 +1100
> Does anyone know a good resource for information about how CVS (or any
> version control system for that matter) handles merging and
> identifying merge conficts?
Get one of the many good books on CVS, eg: Essential CVS.
> At my organization we are looking at adopting a new version control
> system (well, ideally an overall CM / defect tracking / workflow
I will plug CVS Suite because I work for that company ;)
I personally don't think that unreserved (auto merge) or reserved (lock)
approaches are the starting point of picking a verison control tool to
support your Software Configuration Management process.
When selecting a version control tool I believe the emphasis should be
on whether that tool supports the selected configuration management
process - in turn the CM process should have been selected to address
the management / business issues. I've often seen a manager request an
SCM system to assist with outsourcing to india, then a person selecting
a tool like VSS or PVCS that in no way supports any CM processes related
to outsourced development and multi site development.
Version control is not an end in itself - in fact SCM (software
configuration management) is there to solve particular business problems
like improve productivity, reduce costs, provide compliance with
There was a great article on the valuation of IT assets published in The
Financial Times UK Edition 36,501 on Monday October 1 2007, and I
believe the author will be releasing the complete whitepaper soon.
Basically it talks about the lack of business cases for the benefit of
software and also the business case for maintaining legacy assets. The
cost to a business of re-engineering the CM processes and replacing
version control software are often very high so it's worth knowing for
sure that the business is going to recoup that cost with benefits
provided by the new system (if there really does need to be one).
> I've brought up the benefits of working CVS style but I've run into
> considerable resistance, or lack of understanding of the benefits.
> I've been told that it's "stupid" to think that software can possibly
> safely merge code changes and safely identify conflicts, that it is
> "brittle", language dependent, somehow causes problems with
> compliation, etc, etc.
There are very good arguments you can use, but I have a better approach
I use. Our CVS Suite is based on CVSNT not CVS (they both are free/GPL
and run on unix and windows) - CVSNT supports both the 'reserved'
(locking) mode and the 'unreserved' (auto merge) mode of working. I
find it is easier to convince people with the sort of fears you have
described to install CVSNT, and maybe start with 90% of projects and
teams using the 'old' way and just one team using the 'new' way - let
the evidence speak for itself.
The problem with any argument you develop to explain the case for
unreserved working is that you may win the argument but lose the person
- better to win the person and lose the argument. Tell the person 'look
you are probably right', but if we choose a system that lets us do both
then we can experiment a little, and such a system is more likely to
support a greater range of CM processes which means it's less likely to
be out of date in a few years time.
> BTW, when I asked one vendor why his product didn't support
> auto-merging, he suggested open source projects like CVS only use
> auto-merging because they're too poor to afford a nice, shiny
> Diff-Editor like this product had. I was flabbergasted but didn't
> know what to say.
Many commercial products have 'auto merge' (including ClearCase),
however this saleperson is smart. One of the downfalls of open source
tools is that the command line, the server, and the gui and the web
browser, and the bug tracker are all different projects (and almost
always there are several choices for each), and it can be difficult to
put a unified 'glossy' easy to use set together. Again I'll plug what
my employer sells - CVS Suite (which does have a nice shiny diff-editor)
is a collection of open source tools designed to solve this problem for
commercial software developers, plus documentation and support.
Do not forget that there is a very strong commercial argument for using
open source tools rather than proprietary commercial tools. CVS has
been going for 21 years now and shows no sign of its popularity or
effectiveness diminishing -whereas IBM CMVC and many other proprietary
tools have dropped by the wayside. Using free and open source software
means that the software is generally more flexible (if you really really
don't like a feature - you can change or add to it) and have longer
lifetimes (though the project may fork as CVS has done with CVS,
OpenCVS, CVSNT, etc etc).