Overview

Welcome to my personal Mercurial extension repository!  Here you will find a collection of extensions that I have built to make my life a bit easier and/or serve my own purposes.  You're free to take my extensions and use them or modify them in any way you'd like.  I disclaim all responsibility for any bad things that happen as a result of using my extensions.

Extensions
==========

- neclone: Offers a single command, neclone, which allows you to clone a Mercurial repository into a directory that is not empty.  It is useful when you want to import existing files into a repository that was initialized elsewhere.

- qadd: A collection of Mercurial Queue-related commands, such as qserve and qlog, which will interact with the patch queue repository for a regular repository without going into the .hg/patches/ tree.  The commands are basically just wrappers around the standard Mercurial commands.  Commands currently include:

    - qlog: show the logs from the patch queue repository
    - pushq: push a patch queue's changesets out to another repo
    - qserve: run ``hg serve`` for the patch queue repository
    - qreorder: reorder the patches in your patch queue.  Usage: hg qreorder [new index] [patch name]
      If no patch name is specified, it will move the currently applied patch to the specified 1-based index.
    - qticket: open a ticket/issue tracking URL for a ticket based on some pattern in either the patch name or first line of the patch.  To use this command, simply add a new section to your .hg/hgrc file as such:

        [ticket_urls]
        bitbucket = (contents:#([0-9]+).*) http://bitbucket.org/codekoala/twibber/issue/\1/
        bitbucket2 = (file:^([0-9]+)_.*) http://bitbucket.org/codekoala/twibber/issue/\1/

      The format of your policies is as such:

        (match type:regex) URL with back references

      The two options that are currently available for "match type" are:

        - file
        - contents

      If you use "file" you will only have the patch name to apply the regex to.  With "contents" you only get the first line of the patch.  You can set the first line of your patch by using `hg qref -e` (what you type here is also what will be your commit message in your hg logs).

      If any policies succeed, the command will attempt to launch your default web browser to the location determined by the policy.

- mpush: Multi-push and multi-pull commands.  This allows you to easily replicate your changesets across several different repos in one command.  These commands, mpush and mpull, will push to and pull from all repositories listed in the [paths] section of the local repository's .hg/hgrc file.  Commands currently include:

    - mpush: push any outstanding changesets to each repository listed in the [paths] section of your config
    - moutgoing: determine which changesets would be pushed to each repository listed in the [paths] section of your config
    - mpull: pull any outstanding changesets from each repository listed in the [paths] section of your config
    - mincoming: determine which changesets would be pulled from each repository listed in the [paths] section of your config

- todo: Search through your entire repository for "TODO:".  Matches can either be printed to the screen or written to a file.