[RFC] Vanilla checkouts in 2.2

Robert Collins robert.collins at canonical.com
Tue Jan 12 06:32:30 GMT 2010


On Tue, 2010-01-12 at 15:52 +1000, Ian Clatworthy wrote:
> 
> What I do care about more is consistent semantics: a command should
> apply to all checkouts or no checkouts at all. So unbind needs to be
> either always be legal or never be legal and, if legal, always mean
> exactly the same thing. (I guess that would depend on whether we felt
> "history" was managed in a bound branch or stacked branch or some new
> sort of branch.)

But unbind is already consistent: it always and only applies to bound
branches. It only, and has only ever affected the branch object.

> I realise the above is a long way short of solving all the issues
> around
> our user model. OTOH, I think it would be a valuable increase in
> functionality (with arguably a decrease in conceptual complexity). And
> I
> think we can make this change without needing to solve other issues
> simultaneously.

How does this fit in with the goals/constraints poolie and I were
discussing at the end of the other thread.

I'd really like to see a big picture emerge here, not single stabs.

For this particular change, I have no confidence that a good solution
can be done cheaply:
 - branch references cannot cache [they act as symlink]
 - stacked branches cannot be committed to (known, open bug)

AFAICT its going to be heavy lifting to remove the code limitations
needed to fix this, whatever route one takes.

> Note: A change like this would need to get agreed to and landed by
> June
> say, leaving enough time for us to update the documentation and iron
> out
> any issues. That's one of the reasons I'm raising this now.
> 
> Thoughts?

Unless its a core goal for the whole team I don't think its going to
happen, for basically technical reasons.

As for the particular UI you put forward, I'd be fine with the idea of a
checkout command you can tell to cache all history, and which cannot be
converted to a normal branch. *Apart from* the ability to cache more or
less than a certain amount, thats what checkout was intended to be when
I originally landed it: bind and unbind and the UI around the rich bound
branches have grown since then. I will note though, that if you have a
cache of all history, there isn't a *technical* reason why that can't be
converted to a local branch... and that the command to do that shouldn't
be 'unbind'.

I also don't think the UI here is as rough as its being asserted to be.
For instance, unbind doesn't work on all branches [it only works on a
branch that is in fact currently bound]. Requiring commands to always
work is a bit of a strange goal on the face of it.

-Rob
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20100112/5ff80cc8/attachment.pgp 


More information about the bazaar mailing list