1
0
mirror of https://github.com/django/django.git synced 2025-03-12 10:22:37 +00:00

[1.8.x] Refs #23882 -- Added detection for moved files when using inotify polling

Commit 15f82c7 ("used pyinotify as change detection system when
available") introduced a regression where editing a file in vim with
default settings (writebackup=auto) no longer causes the dev server
to be restarted. On a write, vim moves the monitored file to a backup
path and then creates a new file in the original. The new file is not
monitored as it has a different inode. Fixed this by also watching for
inotify events IN_DELETE_SELF and IN_MOVE_SELF.

Backport of e5cfa394d79b6ab1b412bd3b30c6a433b415d56b from master
This commit is contained in:
Chris Bainbridge 2015-05-29 16:32:57 +01:00 committed by Tim Graham
parent 6840aaf3c1
commit b252e0f350
2 changed files with 5 additions and 1 deletions

View File

@ -178,7 +178,9 @@ def inotify_code_changed():
pyinotify.IN_ATTRIB | pyinotify.IN_ATTRIB |
pyinotify.IN_MOVED_FROM | pyinotify.IN_MOVED_FROM |
pyinotify.IN_MOVED_TO | pyinotify.IN_MOVED_TO |
pyinotify.IN_CREATE pyinotify.IN_CREATE |
pyinotify.IN_DELETE_SELF |
pyinotify.IN_MOVE_SELF
) )
for path in gen_filenames(only_new=True): for path in gen_filenames(only_new=True):
wm.add_watch(path, mask) wm.add_watch(path, mask)

View File

@ -95,3 +95,5 @@ Bugfixes
* Fixed a regression in ``URLValidator`` that invalidated Punycode TLDs * Fixed a regression in ``URLValidator`` that invalidated Punycode TLDs
(:ticket:`25059`). (:ticket:`25059`).
* Improved `pyinotify` ``runserver`` polling (:ticket:`23882`).