git-ubuntu-merge - perform an Ubuntu merge of a source package in a Git repository
Contents
Description
Ubuntu packages often have changes relative to their Debian bases, referred to as the "Ubuntu delta".
gitubuntumerge 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 gitubuntumerge is:
Obtain git tree with gitubuntuclone(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 gitubuntubuild(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
Exit Status
gitubuntumerge exits with status 0 if the command completes successfully. gitubuntumerge exits with
nonzero exit status on errors.
Git-Ubuntu
Part of the git-ubuntu(1) suite
Git-Ubuntu 0.2 2017-07-19 GIT-UBUNTU-MERGE(1)
Name
git-ubuntu-merge - perform an Ubuntu merge of a source package in a Git repository
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>".
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)
Synopsis
gitubuntumerge [--bug <bug>] [--release <release>] [-d | --directory <directory>] [-f | --force]
[--tag-only] start|finish <commitish> [<onto>]
