GIT-UBUNTU-MERGE(1)

NAME
git-ubuntu-merge - perform an Ubuntu merge of a source package in a Git repository

SYNOPSIS
git ubuntu merge [--bug <bug>] [--release <release>] [-d | --directory <directory>] [-f | --force] [--tag-only] start|finish <commitish> [<onto>]

DESCRIPTION
Ubuntu packages often have changes relative to their Debian bases, referred to as the "Ubuntu delta". git ubuntu merge assists with performing an Ubuntu merge, by replaying the Ubuntu delta on a newer version from Debian as a git-rebase(1). Once an Ubuntu merge has been performed using this workflow, future merges can be simple rebases. In the most general case, an Ubuntu merge is begun with `git ubuntu merge start pkg/ubuntu/devel pkg/debian/sid` and finished with `git ubuntu merge finish pkg/ubuntu/devel pkg/debian/sid`.

The brief outline of the merge workflow supported by git ubuntu merge is:

    Obtain git tree with git ubuntu clone(1).

    Split the current Ubuntu delta into a sequence of logical commits suitable for rebasing.

    Rebase the logical Ubuntu delta onto the new Debian version.

    Build and test the resulting source package with git ubuntu build(1) and autopkgtest(1).

    Reconstruct the debian/changelog for the new source package.

    Update the metadata for the new source package, such as the maintainer.

    Upload the resulting source package to the Ubuntu archive.

A more extensive discussion of the workflow is at https://wiki.ubuntu.com/UbuntuDevelopment/Merging/GitWorkflow#Detailed_workflow

OPTIONS

start | finish
    The step of the merge. When "start" is specified, the current delta will be reconstructed and HEAD will point to the result. When "finish" is specified, the debian/changelog will be reconstructed and package metadata will be updated. "start" must be run before "finish".

--bug <bug>
    When passed to the start step, the tags created will be under lp<bug>/ in the repository. When passed to the finish step, the Lauchpad bug <bug> will be closed by the resulting debian/changelog.

--release <release>
    The <release> to use in the final changelog. If not specified, the current development release is assumed.

-d <directory>, --directory <directory>
    The local directory to perform the merge in. If not specified, the current directory is used.

-f | --force
    Overwrite any tags, if they already exist.

--tag-only
    In some cases, the full workflow is not desired. When this flag is set, only the tags for "old/ubuntu", "old/debian" and "new/debian" are created.

<commitish>
    A Git commitish indicating the current Ubuntu changes to merge to Debian.

[<onto>]
    A Git commitish indicating the new Debian version to merge to. If not specified, "debian/sid" is assumed. If a local branch with name <onto> does not exist, it will be created from the remote-tracking branch "pkg/<onto>".

EXIT STATUS
git ubuntu merge exits with status 0 if the command completes successfully. git ubuntu merge exits with nonzero exit status on errors.

REPORTING BUGS
Report bugs at https://bugs.launchpad.net/git-ubuntu .

SEE ALSO
git-rebase(1), git-ubuntu-clone(1), git-ubuntu-build(1), autopkgtest(1)

GIT-UBUNTU
Part of the git-ubuntu(1) suite