rdiff-backup-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Rdiff-backup-commits] rdiff-backup CHANGELOG rdiff_backup/fs_abilitie..


From: Andrew Ferguson
Subject: [Rdiff-backup-commits] rdiff-backup CHANGELOG rdiff_backup/fs_abilitie...
Date: Tue, 31 Jul 2007 14:51:14 +0000

CVSROOT:        /sources/rdiff-backup
Module name:    rdiff-backup
Changes by:     Andrew Ferguson <owsla> 07/07/31 14:51:14

Modified files:
        .              : CHANGELOG 
        rdiff_backup   : fs_abilities.py 

Log message:
        Fix hang on Cygwin/FAT32 and error on broken CIFS configurations

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/rdiff-backup/CHANGELOG?cvsroot=rdiff-backup&r1=1.236&r2=1.237
http://cvs.savannah.gnu.org/viewcvs/rdiff-backup/rdiff_backup/fs_abilities.py?cvsroot=rdiff-backup&r1=1.37&r2=1.38

Patches:
Index: CHANGELOG
===================================================================
RCS file: /sources/rdiff-backup/rdiff-backup/CHANGELOG,v
retrieving revision 1.236
retrieving revision 1.237
diff -u -b -r1.236 -r1.237
--- CHANGELOG   28 Jul 2007 20:09:52 -0000      1.236
+++ CHANGELOG   31 Jul 2007 14:51:14 -0000      1.237
@@ -1,6 +1,13 @@
 New in v1.1.13 (????/??/??)
 ---------------------------
 
+Prevent the extended filenames / UTF-8 test from raising an exception
+on broken CIFS configurations which transform some characters to '?'.
+Problem reported by Luca Cappe. (Andrew Ferguson)
+
+Cygwin on FAT32 hangs when trying to open a file named "aux". Change
+the escape DOS devices test to use "con" instead. (Andrew Ferguson)
+
 Fix symlink behavior when filesystem is mounted via CIFS. Closes
 Savannah bug #20342. (Andrew Ferguson)
 

Index: rdiff_backup/fs_abilities.py
===================================================================
RCS file: /sources/rdiff-backup/rdiff-backup/rdiff_backup/fs_abilities.py,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -b -r1.37 -r1.38
--- rdiff_backup/fs_abilities.py        17 Jul 2007 01:53:49 -0000      1.37
+++ rdiff_backup/fs_abilities.py        31 Jul 2007 14:51:14 -0000      1.38
@@ -218,7 +218,16 @@
                        self.extended_filenames = 0
                else:
                        assert ext_rp.lstat()
+                       try:
                        ext_rp.delete()
+                       except (IOError, OSError):
+                               # Broken CIFS setups will sometimes create 
UTF-8 files
+                               # and even stat them, but not let us perform 
file operations
+                               # on them. Test file will be deleted via 
shutil.rmtree()
+                               # when subdir is deleted. UTF-8 characters not 
in the
+                               # underlying codepage get translated to '?'
+                               self.extended_filenames = 0
+                       else:
                        self.extended_filenames = 1
 
        def set_acls(self, rp):
@@ -433,7 +442,7 @@
        def set_escape_dos_devices(self, subdir):
                """If special file aux can be stat'd, escape special files"""
                try:
-                       device_rp = subdir.append("aux")
+                       device_rp = subdir.append("con")
                        if device_rp.lstat():
                                log.Log("escape_dos_devices required by 
filesystem at %s" \
                                                % (subdir.path), 4)
@@ -531,7 +540,7 @@
        def set_must_escape_dos_devices(self, rbdir):
                """If local edd or src edd, then must escape """
                try:
-                       device_rp = rbdir.append("aux")
+                       device_rp = rbdir.append("con")
                        if device_rp.lstat(): local_edd = 1
                        else: local_edd = 0
                except (OSError): local_edd = 1
@@ -624,7 +633,7 @@
                        src_edd = self.src_fsa.escape_dos_devices
                else: src_edd = 0
                try:
-                       device_rp = rbdir.append("aux")
+                       device_rp = rbdir.append("con")
                        if device_rp.lstat(): local_edd = 1
                        else: local_edd = 0
                except (OSError): local_edd = 1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]