Mercurial extensions

I wrote some Mercurial extensions. Click their names to get detailed descriptions.

Extensions I maintain


Oldest one, preserves HTTP and SMTP passwords in secure storages like Gnome Keyring, KDE Wallet, Mac OS/X Chain, or Windows Vault.

Use it if you hate entering passwords on every push, but are not comfortable writing them in plaintext hgrc files.

Path Pattern

Handles global definitions of path aliases - rules like in any directory named ~/work/{anything} handle hg push production by pushing to ssh://{anything}.

Use it if you find maintaining [paths] over many repositories troublesome and boring.
Dynamic Username

Sets different commit username depending on the repository disk location.

With this extension you may commit as John Smith <> in repositories below ~/work, and as Johny <> in code under ~/hobby. Use it if you maintain a few commit identities.
Update Version

Automatically fix VERSION constants whenever you tag new release (according to the tag).

Use it to stop manually commiting version number changes.
All Dirs

Execute the same Mercurial command in all repositories down some directory tree. hg alldirs status, hg alldirs pull etc.

Use it to save yourself some typing (or clicking).

Create, modify, or update BitBucket repository from command line (hg bitbucket_create, hg bitbucket_status, …).

Extensions I noticeably contributed to

I contributed to, actively use, and feel co-responsible for:
All Paths

Pull/Push to all remotes at once (or to predefined remotes group). Use it to save yourself some typing (or clicking).

My code is forked from Ludovic Chabant version, to which I offer my changes back, so both repos usually stay in sync. At times mine may contain some changes not yet merged back upstream.

Another Mercurial stuff

Here is my copy of cvs2hg, modified to work on Mercurial’s >= 3.1. That’s just a tiny change and I offered it upstream, but I decided to keep this repo also as a backup for the original.

«   ::   Contents   ::   Python modules  »