Using feature branches to manage packaging with bzr (was: Future of REVU and Debian Mentors)
Robert Collins
robertc at robertcollins.net
Tue Aug 7 04:23:02 BST 2007
On Mon, 2007-08-06 at 22:56 -0400, Michael Olson wrote:
> Reinhard Tartler <siretart at ubuntu.com>
> writes:
>
> > "Emmet Hikory" <emmet.hikory at gmail.com>
> > writes:
> >
> >> The reason I prefer a patch system is that it organises the
> >> patches by purpose, rather than historically. With a VCS, it is very
> >> difficult to extract the specific set of changes required to
> >> implement a specific feature, especially when those changes may span
> >> several files, and have been updated several times during this
> >> history of the package to match upstream changes (often in
> >> combination with other updates). Purpose-oriented patches are easier
> >> to review for adoption upstream, and easier to understand as an
> >> example to implement a similar feature in another package.
> >
> > This is adressed by the concept called 'feature branches', a concept
> > that Manoj Srivastava uses for his packages. A feature branch only
> > contains the changes that you would normally put in a dpatch. It can
> > be easily extracted and exported to a patch file. Furthermore, you can
> > track and merge changes with other developers.
> >
> > Together with the bzr-rebase plugin, I think the implementation of
> > feature branches with debian packages becomes more and more feasible
> > in bazaar.
I'm not sure rebase needs to be involved; rebasing discards revision ids
and harms collaboration.
> I'm intrigued by this idea. Unless I'm mistaken, the main issues with
> using bzr for this is that bzr needs a separate working tree for each
> feature branch. This causes the following problems.
bzr switch can switch between lightweight working trees. Fixing that for
heavyweight checkouts would be relatively easy; and pull --overwrite is
essentially the same thing for branches anyhow.
> 1. If working with a Launchpad-hosted repository, each branch has to be
> registered with Launchpad before work can be done on it.
'bzr push' will create branches automatically on launchpad.
> 2. There are often a lot of individual patches in debian/patches --
> making a feature branch for each patch seems slightly wasteful of
> disk space. This is not a huge concern since debian/ directories
> are almost always small, but it would feel wasteful nonetheless,
> compared to having just one working directory, like git offers.
On your local disk you can use a shared repository which shares the disk
storage between branches 'just like git'.
> 4. A new contributor to the project would have to check out not just
> the branch that has the debian/ directory, but also every single
> feature branch, which could be a hassle.
I would be included to have the merged branch be what people checkout.
To edit a specific patch you then checkout the one feature branch you
want to edit, or make a new one, and then merge that in.
-Rob
--
GPG key available at: <http://www.robertcollins.net/keys.txt>.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : https://lists.ubuntu.com/archives/ubuntu-motu/attachments/20070807/78a929c0/attachment.pgp
More information about the Ubuntu-motu
mailing list