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