~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to doc/developers/lca-merge.txt

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2008-03-11 16:33:01 UTC
  • mfrom: (3144.6.2 doc-update)
  • Revision ID: pqm@pqm.ubuntu.com-20080311163301-ckw6hxe1rwahhgrt
Update LCA merge document to mention exception to 3-way behavior
        (abentley)

Show diffs side-by-side

added added

removed removed

Lines of Context:
106
106
implementation of three-way.  (One that happens to automatically do
107
107
``--reprocess``, ftw).
108
108
 
 
109
Exception to three-way behavior
 
110
-------------------------------
 
111
There is a special case of three-way merge which LCA merge handles differently
 
112
from our default "merge3" algorithm:
 
113
BASE has content X, THIS deletes the content, and OTHER changes X to Y.  In
 
114
this case, LCA merge emits Y in its output and does not indicate a conflict.
 
115
merge3 would output Y, but would also indicate a conflict.  (This is also the
 
116
behavior in the inverse case where OTHER has nothing and THIS has Y.)
 
117
 
 
118
This behavior is due the way LCA determines basic conflicts; they
 
119
can only be emitted when THIS and OTHER each have unique lines between common
 
120
lines.  If THIS does not have unique lines in this position, conflicts will not
 
121
be emitted, even if its (lack of) content is unique.
 
122
 
 
123
This behavior difference is shared with "weave" merge.  I hope that a future
 
124
revision of LCA merge will handle this case as merge3 would.
 
125
 
109
126
Why a new name
110
127
--------------
111
128