Checkouts vs bound branches
John Szakmeister
john at szakmeister.net
Tue Jun 30 10:11:53 BST 2009
On Tue, Jun 30, 2009 at 12:31 AM, Matthew D.
Fuller<fullermd at over-yonder.net> wrote:
> On Mon, Jun 29, 2009 at 09:59:23AM +1000 I heard the voice of
> Ian Clatworthy, and lo! it spake thus:
>>
>> Right. See http://bazaar-vcs.org/DraftSpecs/SimpleCheckouts.
>
> I for one continue to disagree. And I think that spec demonstrates
> some of the current problems by falling into them.
>
> -------------
> If you think a lightweight checkout is a heavyweight checkout with
> zero history cached (like the spec author initially expected), you're
> missing a key semantic difference:
>
> * lightweight checkout = tree & a reference to a branch
> * heavyweight checkout = tree+branch & a bind to a second branch.
> -------------
>
> That is indeed a problem, but the problem is that that "key semantic
> difference" *IS* a key semantic difference of the implementation and
> thought of as such, rather than as an unfortunate leak of an
> implementation detail that was never fixed.
>
> Checkouts and bound branches are two different beasts, and it's highly
> unfortunate that they're similar enough that they were implemented as
> if they were the same. The solution to that isn't to declare that the
> variant (heavy) of checkouts that is implemented as if it were a
> synonym for bound branch no longer exists, it's to stop treating them
> as synonyms and fix the places that leak. I'm not interested in bound
> branches, but I have plenty of use for checkouts that have a local
> cache.
The snippet above only talks about checkouts. In what way does a
bound branch differ from a heavyweight checkout? I'm not trying to be
facetious, I'd just like to understand the difference. I honestly
don't know what one provides that the other doesn't.
Thanks!
-John
More information about the bazaar
mailing list