Size: 1212
Comment: Add link to crew with patches applied
|
Size: 2907
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
== Inotify Extension == | = Inotify Extension = |
Line 3: | Line 3: |
'''This extension is not distributed with Mercurial.''' | ''Authors: Bryan O'Sullivan, Nicolas Dumazet'' |
Line 5: | Line 5: |
''Author: Bryan O'Sullivan'' | '''This extension has been included with Mercurial since version 1.0''' |
Line 7: | Line 7: |
Download site: [http://hg.kublai.com/mercurial/patches/inotify] | '''[[http://article.gmane.org/gmane.comp.version-control.mercurial.general/12475|It definitely has to be considered experimental]]''', see also InotifyBug. == Overview == |
Line 9: | Line 10: |
It is not yet a standalone extension. You will have to apply the patch queue to a mercurial tree and use that version of mercurial. A recent version of crew with the patches applied may be found here: [http://hg.kublai.com/mercurial/inotify] | This extension makes status requests instantaneous for even very large repositories, by subscribing to the paths in the repository instead of having to check them all at every status command. |
Line 11: | Line 12: |
It also requires Bryan's [http://hg.kublai.com/python/inotify python bindings for inotify]. | Inotify is currently a Linux-only extension, using the Linux 2.6 inotify API. |
Line 13: | Line 14: |
=== Overview === | An alpha Mac OS port is now available: it uses the MacOS 10.5 FSEvents API through the [[http://pypi.python.org/pypi/pyfsevents|pyfsevents]] module. It can be tested by ''qcloning'' [[http://bitbucket.org/nicdumz/mercurial-crew-mq/|Nicolas's MQ]] (''hg qclone [url]; hg qpush -a'') |
Line 15: | Line 16: |
This extension uses the linux 2.6 inotify API to make status instantaneous for even very large repositories, by subscribing to the paths in the repository instead of having to check them all at every status command. | == Installation and configuration == To enable it, edit your hgrc: {{{ [extensions] inotify = }}} You can either enable it for each individual repository you need it in, or globally. The extension contains both a server and a client component. By default, it will start automatically. To prevent this, edit either your global ~/.hgrc or .hg/hgrc in repositories where you don't want to use inotify: {{{ [inotify] autostart = False }}} The server runs in the background as a daemon when started automatically. To start it manually, use the command: {{{ $ hg inserve [-d] }}} By default, the server output will be lost. You can use the ''log'' option to capture the server output: {{{ [inotify] log = '/tmp/inotify.log' }}} == Obsolete installation instructions (Mercurial older than 1.0) == These instructions apply to older, out-of-tree versions of the inotify extension. === Installation === The inotify extension requires Bryan's [[http://hg.kublai.com/python/inotify|python bindings for inotify]]. You can either install them the normal way (via {{{setup.py}}}) or do an in-place build {{{setup.py build_ext -i}}}, then create a symlink from the inotify directory into the inotify extension directory. For example: {{{ $ hg clone http://hg.kublai.com/python/inotify python-inotify $ cd python-inotify $ python setup.py build_ext -i $ cd .. $ hg clone http://hg.kublai.com/mercurial/extensions/inotify $ cd inotify $ ln -s ../python-inotify/inotify . }}} The extension should now be ready to use. |
Line 31: | Line 81: |
Line 33: | Line 82: |
CategoryExtension | CategoryBundledExtension |
Inotify Extension
Authors: Bryan O'Sullivan, Nicolas Dumazet
This extension has been included with Mercurial since version 1.0
It definitely has to be considered experimental, see also InotifyBug.
Overview
This extension makes status requests instantaneous for even very large repositories, by subscribing to the paths in the repository instead of having to check them all at every status command.
Inotify is currently a Linux-only extension, using the Linux 2.6 inotify API.
An alpha Mac OS port is now available: it uses the MacOS 10.5 FSEvents API through the pyfsevents module. It can be tested by qcloning Nicolas's MQ (hg qclone [url]; hg qpush -a)
Installation and configuration
To enable it, edit your hgrc:
[extensions] inotify =
You can either enable it for each individual repository you need it in, or globally.
The extension contains both a server and a client component. By default, it will start automatically. To prevent this, edit either your global ~/.hgrc or .hg/hgrc in repositories where you don't want to use inotify:
[inotify] autostart = False
The server runs in the background as a daemon when started automatically. To start it manually, use the command:
$ hg inserve [-d]
By default, the server output will be lost. You can use the log option to capture the server output:
[inotify] log = '/tmp/inotify.log'
Obsolete installation instructions (Mercurial older than 1.0)
These instructions apply to older, out-of-tree versions of the inotify extension.
Installation
The inotify extension requires Bryan's python bindings for inotify. You can either install them the normal way (via setup.py) or do an in-place build setup.py build_ext -i, then create a symlink from the inotify directory into the inotify extension directory. For example:
$ hg clone http://hg.kublai.com/python/inotify python-inotify $ cd python-inotify $ python setup.py build_ext -i $ cd .. $ hg clone http://hg.kublai.com/mercurial/extensions/inotify $ cd inotify $ ln -s ../python-inotify/inotify .
The extension should now be ready to use.
Configuration
Configure your .hgrc to enable the extension by adding following lines:
[extensions] inotify=/path/to/inotify
You can either start up the inotify extension on a repository with hg inserve or have it autostart with the following .hgrc snippet (either global or in the repository .hg/hgrc in which you would like to use inotify:
[inotify] autostart = true