[cvsnt] Mergepoint issues on b2382

Tony Hoyle tony.hoyle at march-hare.local
Fri Jan 12 14:23:12 GMT 2007

Richard Wirth wrote:
> Hello Arthur, hello Andreas,
> May be Tony has tested a different solution than provided in the patch
> by Andreras?
> The patch works as follows:

It's not a patch really it's a reversion to the code that was removed 
because it was broken (because it verifiably caused data loss).  The 
overriding rule when considering functions in cvsnt is that it must 
*not* lose data.  Anything that does is either fixed or removed. 
Convenience is very low down the list compared to that.

The problem is if you merge A->B you cannot assume that A==B.

Merge A->B means that B contains A (possibly changed a bit due to 
conflict resolitution, so B might not contain A at all in the most 
pathalogical case).  It does not mean that A contains B.

Let's go through this again.  For the final time.

Create file - Revision 1.1
Commit a revision to A - Revision
Make changes on A - Revision
Make changes on HEAD - Revision 1.2
Merge HEAD->A - diff(1.1:1.2)->
Merge A->HEAD

With one directional mergepoints:
With bidirectional mergepoints:
diff(>1.2 (ie. a null diff, losing the changes in and

In the bidirectional case the revision and changes are 
lost - and that's quite a trivial example.  Expand it to multiple 
branches and revisions and it gets hard to track.


More information about the cvsnt mailing list