Category Archives: Mercurial

Distributed Development with Mercurial

Every clone of a Mercurial repository can act as a consistent, fully functional repository itself. This is a very useful property of a DVCS; one that you can take advantage of to make development a lot easier, especially for teams that are dispersed in multiple places of the globe.

Imagine for a moment that your team is not sharing the same physical space every day. In fact, half of your team works in an office in the west coast of the United States and the other half is located somewhere in Europe. Continue reading


Mercurial Clones without a Working Copy

Mercurial repository clones can have two parts:

  1. An .hg/ subdirectory, where all the repository metadata is stored
  2. A “working copy” area, where checked out files may live

The .hg/ subdirectory stores the repository metadata of the specific clone, including the history of all changesets stored in the specific clone, clone-specific hooks and scripts, information about local tags and bookmarks, and so on. This is the only part of a Mercurial repository that is actually mandatory for a functional repository. Continue reading

FreeBSD doc-el picking up speed

As pleasures go, it is a strange yet somewhat refined one to see a project one has started pick up speed. My fellow translators at the Greek documentation team of FreeBSD have been busy lately, and the result of our collective work is a fairly large number of commits to the “doc-el” repository.

There are now at least four translators actively working on a chapter of their own: Manolis Kiagias, Vaggelis Typaldos, Kyriakos Kentrotis and me. Changesets flow between our repository clones almost every day, and I often find myself pulling patches from two or three places at the same time. Continue reading

Dear Santa…

I know it’s a bit early for 2010, but can you please grant me a wish today and count it as one of the 2010 ones?

For 2010 (and the rest of 2009) I wish I can keep up today’s pace of reading code, hacking at it, running tests and then committing; and be able to do that almost every day:

$ hg  log --template '{date|isodate} {author|user}\n' | \
    fgrep 'keramida' | awk '{print $1,$4}' | sort | uniq -c | tail -2
  10 2009-06-01 keramida
  26 2009-06-04 keramida

Oh, and yeah… I’ll be a good boy ;-)

Scripting Mercurial

Dan Fuchs posted a short article about scripting Mercurial to see what files an incoming changeset modifies.

I am always amazed at how easy Mercurial (and other free software tools) make this sort of thing. Continue reading