Add support for Breezy as a modern alternative to Bazaar.

Review Request #11687 — Created June 29, 2021 and submitted — Latest diff uploaded

Information

RBTools
release-2.0.x

Reviewers

Breezy is a modernization of Bazaar, designed to work with Python 3 and
to iterate on Bazaar's feature set. It's mostly a drop-in replacement,
but has a couple changes which matter to us:

  1. It supports Git, and that triggered some bad matching logic (fixed
    in https://reviews.reviewboard.org/r/11686/).

  2. Its generated diffs default to having old/ and new/ prefixes
    before filenames on the header lines, which Review Board doesn't
    expect.

This change implements support for Breezy by checking both bzr and
brz (the official Breezy command line tool name) and setting the
proper command to run for all interactions, along with setting a flag to
trigger different behaviors for diff building (to address change #2
above).

With this, we should have support for both Bazaar 2.7 (the final
version) and Breezy 3.2 (the latest version).

Unit tests pass on both Python 2 and 3 for Bazaar and Breezy.

Commits

Files