~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

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

  • Committer: Alexander Belchenko
  • Date: 2008-02-27 18:24:39 UTC
  • mto: (3234.2.2 bug.139318)
  • mto: This revision was merged to the branch mainline in revision 3267.
  • Revision ID: bialix@ukr.net-20080227182439-qltsi1rc2amf5kjr
ensure that local_path_to_url() always returns plain string, not unicode.

Show diffs side-by-side

added added

removed removed

Lines of Context:
49
49
in some, but not all, LCAs.  We can assume that all LCAs were produced
50
50
by merges of the same sets of revisions.  That means that in those LCAs,
51
51
there were different merge resolutions.  Since THIS and OTHER disagree
52
 
about whether the line is present, those differences have propagated
 
52
about whether the line is present, those differences have propogated
53
53
into THIS and OTHER.  Therefore, we should declare that the lines are in
54
54
conflict, and let the user handle the issue.
55
55
 
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
 
 
126
109
Why a new name
127
110
--------------
128
111