summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Bainbridge <chris.bainbridge@gmail.com>2015-05-29 16:32:57 +0100
committerTim Graham <timograham@gmail.com>2015-07-07 12:26:36 -0400
commitb252e0f35076c0585496b50ad1361ca419059104 (patch)
tree570c297fb08b89f48bf53e17501f66a1f15ddf75
parent6840aaf3c12f975347c5efaea638d43639bc19c2 (diff)
[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
-rw-r--r--django/utils/autoreload.py4
-rw-r--r--docs/releases/1.8.3.txt2
2 files changed, 5 insertions, 1 deletions
diff --git a/django/utils/autoreload.py b/django/utils/autoreload.py
index 12f6ba2219..5cb7fd0bac 100644
--- a/django/utils/autoreload.py
+++ b/django/utils/autoreload.py
@@ -178,7 +178,9 @@ def inotify_code_changed():
pyinotify.IN_ATTRIB |
pyinotify.IN_MOVED_FROM |
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):
wm.add_watch(path, mask)
diff --git a/docs/releases/1.8.3.txt b/docs/releases/1.8.3.txt
index 104d6eb725..b549251b39 100644
--- a/docs/releases/1.8.3.txt
+++ b/docs/releases/1.8.3.txt
@@ -95,3 +95,5 @@ Bugfixes
* Fixed a regression in ``URLValidator`` that invalidated Punycode TLDs
(:ticket:`25059`).
+
+* Improved `pyinotify` ``runserver`` polling (:ticket:`23882`).