Comparison with Git, Mercurial or Darcs?

Daniel Carrera dcarrera at gmail.com
Wed Nov 4 11:09:42 GMT 2009


On Wed, Nov 4, 2009 at 8:22 AM, Stephen J. Turnbull <stephen at xemacs.org> wrote:
> You won't.  It's not interesting to patch theorists or Darcs
> advocates. :-)

Well, I did spend a while learning the theory of patches and all the
interesting work is what happens when two primitive patches affect the
same file and how they commute. I was very pleased when I was able to
basically derive the theory of patches. It feels a lot like matrix
algebra.


>  > Can you tell me how I can uncommit a change that I committed a few
>  > steps ago? Just take the simple use case: I commit change A, then B,
>  > then C, and I want to uncommit A. I do this very often. It makes my
>  > whole workflow a lot simpler. Can I do this with Bazaar?
>
> There are several ways to achieve that effect.  AFAIK all the relevant
> VCSes support applying the reversed patch (IIRC this is "darcs
> revert").  If you want the patch to actually disappear from history,
> there are rebase and remove-revision commands you can get as plugins,
> but rebase doesn't look flexible enough and remove-revision is not
> well-documented.  I think you just say "bzr remove-revision <branch>
> <revspec>", but as I say, not well-documented.

That seems noticeably more complicated than what I do with Darcs. I'm
often confused by "rebase". If I remember correctly, it has something
to do with having a branch with multiple "heads" in the same working
directory.


>  > I've never heard of looms but I would be interested to learn more
>  > about them. Maybe they would be an alternative for me. Do you know of
>  > any page that explains that a loom is?
>
> http://doc.bazaar-vcs.org/plugins/en/loom-plugin.html
> http://doc.bazaar-vcs.org/plugins/en/pipeline-plugin.html
> http://doc.bazaar-vcs.org/plugins/en/rebase-plugin.html
>
> *Rebase* is there just 'cause it was easy to copy and edit.  I put in
> *pipelines* because I think you'll find them more appropriate for the
> workflow you describe.  *Looms* look more complex than you need (they're
> excellent for *partially dependent* parallel development, while your
> workflow sounds to me like *mostly independent* parallel development).
> Also, pipelines apparently have a feature for taking care of your
> uncommitted work (sort of auto-shelve?)

Thanks. I took a brief look and honestly, I didn't understand. I'll
have to take another look later when I have more time.

The documentation on these pages could be better. These pages go right
into the detailed commands without explaining what the high-level
purpose of the plugins is. So it's hard to make sense of it if you
don't already know what the plugin does :-P

The page for "rebase" says: "Purpose: To re-base a branch". For
"pipeline" it says "Manage a series of branches as a pipeline. For
"loom" it says "Loom is a bzr plugin which adds new commands to manage
a loom of patches." Gee, thanks.

So I'll have to look at these later when I can give it more time.

Thanks for the links.

Daniel.
-- 
No trees were killed in the generation of this message. A large number
of electrons were, however, severely inconvenienced.



More information about the bazaar mailing list