Merging

Merging is the process of taking all Ubuntu changes (Ubuntu delta) made on top of one Debian version of a package and re-doing them on top of a new Debian version of the package. See Merges & syncs for more context information.

Merging series

The article series provides guidance on performing package merges.

Process overview:
How to do a merge (this article):
  1. Preliminary steps

  2. Merge process

  3. Fix the changelog

  4. Upload a PPA

  5. Test the new build

  6. Submit Merge Proposal

Extra:

Overview

Merging is done using the git-ubuntu tool. As such, the process in many ways follows that of a git rebase where commits from one point are replayed on top of another point:

--- something 1.2 ----------------------------- something 1.3
     \                                           \
      -- Ubuntu changes a, b, c -- 1.2ubuntu1     -- Ubuntu changes a, b, c -- 1.3ubuntu1

At a more detailed level, there are other sub-tasks to be done, including:

  • Splitting large, “omnibus”-style commits into smaller logical units (one commit per logical unit).

  • Harmonizing debian/changelog commits into two commits: a changelog merge and a reconstruction.

With this process, we keep the Ubuntu version of a package cleanly applied to the end of the latest Debian version and make it easy to drop changes as they become redundant.

Merge-o-Matic

For a list of packages that have changed in Debian but not merged into Ubuntu, see the Merge-o-Matic tool: