History editing (Was: Will re-basing support be added into Bazaar core?)

Paul Moore p.f.moore at gmail.com
Mon Apr 20 14:12:42 BST 2009

2009/4/20 Ian Clatworthy <ian.clatworthy at internode.on.net>:
> Paul Moore wrote:
>> Ah! So that's what the business of levels in the history log and
>> mainlines and all that stuff is about! It never registered with me
>> that the bzr concept of history looked like this.
>> That explains a lot about how people view things. And it's probably a
>> more significant difference between the various different DVCS than
>> I'd realised.
> That implies that the User Guide still isn't good enough. Have a read of
> http://doc.bazaar-vcs.org/bzr.dev/en/user-guide/index.html#bazaar-zen
> and tell us (via a patch if you can!) how it needs to be improved.

No, it means that I didn't read the user guide. Unfortunately, I don't
generally read user guides - I pick up examples from the web, read
"high level" stuff on project websites, grab the application and start
using it. I then pick up details by nosing round in developer mailing
lists and the like.

> Honestly, the top 3 DVCS tools are all great products. When Bazaar 2.0
> goes live with a format that ought to pretty much remove speed and
> efficiency from the list of differences, we'll be competing even harder
> on philosophy and feature set. And our philosophy *is* different:

That may be the issue. If the basic philosophy is different, that
should be a "headline item" on the Bazaar website, and in how people
discuss Bazaar, etc. Otherwise the impression that Bazaar, Mercurial
and Git are all mostly the same, but git is Windows-hostile, Mercurial
is a bit nuts-and-bolts, and Bazaar is slow and has a million
confusing repository formats (:-)) perpetuates, without people
understanding the important distinctions.

Please excuse some caricature in the following - I follow what you're
trying to say, but it feels to me like you're not getting the point
across in a way that non-experts understand (there are shades here of
the discussion on how dpush is a reasonable command name because git
users will recognise it, missing the point that it's *non-git* users
you're targeting):

> * we aim to be adaptive rather than tell users that there's one true
>  workflow and one true workspace setup (when
>  http://bazaar-vcs.org/DraftSpecs/SharedTreeAcrossBranches lands that
>  will be even more true)

"There are lots of commands and I can't work out which ones are
irrelevant to me", "too many choices, not enough guidance".

> * we believe the mainline - and it's integrity - is more important than
>  "it's just a DAG with named heads".

"Uh, what? Mainline? Sounds like Subversion, I thought DVCSs were
meant to be good for branching".

> If those differences aren't obvious by reading the first 2 chapters of
> the User Guide, then I'm failing in my job. So help me please!

The User Guide is good (from a brief look - I *still* haven't spent
the time reading it all! :-)) but it's the one-liners and marketing
that are missing the mark.

I can't help with the "adaptive" one, because in all honesty I see
that as a disadvantage - pick your workflow and there is a subset of
Bazaar that does what you want. But I don't know what happens if the
workflow I like isn't one that is supported. I'd prefer a toolkit of
composable parts from which I can build my workflow - maybe that's why
I prefer Mercurial (and if git was less Windows-hostile, maybe git as

On the history one, I'd go for something like

"Unlike other DVCSs, Bazaar treats history as a main thread, with many
branches (which are easily managed, and may be short- or long-lived).
By default, the details of branches are collapsed, but they can be
seen easily when required".

Which probably just proves that I can't write marketing blurb, but I
hope it helps :-)


More information about the bazaar mailing list