[Quoth Stephen Cameron...]
> There is no merge history.
OUCH! That should probably be mentioned when people are comparing
CVS to things like ClearCase. Merge history is an important feature.
In ClearCase, you can get a version tree for each file showing every
branch and merge that ever occurred, which I have found essential
when trying to figure out precisely what happened. Knowing the merge
history also enables the findmerge tool to know the best reference
version to use for merges, which generally keeps merges very small.
I am a little puzzled that people aren't having more problems with
merges in CVS. When there is pipelined development going on, it seems
inevitable that you are going to be copying changes across at least
three versions of a product on a relatively frequent basis. Do CVS
developers really do all these parallel updates by hand-editing with
cut/paste?
Maybe the term "merge" is ambiguous. My concept of a merge is:
0. select a reference version and a from and to version
1. make a diff from the reference version to the "from" version
2. make a diff from the reference version to the "to" version
3. merge the diffs (preferably with optional user input), and
4. apply the result to the "to" version.
Does CVS use a different merge concept entirely?
Assuming that the answer is "no", how much of this is user-accessible?
Does CVS support a command to do a merge of two revisions of a single
file from a user-specified reference revision? This is the fundamental
user-controlled merge operation. From your comments, it sounded like
the answer is "no", that it always merges from the root of the oldest
branch or some such thing.
I would like to see CVS support, at least for individual files, a
means to specify the "from", "to", and "reference" revisions on an
update. CVS could generalize this to directories and trees by
permitting the user to specify branches or labels for "from" and
"to" and a label for the reference revision. With this support,
everything else (e.g. labeling important merge points) could then be
done through customary disciplines, like "always label after checking
in a merge", possibly supported through scripts.
This approach seems to be in harmony with the CVS philosophy of
providing the raw mechanics without dictating how they are to be
used. Did I miss something?
Ralph A. Mack
_______________________________________________
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs