/usr/share/doc/ubuntu-packaging-guide-html-uk/_sources/udd-merging.txt is in ubuntu-packaging-guide-html-uk 0.3.8.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 | ===========================================
Merging — Updating from Debian and Upstream
===========================================
Merging is one of the strengths of Bazaar, and something we do often in Ubuntu
development. Updates can be merged from Debian, from a new upstream release,
and from other Ubuntu developers. Doing it in Bazaar is pretty simple, and
all based around the ``bzr merge`` command [#]_.
While you are in any branch's working directory, you can merge in a branch
from a different location. First check that you have no uncommitted changes::
$ bzr status
If that reports anything then you will either have to commit the changes,
revert them, or shelve them to come back to later.
Merging from Debian
===================
Next run ``bzr merge`` passing the URL of the branch to merge from. For
example, to merge from the version of the package in Debian Unstable
run [#]_::
$ bzr merge lp:debian/tomboy
This will merge the changes since the last merge point and leave you with
changes to review. This may cause some conflicts. You can see everything
that the ``merge`` command did by running::
$ bzr status
$ bzr diff
If conflicts are reported then you need to edit those files to make them look
how they should, removing the *conflict markers*. Once you have done this,
run::
$ bzr resolve
$ bzr conflicts
This will resolve any conflicted files that you fixed, and then tell you what
else you have to deal with.
Once any conflicts are resolved, and you have made any other changes that you
need, you will add a new changelog entry, and commit::
$ dch -i
$ bzr commit
as described earlier.
However, before you commit, it is always a good thing to check all the Ubuntu
changes by running::
$ bzr diff -r tag:0.6.10-5
which will show the differences between the Debian (0.6.10-5) and Ubuntu
versions (0.6.10-5ubuntu1). In similar way you can compare to any other
versions. To see all available versions run::
$ bzr tags
After testing and committing the merge, you will need to seek sponsorship or
upload to the archive in the normal way.
If you are going to build the source package from this merged branch, you
would use the ``-S`` option to the ``bd`` command. One other thing you'll
want to consider is also using the ``--package-merge`` option. This will add
the appropriate ``-v`` and ``-sa`` options to the source package so that all
the changelog entries since the last Ubuntu change will be included in your
``_source.changes`` file. For example::
$ bzr builddeb -S --package-merge
Merging a new upstream version
==============================
When upstream releases a new version (or you want to package a snapshot), you
have to merge a tarball into your branch.
This is done using the ``bzr merge-upstream`` command. If your package has a
valid ``debian/watch`` file, from inside the branch that you want to merge to,
just type this::
$ bzr merge-upstream
This will download the tarball and merge it into your branch, automatically
adding a ``debian/changelog`` entry for you. ``bzr-builddeb`` looks at the
``debian/watch`` file for the upstream tarball location.
If you do *not* have a ``debian/watch`` file, you'll need to specify the
location of the upstream tarball, and the version manually::
$ bzr merge-upstream --version 1.2 http://example.org/releases/foo-1.2.tar.gz
The ``--version`` option is used to specify the upstream version that is being
merged in, as the command isn't able to infer that (yet).
The last parameter is the location of the tarball that you are upgrading to;
this can either be a local filesystem path, or a http, ftp, sftp, etc. URI as
shown. The command will automatically download the tarball for you. The
tarball will be renamed appropriately and, if required, converted to ``.gz``.
The `merge-upstream` command will either tell you that it completed
successfully, or that there were conflicts. Either way you will be able to
review the changes before committing as normal.
If you are merging an upstream release into an existing Bazaar branch that has
not previously used the UDD layout, ``bzr merge-upstream`` will fail with an
error that the tag for the previous upstream version is not available; the
merge can't be completed without knowing what base version to merge against.
To work around this, create a tag in your existing repository for the last
upstream version present there; e.g., if the last Ubuntu release was
*1.1-0ubuntu3*, create the tag *upstream-1.1* pointing to the bzr revision you
want to use as the tip of the upstream branch.
.. [#] You will need newer versions of ``bzr`` and the ``bzr-builddeb`` for
the ``merge`` command to work. Use the versions from Ubuntu 12.04
(Precise) or the development versions from the ``bzr`` PPA. Specifically,
you need ``bzr`` version 2.5 beta 5 or newer, and ``bzr-builddeb`` version
2.8.1 or newer. For older versions, use the ``bzr merge-package`` command
instead.
.. [#] To check other available branches of a package in Debian, see
package code page. E.g. https://code.launchpad.net/debian/+source/tomboy
|