HTTPS SSH

A simple and powerful text-based interactive user interface for Mercurial

asciicast

Description

Lairucrem provides a useful user interface to the Mercurial DVCS.

It is a text-based interactive interface that helps developpers on their daily usage of Mercurial. Because it is a text-based interface, it can be used over ssh tunnels which is helpful when working on a remote machine.

Lairucrem displays the changeset tree and the patch content of the focused changeset. You can interactively inspect the repository history by changing the focused changeset. We put some effort to make it quite responsive, even on huge repositories whith big patches.

Lairucrem can propose a set of actions that can be applied to the focused changeset, like rebase, update, addremove, etc. A small set of actions are available in the actual version but later releases will propose more actions and a plugin system which will allow you to add your own actions. You won't have to mess with a complex UI, just the actions you need.

Lairucrem uses the command line interface of Mercurial. So it just performs the commands you commonly run. It activates extensions (the "official" ones) when there are needed.

We still work on lairucrem, fill issues if you think something could be improved.

Installation

System wide (administrator privilege required)

pip install lairucrem

User space (no specific privilege required)

pip install --user lairucrem

Development

Environment

You may want to use virtualenv to create an isolated Python environment.

virtualenv /path/to/envs/lairucremenv
source /path/to/envs/lairucremenv/bin/activate

Clone the repository:

hg clone http://bitbucket.org/aleufroy/lairucrem
cd lairucrem

Install dev dependencies and lairucrem (in development mode):

pip install -r dev-requirements.txt -e .

Testsuite and checks

Run the testsuites

py.test --doctest-modules --pylint -q

Note: The --pylint option enables coding standards checks. Take a look at the pylintrc file for detailed coding rules used in lairucrem.

Test coverage

py.test --doctest-modules --cov=lairucrem --cov-report term-missing

Documentation test

pip install docutils
python setup.py --long-description | rst2html --strict -

Tricks

I've added pytest-xdist to dev_requirements.txt which allows pytest to watch for file system changes with the -f option.

Pull request

Please check the followings before sending your pull request:

  • Add yourself to the CONSTRIBUTORS.txt file.

  • Check the new feature/fix by add new tests or by adapting existing tests (test coverage is useful here). If your change does not need test change, tell it in the commit message.

  • Check that tests are all green, including the --doctest-modules and --pylint options. Note that you can disable falsy warnings from pylint (with caution) by adding a comment like:

    #pylint: disable=signature-differs
    
  • Help me understand your patch with a few lines of description in the commit message (but do not translate your code to english :P). This makes the patch integration easier and quicker than it could be without it. You can also refer to an existing issue from the tracker -- I'm not a github/bitbucket addict, so let the commit message self sufficient.

In the meantime, you can send me a message on twitter (alainleufroy) or on the #mercurial IRC channel (aleufroy).

Sponsors