Differences between revisions 7 and 28 (spanning 21 versions)
Revision 7 as of 2008-03-17 22:27:35
Size: 2177
Editor: bos
Comment:
Revision 28 as of 2013-11-01 20:19:39
Size: 1758
Editor: Rain
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
'''This extension is distributed with recent builds of Mercurial, but not in a formal release.''' ''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'''

<!> This feature is [[UnlovedFeatures|unloved]].

<!> This feature has known correctness issues. '''Do not use it if you care about your sanity.''' Consider using HgwatchmanExtension instead.
Line 9: Line 13:
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. 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 [[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 12: Line 20:

The inotify extension is now distributed with the Mercurial source, though it is not yet present in a formal release.
Line 24: Line 30:
The extension contains both a server and a client component. By default, you have to start the server by hand, using the {{{hg inserve}}} command. To make it start automatically, edit your hgrc: 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:
Line 28: Line 34:
autostart = True autostart = False
Line 31: Line 37:
== Obsolete installation instructions ==

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:
The server runs in the background as a daemon when started automatically. To start it manually, use the command:
Line 40: Line 40:
$ 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 .
$ hg inserve [-d]
Line 49: Line 43:
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:
By default, the server output will be lost. You can use the ''log'' option to capture the server output:
Line 63: Line 47:
autostart = true log = '/tmp/inotify.log'
Line 66: Line 50:
== See also ==

 * InotifyBug
Line 67: Line 55:
CategoryExtension CategoryBundledExtension

Inotify Extension

Authors: Bryan O'Sullivan, Nicolas Dumazet

This extension has been included with Mercurial since version 1.0

<!> This feature is unloved.

<!> This feature has known correctness issues. Do not use it if you care about your sanity. Consider using HgwatchmanExtension instead.

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'

See also


CategoryBundledExtension

InotifyExtension (last edited 2014-03-24 01:53:35 by Rain)