presenting the fundamental abstractions

Matthew D. Fuller fullermd at over-yonder.net
Sat Sep 8 01:29:00 BST 2007


On Thu, Sep 06, 2007 at 08:21:53AM -0500 I heard the voice of
Matthew D. Fuller, and lo! it spake thus:
> 
> It also makes it much easier to explain things like "I just merged,
> why do I need to commit", and "I pushed, how come I still see the
> old files on the server" and so forth, when you can describe what
> components various activities affect.

Good example flew by on IRC:

<foo> I did a bzr checkout --light-weight http://foo/bar/
<foo> no when I cd into bar and do a bzr pull I get issues about
    read-only?
<foo> bzr: ERROR: bzrlib.errors.UnlockableTransport: Cannot lock:
    transport is read only: [...]
[... mention of 'update' ...]
<foo> Can you point me to a url where it explains diff between pull
    and update? I assume a checkout --light-weight means bzr expects
    no changes will happen in that area and it's more or less r/o?


Given a grounding in the concepts, one can just lay out a few facts
for this case:

1) 'pull' updates a branch
2) 'update' updates a working tree
3) 'checkout' creates a working tree for a branch  [light vs. heavy
   being irrelevant to the fact; they just affect minor implementation
   details]
4) http is readonly

and the first question/issue is answered by combining (1), (3), and
(4), and the second directly in 9 words via (1) + (2).


Without that grounding, though, you're left with trying to describe
the issue and differences with vague references to "CVS/SVN-like" and
handwavings of "Well, your pull in this case is actually trying to
pull over THERE, not where you are", which are unsatisfying all
around.  It ends up seeming like the whole tool is a bunch of weird
special cases that have to be memorized, rather than quite consistent
and easily synthesizable.


-- 
Matthew Fuller     (MF4839)   |  fullermd at over-yonder.net
Systems/Network Administrator |  http://www.over-yonder.net/~fullermd/
           On the Internet, nobody can hear you scream.



More information about the bazaar mailing list