LWN.net Logo

What do LWN-ers use ?

What do LWN-ers use ?

Posted Mar 16, 2008 18:24 UTC (Sun) by johill (subscriber, #25196)
In reply to: What do LWN-ers use ? by astrophoenix
Parent article: Emacs chooses Bazaar

For me, the big problem with mercurial is that it stores all state for each repository and has
no way of packing and/or combining things. Hence, every checkout takes the full history, where
with git you only need the additional objects and make it refer to another tree for most
objects, so another working tree is cheap, where with mercurial you copy all history again.


(Log in to post comments)

What do LWN-ers use ?

Posted Mar 16, 2008 18:49 UTC (Sun) by astrophoenix (subscriber, #13528) [Link]

interesting. I can tell you that when you do keep the full history around, mercurial is a lot more space-efficient than git. and if you are making a new copy of a tree on the same filesystem, mercurial hard-links everything, so it's still cheap.

What do LWN-ers use ?

Posted Mar 17, 2008 4:10 UTC (Mon) by dlang (subscriber, #313) [Link]

git has the option to use hard links when doing a clone. I've also seen some very spectacular
compression achieved with git packs. are you possibly comparing to a git repository that
hasn't been packed?

What do LWN-ers use ?

Posted Mar 19, 2008 20:36 UTC (Wed) by astrophoenix (subscriber, #13528) [Link]

you're probably correct; I was probably comparing an unpacked git repo to 
a mercurial repo when I said mercurial took less space. 

What do LWN-ers use ?

Posted Mar 16, 2008 19:03 UTC (Sun) by astrophoenix (subscriber, #13528) [Link]

more precisely, mercurial hard links all the history files (not the working copy files).

Space-efficient checkouts

Posted Mar 17, 2008 5:31 UTC (Mon) by kevinbsmith (subscriber, #4778) [Link]

I could be wrong, but my understanding is that bzr is one of the few (or maybe the only?)
d-vcs that can share the history between multiple branches/checkouts, even under MS Windows
(without hard links or symlinks). If you are serious about cross-platform support, that's a
big feature, because you want branching to be cheap for everyone on all platforms.

If anyone can confirm/refute whether bzr and/or other systems can in fact do this, please do
so.

Space-efficient checkouts

Posted Mar 17, 2008 9:20 UTC (Mon) by wingo (subscriber, #26929) [Link]

I use bzr on a number of projects, but I've found that git's in-place branching is much more
useful than bzr's shared-repository code. My brain and fingers don't do so well with multiple
directories for a project; it's much easier for me to have one directory and switch branches
at will.

Aside from that, having the set of branches stored in the repo itself is good from a
discoverability POV.

Anyway, my point was that shared repositories are less interesting when you have in-place
branching. (I like both bzr and git, so no flames please.)

Space-efficient checkouts

Posted Mar 17, 2008 20:39 UTC (Mon) by incase (subscriber, #37115) [Link]

I still don't use a dVCS, but I find in-place branches difficult for me. Not conceptually, but
I like to keep different branches around, like my Debian packages: I sometimes maintain both a
backport to Debian stable and a version of the same package in unstable (i.e. the current
development part). I would find it quite inconvenient to commit anything I currently try in
the development branch only to be able to safely switch to the backport's branch. However, I
know that some people like to commit any (reasonably sized) changes they do, while I usually
like to try my changes at least on a very basic level before committing and doing more
extensive tests. This sometimes means that I have changes uncommitted for days at a time.
Certainly something many developers don't like to have.
Anyway, based on this, I like mercurial better than git.

On the local storage of all the history vs. referencing the remote repository, I also prefer
the mercurial way. Once I cloned/branched a remote repository, I have all history at my
fingertips (not just the commit messages), even if the remote repository becomes unreachable
for some reason.

Space-efficient checkouts

Posted Mar 20, 2008 11:15 UTC (Thu) by engla (guest, #47454) [Link]

A git user would use a "topic branch" for each such string of unacknowledged changes. Then
when you have evalutated the changes just merge the branch or delete it at will.

Arguably a system that doesn't let you commit for days reminds me of svn, patch+diff or
similar old-fashioned systems.

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