Commit Graph

12 Commits

Author SHA1 Message Date
Renato Cunha
6de8a70a9d inotify: check all components of filenames against hgignore (issue884)
With inotify enabled, files that should be ignored could be detected as
untracked by mercurial. This behavior was wrong because inotify's filestatus
implementation only matched filenames against ignore patterns, instead of
checking if other elements of their paths matched them. This patch fixes the
behavior by checking the file paths against the ignore patterns.

A new test has also been added to the main inotify test to prevent any
regressions.
2010-07-06 22:22:18 -03:00
Benoit Boissinot
7137f04bb0 filemerge: use working dir parent as ancestor for backward wdir merge
I checked the tests, they were bogus in the first place
2010-04-19 20:41:53 +02:00
Nicolas Dumazet
7639059665 inotify: improve error messages
* prefix messages by inotify-(client|server)
* make sure that all warning and abort messages use the same format.
* in the case where inotify.sock is an old broken symlink, say so and abort
  instead of trying to overwrite the already existing link
2009-11-19 11:06:01 +09:00
Nicolas Dumazet
696edec52d inotify: add a inotify.pidfile configuration possibility
This will mainly help us in our tests to log pids of inotify servers
started implicitely, to make sure that unkilled inotify daemons do not clutter
the output of unrelated tests.

Also desactivate the workaround introduced in 37824a274d63
2009-11-17 15:36:09 +09:00
Nicolas Dumazet
bf5cba2457 cmdutil.service: do not _exit(0) in the parent process
The fact that a parent process spawns a daemon does not necessarily means that
it is the only think it has to do. This was forcing since e8efd88001e7 inotify
processes launched implicitely to exit prematurely:
when no inotify server was running, "hg st" for example would only launch a
inotify server, _exit(0) and thus would not return file statuses.

This changeset adds a test for implicitely launched inotify processes.
Change to output of test-inotify-1208 is correct: it reflects the normal
error message of "hg st" when not dying during "hg inserve" daemon creation.
2009-11-17 15:00:00 +09:00
Nicolas Dumazet
800658e086 inotify: mark directories visited during lookup (issue1844)
Emulate the match.dir calls that are made in dirstate.walk:
 * first mark the visited directories on the server side
 * then extend the transmitted response to include this directory list
 * and lastly call match.dir on each directory
2009-11-13 08:31:10 +09:00
Nicolas Dumazet
5335f5c399 inotify: server: explicitely ignore events in subdirs of .hg/ (issue1735) 2009-07-13 21:55:17 +09:00
Nicolas Dumazet
2645ee079e inotify: fix issue1375, add a test.
The biggest problem was the data structure, which did not allow changing
a file into a directory or vice versa. This problem is fixed by 47d29dcb7266.

The walk() method also had an issue in this case:
 - we know 'path' as a directory. inotify server sleeps.
 - 'path' is deleted
 - 'path' is recreated as a file
 - the server catches up here, and see the deletion. it instantiates a scan(),
   which in its turn calls for walk(repo, path).
 - walk() then assumes that 'path' is a directory and calls os.listdir on it,
   which raises an OSError(errno.ENOTDIR)

Catch the error, and yield the file instead of the directory contents.
2009-07-13 16:49:05 +02:00
Brendan Cully
5a88518d14 inotify: fix status . in repo.root 2008-11-19 13:00:48 -08:00
Benoit Boissinot
f30c45529e Backed out changeset 131da9defd10 (issue1375) 2008-11-12 09:08:43 +01:00
Benoit Boissinot
e2636d353e inotify: fix replacing a folder with a file (issue1375) 2008-11-11 23:16:59 +01:00
Benoit Boissinot
3babcafb3e inotify: fix status not showing "clean" files (issue907)
The inotify server uses 'c' for clean, not 'n'.
2008-10-18 23:06:29 +02:00