Comparison with Git, Mercurial or Darcs?
Zooko Wilcox-O'Hearn
zooko at zooko.com
Wed Nov 4 04:10:27 GMT 2009
[My motivation in asking the following questions is mostly to improve
darcs, but hopefully I'll accidentally improve bzr too.]
On Tuesday,2009-11-03, at 18:49 , Ben Finney wrote:
> I have recently been using Darcs, and many things about Bazaar are
> much better in my experience:
>
> * It respects the recorded history of changes: When I make a change
> and commit it, later changes don't threaten to alter or remove my
> change from the ancestry. Changing history is possible, but is
> exceptional; nothing like as common as ‘darcs amend’ or ‘darcs
> obliterate’ etc.
Do you mean that you used 'darcs amend' or 'darcs obliterate' and
then regretted it, or that someone else used them and removed your
patch from their repository? Of course changing the history of your
own repo can't be prevented (without some sort of DRM), and of course
it is possible to change history in bzr as well, but I wonder if
there is some sort of "attractive nuisance" problem where darcs makes
it too easy or makes it seem too safe and then you regret it. (I've
had that experience myself.)
> On the other hand, “oops” moments are easy to undo (‘bzr uncommit’).
How does 'bzr uncommit' avoid the regret mentioned above?
> * It has a simple way to put some changes aside (‘bzr shelve’)
> while committing the rest, and it's easy to bring uncommitted
> changes from one branch to another, if while working on the change
> there I decide they make more sense here (‘bzr merge --uncommitted
> $OTHERBRANCH/’).
Are you saying that you find it to be *easier* to do that in bzr than
in darcs? I'm surprised, because I use darcs to do that sort of
thing every day and it seems extremely easy to me. Perhaps it is
just that you were more expert at bzr when you made this comparison?
> * Especially, it allows for a centralised workflow when desired
> (‘bzr checkout’ or ‘bzr bind’) without administrative overhead, and
> without harming distributed operation.
Do 'bzr checkout' and 'bzr bind' do something different that 'darcs
get' and 'darcs push' with regard to this?
> * Rename is a first-class operation
> * Directories — even empty ones — are first-class citizens
As Daniel Carrera already mentioned, both of these are true of
darcs. I don't know how you could make this mistake. Did you read
somewhere that rename wasn't first-class in darcs?
Thanks,
Zooko
---
Your cloud storage provider does not need access to your data.
Tahoe-LAFS -- http://allmydata.org
More information about the bazaar
mailing list