The most important stacking bug? (was Re: Better interop with upstreams, a story)

Jonathan Lange jml at canonical.com
Fri Oct 9 18:00:14 BST 2009


This is a public continuation of a thread originally posted to a
Canonical-internal list. I think that this particular branch of
discussion is better served on the public Bazaar list, and so am
reposting there. Apologies if the content is too Launchpaddish.

On Wed, Oct 7, 2009 at 8:39 PM, Karl Fogel <karl.fogel at canonical.com> wrote:
> Sidnei da Silva <sidnei.da.silva at canonical.com> writes:
...
>> Fine, I thought. I can just push my local bzr branch to Launchpad,
>> can't I?
>>
>> So I tried that. And it failed with a cryptic message about the
>> repository format being different, due to the fact that there's a
>> lp:zope.testing branch, which is a vcs-import branch, which is set as
>> the 'Development Focus', which turns out that push tries to stack on.
>> At this point I felt a little hopeless, but fear not! I asked for help
>> on #launchpad-code and Jono presented me some options.
>>
>> a) Removing the 'Development Focus' toggle from lp:zope.testing
>> b) Pushing without stacking (which seems like there's no command line
>> option for)
>
> This is a Bazaar problem I've run into many, many times too.  I wonder:
> is there some reason a stacking error (different repository formats)
> can't simply result in a retry with non-stacking, automatically?
>
...
>> If I picked a), I could have pushed a bzr-svn-branched trunk to
>> Launchpad, set it as the Development Focus and stack-on it, and then I
>> could take my existing bugfix branch that I branched from Subversion
>> and pushed it to Launchpad, and Merge Proposals would work with that,
>> but then this new trunk would not be automatically updated by
>> vcs-imports, and would be of limited use to me or anyone else.
>
> IMHO, the take-away lesson from this is: users should not have to ever
> hear or know about the word "stacking".  It's an implementation detail,
> and the more often we throw it in their faces, the more pain they have.
>

I've noticed people talking about this bad interaction on many
channels on IRC, including #ubuntu-dev.

The summary is:
  - Launchpad's default stacked branch is in format A
  - User's branch is in incompatible-yet-stackable format B
  - User pushes branch, gets a format incompatibility error
  - User left wondering what to do.

Ideally, as Karl says, users would never have to have this experience
because all mention of stacking would be hidden from them[1]. One way
to do this would be to retry.

However, we could also fix this by:
  a) changing the error message to suggest that the user push without stacking.
  b) providing a mechanism for the user to push without stacking even
though the remote server suggests that the branch be stacked.

Short of actually fixing it myself, what can I do to get this fixed
sooner rather than later?

jml

[1] Of course, the fact is that stacked branches do have different
properties to standalone branches and users ought to have their
expectations set appropriately. This is not one of those times.



More information about the bazaar mailing list