[cvsnt] Mergepoint issues on 22.214.171.124 b2382
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 126.96.36.199
Make changes on A - Revision 188.8.131.52
Make changes on HEAD - Revision 1.2
Merge HEAD->A - diff(1.1:1.2)->184.108.40.206
With one directional mergepoints:
With bidirectional mergepoints:
diff(220.127.116.11:18.104.22.168)->1.2 (ie. a null diff, losing the changes in
22.214.171.124 and 126.96.36.199).
In the bidirectional case the revision 188.8.131.52 and 184.108.40.206 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