[Checkins] SVN: Products.CMFCore/trunk/Products/CMFCore/ - improved debug mode speed on NTFS partitions

Yvo Schubbe y.2011 at wcm-solutions.de
Mon Feb 7 07:41:22 EST 2011


Log message for revision 120180:
  - improved debug mode speed on NTFS partitions

Changed:
  U   Products.CMFCore/trunk/Products/CMFCore/CHANGES.txt
  U   Products.CMFCore/trunk/Products/CMFCore/DirectoryView.py

-=-
Modified: Products.CMFCore/trunk/Products/CMFCore/CHANGES.txt
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/CHANGES.txt	2011-02-07 11:38:10 UTC (rev 120179)
+++ Products.CMFCore/trunk/Products/CMFCore/CHANGES.txt	2011-02-07 12:41:22 UTC (rev 120180)
@@ -4,6 +4,11 @@
 2.3.0-alpha (unreleased)
 ------------------------
 
+- DirectoryView: Improved debug mode speed on NTFS partitions.
+  The much faster non-Windows implementation is now used on Windows as well if
+  non-FAT32 time stamps are detected. In rare cases that heuristic approach
+  might fail to detected NTFS partitions.
+
 - DirectoryView: Modernized debug mode lookup.
   Now getConfiguration().debug_mode is used instead of Globals.DevelopmentMode.
 

Modified: Products.CMFCore/trunk/Products/CMFCore/DirectoryView.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/DirectoryView.py	2011-02-07 11:38:10 UTC (rev 120179)
+++ Products.CMFCore/trunk/Products/CMFCore/DirectoryView.py	2011-02-07 12:41:22 UTC (rev 120180)
@@ -113,8 +113,13 @@
         self._reg_key = reg_key
         self.ignore = base_ignore + tuple(ignore)
         if platform == 'win32':
-            self.use_dir_mtime = False
-            self._walker = _walker(self.ignore)
+            try:
+                ntfs_detected = bool(os.stat(self._filepath).st_mtime % 1)
+            except OSError:
+                ntfs_detected = False
+            if not ntfs_detected:
+                self.use_dir_mtime = False
+                self._walker = _walker(self.ignore)
         subdirs = []
         for entry in _filtered_listdir(self._filepath, ignore=self.ignore):
             entry_filepath = os.path.join(self._filepath, entry)



More information about the checkins mailing list