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