[cvsnt] Latest updates
Phil Richards
news at derived-software.ltd.uk
Sat Sep 6 19:43:31 BST 2003
On 2003-09-06, Glen Starrett <grstarrett at cox.net> wrote:
> That makes sense now, thanks for the clarifications (and the enhancement!).
> So then 2-way merge in a more verbose description than Tony's original
> would be something like "better handling of merges to and from a branch".
Possibly. It is actually quite difficult to come up with a good description,
mainly because even with this patch the facility is still somewhat limited,
and you just end up with loads of qualifications about how you can't merge
arbitrarily between branch and mainline and other branches between branches...
I use "limited" in a comparitive way - the 2.0.9 functionality is good
enough for my purposes (and I suspect most people's). CVS (in its current
form) is probably not good place to handle anything more complicated (it
*can* be done to at least some extent, but frankly I suspect nobody would
ever notice if it was added :-).
phil
p.s. It is a credit to the original mergepoint implementation that my patch
ended up being about 5 lines long. (Ignoring the 2-300 lines of test
code, and the pages of scribbling.)
p.p.s. Here is a script-segment that causes 2.0.8 problems, but not 2.0.9:
(I won't include the implementations of the functions - it should be
fairly obvious what is going on... The "merge" function automatically
resolves the conflict by including both sides of the conflict - which
is what I was aiming at...)
create_file "Initial file contents"
make_branch b1
append_to_file "Added on mainline - 1"
use_branch b1; merge HEAD
use_mainline; merge b1
use_branch b1; append_to_file "Added on b1 - 1"
use_mainline; merge b1
use_branch b1; merge HEAD
use_mainline; append_to_file "Added on mainline - 2"
use_branch b1; append_to_file "Added on b1 - 2"; merge HEAD
use_mainline; merge b1
With 2.0.9, both the HEAD and branch files are the same:
Initial file contents
Added on mainline - 1
Added on b1 - 1
Added on b1 - 2
Added on mainline - 2
With 2.0.8, the branch file is the same as the one above, but the HEAD is:
Initial file contents
Added on mainline - 1
Added on b1 - 1
Added on mainline - 2
Added on b1 - 2
Added on mainline - 2
--
change name to "phil" for email
More information about the cvsnt
mailing list