Mercurial is also distributed, but it's very, very fast. It's even (gasp) well-documented! There are, however, a few things I think a newbie should know up-front.
- The tutorial assumes you'll start by copying an existing mercurial repository. I wanted my own, though, and it took me several tries to figure out that I needed to do this:
~/existing$ hg init
~/existing$ hg add foo.bar
~/existing$ hg commit
~/existing$ cd ..
~$ hg clone existing newdir
Later on, if I make new files inexisting
, they won't get tonewdir
until I~/existing$ hg add newfoo.bar
~/existing$ hg commit
~/existing$ cd ../newdir
~/newdir$ hg pull
~/newdir$ hg updatepull
brings fresh metadata in from the other repository, storing it in .hg, but doesn't actually go on to update the files themselves. That's whatupdate
does. It took a while to get it, but now that I do, it seems intuitive and helps me feel in control. - Your EDITOR or HGEDITOR environment variable must be set, or else
hg commit
will hurl you pitilessly into vi (*nix) or throw up its hands and scoff at you (Windows). - But, if you use gedit and already have another file open in it, you get
~/existing$ hg commit
transaction abort!
rollback completed
I suspect that may happen with other multi-file editors, too. I'll useEXPORT HGEDITOR=pico
.