User: Password:
|
|
Subscribe / Log in / New account

Vernooij: Bazaar-NG: 7 years of hacking on a distributed version control system

Vernooij: Bazaar-NG: 7 years of hacking on a distributed version control system

Posted Dec 21, 2012 5:28 UTC (Fri) by dpotapov (guest, #46495)
In reply to: Vernooij: Bazaar-NG: 7 years of hacking on a distributed version control system by dgm
Parent article: Vernooij: Bazaar-NG: 7 years of hacking on a distributed version control system

> Many people complain that git naming and commands are inconsistent, and that it's somehow difficult to learn.

Some complains about Git being difficult to learn comes from its early days. (Before Git 1.5.0, Git did not have any UI suitable for normal folk, and then the user documentation was somewhat scarce or confusing as it often referred to some low-level "plumbing" commands, but many issues got fixed over time.)

Now I think most complains come from people who try to use Git in a centralized workflow as if it were CVS or SVN. Git appears unnecessary complex for that workflow and does not follow CVS naming convention. While Mercurial and Bazaar has tried to make some things more CVS like, Git has focused more on better support of distributed workflows and general flexibility. (Linus Torvalds is known for his disdain to CVS: "I'm trying my best to be a humanitarian and rid the world of the scourge that is CVS, but I'm not sure I can undo the untold mental damage wrought by it over decades of quiet suffering.")

"Easy to use" is rather subjective, it often depends on past experience and your workflow. In simple cases, usually you can see one to one match between Git, Mercurial or Bazaar commands, though those names may be different. For example, "git pull" = "bzr update" = "hg pull --update".

Apparently, Bazaar uses "update" due to tradition going back to CVS, where developers periodically use "cvs update" to merge their own (not yet committed ) changes with the upstream. In the Linux kernel workflow, developers are discouraged from doing unnecessary merges their topic branch with the current 'master' branch. Typically, it is the upstream maintainer who pulls changes and resolves possible conflicts. Thus 'pull' makes more sense in this context: Linus Torvalds does not update his master branch, he pulls new changes from his lieutenants.

Another thing is that Mercurial and Bazaar tries to give you a nice set of basic commands but for anything else you need plugins (or extensions in Mercurial). If you install Git, you get a lot of power out-of-the-box, so naturally it comes with more commands, and Git does not try to hide useful things from you (like the staging area). So some people find it more difficult in the beginning, but once you understood the core model of Git, most things immediately start to make sense, and Git is more transparent in what it does.


(Log in to post comments)

Vernooij: Bazaar-NG: 7 years of hacking on a distributed version control system

Posted Dec 23, 2012 12:09 UTC (Sun) by juliank (subscriber, #45896) [Link]

Please note that bzr pull exists as well, and bzr merge. The equivalent to git's pull is bzr merge, as far as I can tell.


Copyright © 2017, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds