[MERGE] make 'push' default to parent branch
Scott Scriven
bzr at toykeeper.net
Tue Jul 29 23:07:09 BST 2008
* Russel Winder <russel.winder at concertant.com> wrote:
> ... the average Bazaar user will know about 1% of what the
> Bazaar developers do, and probably use less than 5% of the
> functionality.
It helps when users can transfer their experience with other
systems to bzr. That makes people feel more confident because
they understand what's happening, and they tend to like bzr more
when it "just works" in the ways they have come to expect.
Bzr does a pretty good job with this (which is no easy task), but
there are still a few details here and there which differ in
unnecessary ways.
> I like the goal of Bazaar: DVCS with a consistent and simple
> model. Contrast Git.
I'm not too fond of git, but this seems backward. Git has a
relatively simple model with complex implementation.
In git, you have a repository. It has history, one or more
heads, and optionally a working tree. It also has a complex UI
which exposes too many implementation details.
Bzr has standalone branches, shared repositories, unbound
branches, bound branches, remote branches, stacked branches,
lightweight checkouts, looms, and different rules for each
regarding working trees, heads, history, etc... and a handful of
different storage back ends, many of which are incompatible with
various features and each other.
It's not a bad thing; just an observation. To put it in analogy
form, if git were a knife, bzr would be a Swiss Army multitool.
That's part of why I like it. But for users who are still
struggling with basic DVCS concepts, bzr may be a bit of a
conceptual overload.
> > It also doesn't help that "checkout" means something
> > different in bzr than in git, hg, and bitkeeper.
>
> Or put another way, isn't it wrong of Mercurial, Git and
> BitKeeper to use the term checkout in a way that is
> inconsistent with CVS, Subversion and Bazaar?
I suppose I was a little vague. The "bzr checkout" command does
the same thing as git/hg, by default. It also provides cvs-like
behavior with "bzr checkout --lightweight SRC DEST". So, it
supports both camps. But I wouldn't expect a git/hg user to read
the docs for "checkout" when looking for a way to make "push"
smarter.
For a git/hg user, the concept of a bound branch is a little odd.
I can see how it would be nice for cvs/svn users, but I avoid it.
To me, it's just like a regular branch except "update" and
"commit" are broken. It's conceptually simpler for me to commit
and push separately, because it's more consistent with the rest
of the DVCS world and it reduces the amount of context necessary
to guess what each command will do.
-- Scott
More information about the bazaar
mailing list