Not logged in
Log in now
Create an account
Subscribe to LWN
LWN.net Weekly Edition for May 23, 2013
An "enum" for Python 3
An unexpected perf feature
LWN.net Weekly Edition for May 16, 2013
A look at the PyPy 2.0 release
The removal of PF_LOCAL socket support I see as a showstopper. TCP sockets are scarce in number, well, I did manage with mysqlslap to use them all up at one point.
New releases from MySQL descendants Drizzle and MariaDB
Posted Oct 25, 2010 6:53 UTC (Mon) by nix (subscriber, #2304)
Posted Oct 25, 2010 7:40 UTC (Mon) by anselm (subscriber, #2796)
With Emacs, it's political. Bazaar is the only DVCS that is also an official
GNU project. See this LWN article.
Posted Oct 25, 2010 7:43 UTC (Mon) by jbh (subscriber, #494)
(Normally I wouldn't care, but the damn thing was turned on by default when I installed the bzr graphical tools. Since then, I have avoided it whenever possible.)
Posted Oct 25, 2010 19:30 UTC (Mon) by nix (subscriber, #2304)
(Not that git or hg bother to ring bells when expensive operations complete, because even massive tree clones in both of these tools take a fraction of the time they take in bzr.)
Posted Oct 27, 2010 17:32 UTC (Wed) by firstname.lastname@example.org (guest, #70860)
Thanks for your comment about unix socket support. I went on and added a plugin last night so that Drizzle will handle the MySQL UNIX Socket protocol. It will be in the next beta.
As far VCS goes, my personal take on this is that they are all the same (assuming that they are distributed!). Our choice for BZR is more about Launchpad then the tool itself. LP is a wonderful sit to use and github is just a little too minimalistic. We have also found that users tend to pick up BZR more quickly then GIT, and that GIT support on Windows is really subpar. If someone finds that the feel strongly enough about GIT, I am sure that a mirror could be run.
Posted Oct 31, 2010 13:08 UTC (Sun) by fjalvingh (guest, #4803)
I do know some reasons why bazaar is used though, and they have nothing to do with political reasons:
1. The Bazaar user interface (meaning it's command set, and the handling of commands) is way, WAY better than Git's or Mercurial's. It's command set is well thought out; commands do NOT do unexpected things AND do only ONE thing. There are no options that change behavior in unexpected ways.
Commands have good default behavior and are very easy to explain to developers that are not that interested in DVCS' operation.
For people that are used to learn their tools fully and understand every nook and cranny of them this is not important, but it is very important for the "I'm just using it" people. It has a small learning curve, and things do not go wrong often because people quickly learn what's needed- and do not have to learn many things because the tool does lots of things right automatically.
2. Bazaar has first-class rename support. Whether this is important depends on what you're developing but in some cases it can be very important. In our case we're using Java and we support multiple versions of the same product. When you refactor Java code the .java source files move all over the directory tree. Bazaar's rename support allows us to refactor our code in newer versions while maintaining the ability to merge fixes and changes from older versions into that refactored code- with remarkably little (usually zero) conflicts and problems.
Not having this means we would effectively be banned from doing any kind of refactoring at all, because we would get merge conflicts all over when merging fixes from older versions upwards.
Bazaar is slower than some other tools on some actions, but most of it is hardly noticeable once you start using things like shared repositories. All base actions are quite fast- at least fast enough not to be noticeably slow. Having a commit finish in 0.02 or 2 seconds is actually not important, even though one is 100x faster.
My biggest "gripe" with bazaar is that it's childs play to functionally (and sometimes technically also) destroy a repository. Some bazaar versions have horrible bugs that will destroy your repository if they are used on it. I've lost all history of work on our main repo's *twice* because of that!!!! And till this day there *still* is NO way to define a repository as "usable by versions x, x and x only". Since distro's like Ubuntu change quickly and so multiple versions of bazaar easily proliferate also it is kind of a timebomb...
Likewise support for things like proper line endings (CR, LF, CRLF) are there in theory, but it's definition is not part of the repository but must be maintained on every user's workstation!?!?! Any user forgetting to configure this properly will slowly destroy the repository with every commit he does- without any way of checking. I do not understand why someone would create such a stupid way of configuring things, but I am flabbergasted that it is not fixed!
A similar problem is related to plugins. Because there is no central "gatekeeper" in bazaar it is often important to have commit-time checks executing /before/ sh*t enters the repository. We for instance scan for proper file encoding (Only UTF-8 where that is allowed; only iso-8859-15 at other places etc), proper source structure (no whitespace at line ends, tab/space usage etc). These kind of checks are often needed because badly configured IDE's can easily save a fully-changed version of a file even though only 1 line was changed- for instance because leading spaces are translated to tabs or v.v.
Bazaar has no way to tell //to a repository// that changes are not allowed unless version x.xx of a plugin is present. So people can forget to install it and commit problems until discovered. Idiocy.
These things alone mean that for us bazaar is fragile, and the repository needs lots of maintenance (several times a year) when someone forgot to follow company guidelines for tool configuration. It's the prime reason why I closely monitor progress on other DCVS's. But the ease of use and the rename support are too important to leave bzr right now.
Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds