Improved quilt patch handling

Jelmer Vernooij jelmer at ubuntu.com
Thu Jan 26 12:02:43 UTC 2012


bzr-builddeb 2.8.1 has just landed on Debian Sid and Ubuntu Precise. 
This version contains some of my improvements from late last year for 
the handling of quilt patches in packaging branches. Most of these 
improvements depend on bzr 2.5 beta 5, which is also in Sid/Precise.

The most relevant changes (enabled by default) are:

  * 'bzr merge-package' is now integrated into 'bzr merge' (it's just a 
    hook that fires on merges involving packages), so you no longer need
    to remember to run a different command for package merges
  * patches are automatically unapplied in relevant trees before merges
  * before a commit, bzr will warn if you have some applied and some 
    unapplied quilt patches

Furthermore, you can now specify whether you would like bzr to 
automatically apply all patches for stored data and whether you would 
like to automatically have them applied in your working tree by setting 
'quilt-tree-policy' and 'quilt-commit-policy' to either 'applied' or 
'unapplied'.  This means that you can have the patches unapplied in the 
repository, but automatically have them applied upon checkout or update. 
Setting these configuration options to an empty string causes bzr to not 
touch your patches during commits, checkout or update.

We've done testing of it, as well as running through a package 
merge involving patches with Barry, but none of us do package merges 
regularly. If you do run into issues or if you think there are ways we 
can improve the quilt handling further, please follow up to this email
to ubuntu-distributed-devel at lists.ubuntu.com or file a bug report
against the UDD project (https://launchpad.net/udd/+filebug).

Caveats:

  * If there are patches to unapply for the OTHER tree, bzr will 
    currently create a separate checkout and unapply the patches
    there. This may have performance consequences for big packages.
    The best way to prevent this is to set 'quilt-commit-policy =
    unapplied'.
  * 'bzr merge' will now fail if you are merging in a packaging tree 
    that is lacking pristine tar metadata; I'm submitting a fix for this,
    but it's not in 2.8.1.
  * if you set 'quilt-commit-policy' and 'quilt-tree-policy' but have 
    them set to a different value, bzr will consider the tree to have changes.

To disable the automatic unapplying of patches and fall back to the 
previous behaviour, set the following in your builddeb configuration:

'quilt-smart-merge = False'

Cheers,

Jelmer
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <https://lists.ubuntu.com/archives/ubuntu-devel/attachments/20120126/1e691026/attachment.pgp>


More information about the ubuntu-devel mailing list