Use shutil.move instead of os.rename, since it will automatically fall
authorJohan Dahlin <johan@async.com.br>
Tue, 9 Dec 2008 15:19:57 +0000 (15:19 +0000)
committerJohan Dahlin <johan@src.gnome.org>
Tue, 9 Dec 2008 15:19:57 +0000 (15:19 +0000)
2008-12-09  Johan Dahlin  <johan@async.com.br>

* giscanner/cachestore.py (CacheStore.store): Use
shutil.move instead of os.rename, since it will
automatically fall back to copying+remove if the
src directory is on a different partition from
the dst directory.

svn path=/trunk/; revision=989

ChangeLog
giscanner/cachestore.py

index e5cb003..ac7f810 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,14 @@
+2008-12-09  Johan Dahlin  <johan@async.com.br>
+
+       * giscanner/cachestore.py (CacheStore.store): Use
+       shutil.move instead of os.rename, since it will
+       automatically fall back to copying+remove if the
+       src directory is on a different partition from
+       the dst directory.
+
 2008-12-08  Tristan Van Berkom  <tristan.van.berkom@gmail.com>
 
-       Bug 563742 – introspection should record the introduced version of 
+       Bug 563742 – introspection should record the introduced version of
                      symbols marked with the "Since:" tag
 
        reviewed by: Johan
index f7f0062..5c4b5b4 100644 (file)
@@ -22,6 +22,7 @@ import errno
 import cPickle
 import hashlib
 import os
+import shutil
 import tempfile
 
 
@@ -105,8 +106,8 @@ class CacheStore(object):
                 raise
 
         try:
-            os.rename(tmp_filename, store_filename)
-        except OSError, e:
+            shutil.move(tmp_filename, store_filename)
+        except IOError, e:
             # Permission denied
             if e.errno == errno.EACCES:
                 self._remove_filename(tmp_filename)