Vcs branches, debcheckout, and UDD

Barry Warsaw barry at ubuntu.com
Wed Jul 6 20:43:00 UTC 2011


There was a discussion today on #ubuntu-devel about some changes I'd made to a
few packages for bug 788514 (switch to dh_python2).  gedit is a good
representative example of the basic issue.

What I did was to `bzr branch ubuntu:gedit`, then make the changes to that
branch, `bzr bd -S`, and dput the resulting .dsc file.  All well and good I
thought, but actually this caused some trouble because gedit has a Vcs-Bzr
branch:

$ debcheckout -p gedit
bzr	https://code.launchpad.net/~ubuntu-desktop/gedit/ubuntu

which is *not* the UDD branch, even if we substitute bzr+ssh for http.

I just spent an hour manually copying the diff from several UDD branches to
their Vcs branches, because 1) I'd already uploaded the change, and 2) the
branches share no history so you can't merge between them.

I think this is somewhat related to the native package discussion we've had
w.r.t. software-center, but it's also somewhat different.  Or maybe not:

$ debcheckout -p software-center
bzr	https://code.launchpad.net/~software-store-developers/software-center/trunk

A couple of things bother me here:

* We shouldn't be suggesting to people to use the UDD branch if the Vcs branch
  is preferred.
* We probably don't want to suggest that any Vcs branch, or even any Vcs-Bzr
  branch should automatically use the Vcs branch instead of the UDD branch,
  since Debian packages can specify either, and for those, the UDD branch
  would still be appropriate.
* Should debcheckout be taught about UDD branches and rules, or should bzr be
  taught about Vcs-Bzr branches?
* Using an unmodified Vcs-Bzr url isn't ideal, since we'd almost always prefer
  the bzr+ssh version (i.e. `debcheckout -a`) over the https version.
* tumbleweed, seb128 and others suggested some mungification of Vcs-* into an
  XS-$Vendor-Vcs-* field, possibly by update-maintainer, but I don't grok all
  the details of what that would mean.
* I can see how `debcheckout` is pretty useful, but I don't much like it
  better than normal UDD workflows.
* There's no foolproof rule to know when to use the Vcs branch over the UDD
  branch.

Maybe, a heuristic would be, look for a Vcs-Bzr header matched with a
-0ubuntuX version number and/or "ubuntu" in the branch url.  In those cases
maybe `bzr branch ubuntu:foo` would complain, or just do the moral equivalent
of `debcheckout -a foo`.

Or maybe, what we've talked about for software-center applies here.  E.g. ask
Launchpad to essentially make the UDD branch and the Vcs-Bzr branch one and
the same, so either approach will work.  This seems trickier since the UDD
branch has the full source code, while the Vcs-Bzr branch has only the debian/
directory (and apt-gets the source).

You guys are way smarter about this stuff than me, so I hope you'll have some
awesome suggestions. :) Even if it's not solvable right now, I think it's
important to get it on the UDD radar since debcheckout is how a lot of folks
work, and I'd like to save future developers the wasted effort of changing the
wrong branch.

Cheers,
-Barry
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: <https://lists.ubuntu.com/archives/ubuntu-distributed-devel/attachments/20110706/181ad1e9/attachment.pgp>


More information about the ubuntu-distributed-devel mailing list