On Mon, Feb 16, 2009 at 12:14:07PM +0100, Werner LEMBERG wrote: > My main reason for using git is that I'm used to it because I need it > in other projects. I've also used mercurial (the ALSA project), but > interestingly they have switched to git. The `gitk' program is really > good stuff (and `hgk' for mercurial is a direct clone) -- I suppose > something similar is available for bzr.
'bzr vis' in bzr-gtk, yes. (I understand the "what I'm used to" argument. I have the same in reverse.) > The main critique on the emacs mailing list w.r.t. bzr is that it is > (a) not mature yet This one is odd. It's a free software project and thus continually evolving, but it seems pretty mature to me. Perhaps people are referring to changing repository formats, which are generally a response to performance concerns; git's repository format has changed in the not too distant past as well, although bzr makes it more obvious and makes it easier to convert between formats. > and (b) extremely slow compared to git, sometimes slower by a factor > 10 or more, even for the most fundamental operations like the > equivalent to `cvs log'. This is the standard criticism. It might matter for very large projects like Emacs with very deep history but is not in practice a problem for smaller projects (and certainly any distributed VCS will be much faster than 'cvs log' since they don't need to go to the network for this data). Personally, I find that I lose much more time to battling with obscure user interfaces than I've ever lost in waiting for bzr (computer time is cheap, brain time is expensive); for normal operations on the projects I work with it's easily fast enough. Let's have some perspective on the numbers we're talking about here: groff$ time bzr log ChangeLog >/dev/null real 0m1.382s user 0m1.288s sys 0m0.068s Even creating a new branch and copying all the data to a new working tree only takes 10 seconds, and not much is going to take longer than that. That's with the default setup where each branch is an independent directory; if you set up what bzr calls a repository so that the branch data is shared then it would be faster; if you only want a single working tree for all your branches and just switch between them (git-style) then I expect it would be faster still. I usually don't bother with those optimisations and find it more useful to be able to see different branches on disk at the same time, but one could. (Performance is also a major focus of the bzr developers now, for the sake of the large projects where it does matter.) I don't really want to get into a major revision control system fight here; as I said earlier it seems to be clearly Werner's decision. I didn't want to leave undefended assertions lying around though! -- Colin Watson [[email protected]]
