550
550
log10 = log --short -r -10..-1
555
A criss-cross in the branch history can cause the default merge technique
556
to emit more conflicts than would normally be expected.
558
If you encounter criss-crosses, you can use merge --weave instead, which
559
should provide a much better result.
561
Criss-crosses occur in a branch's history if two branches merge the same thing
562
and then merge one another, or if two branches merge one another at the same
563
time. They can be avoided by having each branch only merge from or into a
564
designated central branch (a "star topology").
566
Criss-crosses cause problems because of the way merge works. Bazaar's default
567
merge is a three-way merger; in order to merge OTHER into THIS, it must
568
find a basis for comparison, BASE. Using BASE, it can determine whether
569
differences between THIS and OTHER are due to one side adding lines, or
570
from another side removing lines.
572
Criss-crosses mean there is no good choice for a base. Selecting the recent
573
merge points could cause one side's changes to be silently discarded.
574
Selecting older merge points (which Bazaar does) mean that extra conflicts
577
The ``weave`` merge type is not affected by this problem because it uses
578
line-origin detection instead of a basis revision to determine the cause of
554
582
# Register help topics
555
583
topic_registry.register("revisionspec", _help_on_revisionspec,
595
623
topic_registry.register('working-trees', _working_trees,
596
624
'Information on working trees', SECT_CONCEPT)
625
topic_registry.register('criss-cross', _criss_cross,
626
'Information on criss-cross merging', SECT_CONCEPT)
599
629
class HelpTopicIndex(object):