Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

Mercurial Extension Utils

Project Description

This module contains group of reusable functions, which I found useful while writing Mercurial extensions.

1   For Mercurial users

This module is of no direct use to you, but some extensions you may wish to use (for example Dynamic Username or Path Pattern) need it to work.

In normal cases it should be installed automatically with the actual extension, read below for more tricky cases (in particular, for information about installation on Windows).

Note

This document uses Dynamic Username in examples, but the same method should work for any other extension which requires mercurial_extension_utils.

1.1   Installing on Linux/Unix

In typical case mercurial_extension_utils should be installed automatically, without requiring your attention, by commands like pip install mercurial_dynamic_username.

If for some reason it did not work, just install from PyPi with:

pip install --user mercurial_extension_utils

or system-wide with:

sudo pip install mercurial_extension_utils

If you don’t have pip, try:

sudo easy_install mercurial_extension_utils

Upgrade to newer version using the same commands with --upgrade option added, for example:

pip install --user --upgrade mercurial_extension_utils

If you miss both pip, and easy_install, follow recipe from Installing for development section.

1.2   Installing on Windows

Windows Mercurial distributions (including most popular - and well deserving that - TortoiseHg) are not using system Python (in fact, one may use Mercurial without installing Python at all), and installing into bundled Python path is uneasy. To remedy that, extensions utilizing this module handle additional methods of locating it.

The following two methods of installation are available:

  1. If you have some Python installed, you may still install both this module, and extension using it, from PyPi. For example:

    pip install mercurial_extension_utils
    pip install mercurial_dynamic_username
    

    This will not (yet) make the module visible to your Mercurial, but you will get all the necessary files installed on your computer.

    Then activate the actual extension in charge by specifying it’s path, for example by writing in your Mercurial.ini:

    [extensions]
    mercurial_dynamic_username = C:/Python27/Lib/site-packages/mercurial_dynamic_username.py
    

    Note

    This works because mercurial_dynamic_username.py checks for mercurial_extension_utils.py saved in the same directory (and pip installs both modules in the same place). You can get the same effect by manually downloading all files into the same directory (using pip is more handy as it tracks dependencies and supports upgrades).

    Upgrade with pip by adding --upgrade to it’s options.

  2. If you don’t have any Python, clone both the extension(s) repository and mercurial_extension_utils` and put them in the same place, for example:

    cd c:\MercurialPlugins
    hg clone https://bitbucket.org/Mekk/mercurial-extension_utils/
    hg clone https://bitbucket.org/Mekk/mercurial-dynamic_username/
    

    Update repositories to newest tagged versions (untagged versions may be unstable or not working).

    Activate the actual extension by specifying it’s path, for example by writing in Mercurial.ini:

    [extensions]
    mercurial_dynamic_username = C:/MercurialPlugins/mercurial-dynamic_username/mercurial_dynamic_username.py
    

    Note

    Directory names matter. This works because mercurial_dynamic_username.py checks for mercurial_extension_utils.py in ../mercurial_extension_utils and ../extension_utils (relative to it’s own location).

    To upgrade to new version, simply pull and update to newer tag.

1.3   Installing for development

On Windows use second variant from the previous chapter (clone and activate by path).

On Linux/Unix do the same. Clone all the necessary repositories, for example:

cd ~/sources/
hg clone https://bitbucket.org/Mekk/mercurial-extension_utils/
hg clone https://bitbucket.org/Mekk/mercurial-dynamic_username/

then either make it visible to Python by repeating in every repo:

pip install --user -e .

or activate the extension(s) by full path, by writing in ~/.hgrc something like:

[extensions]
mercurial_dynamic_username = ~/sources/mercurial-dynamic_username/mercurial_dynamic_username.py

2   For Mercurial extensions developers

Contained functions are mostly tiny utilities related to configuration processing or location matching. They either extend Mercurial APIs a bit (like function to iterate config items which match regexp), or support tasks which aren’t strictly Mercurial related, but happen repeatably during extension writing (like matching repository root against set of paths defined in configuration).

See docstrings for details.

4   Development, bug reports, enhancement suggestions

Development is tracked on BitBucket, see http://bitbucket.org/Mekk/mercurial-extension_utils/

Use BitBucket issue tracker for bug reports and enhancement suggestions.

Release History

Release History

This version
History Node

1.3.4

History Node

1.3.3

History Node

1.3.2

History Node

1.3.1

History Node

1.3.0

History Node

1.2.0

History Node

1.1.2

History Node

1.1.1

History Node

1.1.0

History Node

1.0.1

History Node

1.0.0

History Node

0.11.0

History Node

0.10.0

History Node

0.9.0

History Node

0.8.1

History Node

0.8.0

History Node

0.7.0

History Node

0.6.1

History Node

0.6.0

Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
mercurial_extension_utils-1.3.4.tar.gz (14.7 kB) Copy SHA256 Checksum SHA256 Source Jun 3, 2017

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting