Mercurial extensions

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

Extensions I maintain

Keyring

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://staging@prod.com/{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 <john.smith@serious.com> in repositories below ~/work, and as Johny <fastjohny@fantasy.net> 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). Type hg tag 1.2.3 and have them all changed just then.

Use it to stop manually commiting version number changes (and thinking about them).

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).

On Remote
Execute some Mercurial command on remote path (for ssh paths). hg onremote staging status, hg onremote staging up -r 3.2 etc (where staging is path mapped to sth like ssh://staging.mydev.net/some/dir).
BitBucketize
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, from which it slightly diverged to accomodate wider range of Mercurial versions.

Another Mercurial stuff

cvs2hg
Here is my copy of cvs2hg (CVS to Mercurial converter, which works much better than hg convert for repositories with branches and tags), modified to work on modern Mercurial’s. I usually offer my fixes upstream, but I decided to keep this repo also as a backup for the original.