merge & tree shape alteration hook for packaging

Bug #509325 reported by Robert Collins
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Bazaar
Confirmed
Medium
Unassigned

Bug Description

For working with packages that are maintained with separate patches in debian, it would be *awesome* to be able to have regular branches and collapse the branches into a set of patches just-in-time.

There are two main things missing to do this:
 - a list of branches that should become patches (both pipelines and looms can do this though)
 - A hook during the switch process so that switching to the main packaging branch can cause the patches to be created/updated.

This bug is about that hook.

I don't know quite what it needs to look like, but it needs to be fairly flexible as there are multiple different sorts of output (quilt, dpatch, heck, even rpm spec files) that would be needed.

What it needs to permit is a little complex:
 - changes to files (and tree shape) that are not coming from an upstream update need to get converted to parts of patches
 - changes to files and tree shape coming from upstream should end up in the upstream files.

As an example, consider the following packaging loom/pipe:
ubuntu
patch2
patch1
upstream

When an upstream release happens all four branches may change: upstream (duh). patch1 to deal with a conflict in upstream, and patch2 likewise.
Afte the merge to ubuntu, all the files present in upstream should be unmodified vis-a-vis upstream, and there should be two updated patches in the debian/ subtree.

It may be possible to do this via command decoration, but doing it as a hook would let it work for GUI's etc too.

Martin Pool (mbp)
Changed in bzr:
status: New → Confirmed
importance: Undecided → Medium
tags: added: hooks
Revision history for this message
Andrew Bennetts (spiv) wrote :

There's perhaps some overlap with filtered views? I realise that in their current form they can't implement this proposal, but it feels like related kind of feature.

Revision history for this message
Robert Collins (lifeless) wrote :

@Andrew kindof. The question is what gets stored in history and what gets show on disk. I'm currently thinking about a 'taint' revprop, to stop merges from branches with a particular unusual layout merging to regular branches.

Revision history for this message
Martin Pool (mbp) wrote :

So on the bzr side, all that's needed is a hook that fires on switch?

Martin Pool (mbp)
tags: added: merge
Jelmer Vernooij (jelmer)
Changed in bzr:
status: Confirmed → In Progress
assignee: nobody → Jelmer Vernooij (jelmer)
assignee: Jelmer Vernooij (jelmer) → nobody
status: In Progress → Confirmed
Jelmer Vernooij (jelmer)
tags: added: check-for-breezy
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.