Mercurial > hg
view tests/test-debugcomplete.out @ 9116:f90bbf1ea09f
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 b55d44719b47.
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.
author | Nicolas Dumazet <nicdumz.commits@gmail.com> |
---|---|
date | Mon, 13 Jul 2009 16:49:05 +0200 |
parents | 7e0b31dfc66f |
children | 220d39af2e57 |
line wrap: on
line source
% Show all commands except debug commands add addremove annotate archive backout bisect branch branches bundle cat clone commit copy diff export forget grep heads help identify import incoming init locate log manifest merge outgoing parents paths pull push recover remove rename resolve revert rollback root serve showconfig status tag tags tip unbundle update verify version % Show all commands that start with "a" add addremove annotate archive % Do not show debug commands if there are other candidates diff % Show debug commands if there are no other candidates debugancestor debugcheckstate debugcommands debugcomplete debugconfig debugdata debugdate debugfsinfo debugindex debugindexdot debuginstall debugrebuildstate debugrename debugsetparents debugstate debugsub debugwalk % Do not show the alias of a debug command if there are other candidates % (this should hide rawcommit) recover remove rename resolve revert rollback root % Show the alias of a debug command if there are no other candidates % Show the global options --config --cwd --debug --debugger --encoding --encodingmode --help --noninteractive --profile --quiet --repository --time --traceback --verbose --version -R -h -q -v -y % Show the options for the "serve" command --accesslog --address --certificate --config --cwd --daemon --daemon-pipefds --debug --debugger --encoding --encodingmode --errorlog --help --ipv6 --name --noninteractive --pid-file --port --prefix --profile --quiet --repository --stdio --style --templates --time --traceback --verbose --version --webdir-conf -6 -A -E -R -a -d -h -n -p -q -t -v -y % Show an error if we use --options with an ambiguous abbreviation hg: command 's' is ambiguous: serve showconfig status % Show all commands + options add: include, exclude, dry-run annotate: rev, follow, text, user, date, number, changeset, line-number, include, exclude clone: noupdate, rev, pull, uncompressed, ssh, remotecmd commit: addremove, close-branch, include, exclude, message, logfile, date, user diff: rev, change, text, git, nodates, show-function, ignore-all-space, ignore-space-change, ignore-blank-lines, unified, include, exclude export: output, switch-parent, text, git, nodates forget: include, exclude init: ssh, remotecmd log: follow, follow-first, date, copies, keyword, rev, removed, only-merges, user, only-branch, prune, patch, git, limit, no-merges, style, template, include, exclude merge: force, rev, preview parents: rev, style, template pull: update, force, rev, ssh, remotecmd push: force, rev, ssh, remotecmd remove: after, force, include, exclude serve: accesslog, daemon, daemon-pipefds, errorlog, port, address, prefix, name, webdir-conf, pid-file, stdio, templates, style, ipv6, certificate status: all, modified, added, removed, deleted, clean, unknown, ignored, no-status, copies, print0, rev, include, exclude update: clean, check, date, rev addremove: similarity, include, exclude, dry-run archive: no-decode, prefix, rev, type, include, exclude backout: merge, parent, rev, include, exclude, message, logfile, date, user bisect: reset, good, bad, skip, command, noupdate branch: force, clean branches: active, closed bundle: force, rev, base, all, type, ssh, remotecmd cat: output, rev, decode, include, exclude copy: after, force, include, exclude, dry-run debugancestor: debugcheckstate: debugcommands: debugcomplete: options debugdata: debugdate: extended debugfsinfo: debugindex: debugindexdot: debuginstall: debugrebuildstate: rev debugrename: rev debugsetparents: debugstate: nodates debugsub: rev debugwalk: include, exclude grep: print0, all, follow, ignore-case, files-with-matches, line-number, rev, user, date, include, exclude heads: rev, active, closed, style, template help: identify: rev, num, id, branch, tags import: strip, base, force, no-commit, exact, import-branch, message, logfile, date, user, similarity incoming: force, newest-first, bundle, rev, patch, git, limit, no-merges, style, template, ssh, remotecmd locate: rev, print0, fullpath, include, exclude manifest: rev outgoing: force, rev, newest-first, patch, git, limit, no-merges, style, template, ssh, remotecmd paths: recover: rename: after, force, include, exclude, dry-run resolve: all, list, mark, unmark, include, exclude revert: all, date, rev, no-backup, include, exclude, dry-run rollback: root: showconfig: untrusted tag: force, local, rev, remove, message, date, user tags: tip: patch, git, style, template unbundle: update verify: version: