[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Rdiff-backup-commits] rdiff-backup CHANGELOG rdiff_backup/restore.py ..
From: |
Andrew Ferguson |
Subject: |
[Rdiff-backup-commits] rdiff-backup CHANGELOG rdiff_backup/restore.py ... |
Date: |
Thu, 26 Jun 2008 03:19:14 +0000 |
CVSROOT: /sources/rdiff-backup
Module name: rdiff-backup
Changes by: Andrew Ferguson <owsla> 08/06/26 03:19:14
Modified files:
. : CHANGELOG
rdiff_backup : restore.py rpath.py
Log message:
Optimize --check-destination and other functions by determining the
increment
files server-side instead of client-side. (Patch from Josh Nisly)
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/rdiff-backup/CHANGELOG?cvsroot=rdiff-backup&r1=1.279&r2=1.280
http://cvs.savannah.gnu.org/viewcvs/rdiff-backup/rdiff_backup/restore.py?cvsroot=rdiff-backup&r1=1.60&r2=1.61
http://cvs.savannah.gnu.org/viewcvs/rdiff-backup/rdiff_backup/rpath.py?cvsroot=rdiff-backup&r1=1.120&r2=1.121
Patches:
Index: CHANGELOG
===================================================================
RCS file: /sources/rdiff-backup/rdiff-backup/CHANGELOG,v
retrieving revision 1.279
retrieving revision 1.280
diff -u -b -r1.279 -r1.280
--- CHANGELOG 23 Jun 2008 13:49:29 -0000 1.279
+++ CHANGELOG 26 Jun 2008 03:19:13 -0000 1.280
@@ -1,6 +1,9 @@
New in v1.1.17 (????/??/??)
---------------------------
+Optimize --check-destination and other functions by determining the increment
+files server-side instead of client-side. (Patch from Josh Nisly)
+
Actually make rdiff-backup robust to failure to read an ACL because the file
cannot be found. (Andrew Ferguson)
Index: rdiff_backup/restore.py
===================================================================
RCS file: /sources/rdiff-backup/rdiff-backup/rdiff_backup/restore.py,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -b -r1.60 -r1.61
--- rdiff_backup/restore.py 7 Jul 2007 22:43:34 -0000 1.60
+++ rdiff_backup/restore.py 26 Jun 2008 03:19:14 -0000 1.61
@@ -47,8 +47,10 @@
inc_list = []
for filename in parent_dir.listdir():
+ inc_info = rpath.get_incfile_info(filename)
+ if inc_info and inc_info[3] == basename:
inc = parent_dir.append(filename)
- if inc.isincfile() and inc.getincbase_str() == basename:
+ assert inc.isincfile()
inc_list.append(inc)
return inc_list
Index: rdiff_backup/rpath.py
===================================================================
RCS file: /sources/rdiff-backup/rdiff-backup/rdiff_backup/rpath.py,v
retrieving revision 1.120
retrieving revision 1.121
diff -u -b -r1.120 -r1.121
--- rdiff_backup/rpath.py 10 Jun 2008 13:14:52 -0000 1.120
+++ rdiff_backup/rpath.py 26 Jun 2008 03:19:14 -0000 1.121
@@ -297,6 +297,26 @@
assert rpath.conn is Globals.local_connection
return open(rpath.path, "rb")
+def get_incfile_info(basename):
+ """Returns None or tuple of
+ (is_compressed, timestr, type, and basename)"""
+ dotsplit = basename.split(".")
+ if dotsplit[-1] == "gz":
+ compressed = 1
+ if len(dotsplit) < 4: return None
+ timestring, ext = dotsplit[-3:-1]
+ else:
+ compressed = None
+ if len(dotsplit) < 3: return None
+ timestring, ext = dotsplit[-2:]
+ if Time.stringtotime(timestring) is None: return None
+ if not (ext == "snapshot" or ext == "dir" or
+ ext == "missing" or ext == "diff" or ext == "data"):
+ return None
+ if compressed: basestr = ".".join(dotsplit[:-3])
+ else: basestr = ".".join(dotsplit[:-2])
+ return (compressed, timestring, ext, basestr)
+
class RORPath:
"""Read Only RPath - carry information about a path
@@ -1112,25 +1132,17 @@
Also sets various inc information used by the *inc* functions.
"""
- if self.index: dotsplit = self.index[-1].split(".")
- else: dotsplit = self.base.split(".")
- if dotsplit[-1] == "gz":
- self.inc_compressed = 1
- if len(dotsplit) < 4: return None
- timestring, ext = dotsplit[-3:-1]
+ if self.index: basename = self.index[-1]
+ else: basename = self.base
+
+ inc_info = get_incfile_info(basename)
+
+ if inc_info:
+ self.inc_compressed, self.inc_timestr, \
+ self.inc_type, self.inc_basestr = inc_info
+ return 1
else:
- self.inc_compressed = None
- if len(dotsplit) < 3: return None
- timestring, ext = dotsplit[-2:]
- if Time.stringtotime(timestring) is None: return None
- if not (ext == "snapshot" or ext == "dir" or
- ext == "missing" or ext == "diff" or ext ==
"data"):
return None
- self.inc_timestr = timestring
- self.inc_type = ext
- if self.inc_compressed: self.inc_basestr =
".".join(dotsplit[:-3])
- else: self.inc_basestr = ".".join(dotsplit[:-2])
- return 1
def isinccompressed(self):
"""Return true if inc file is compressed"""
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Rdiff-backup-commits] rdiff-backup CHANGELOG rdiff_backup/restore.py ...,
Andrew Ferguson <=