Commit 3df7ac56 authored by owsla's avatar owsla

Ignore Windows errors caused by too long filenames


git-svn-id: http://svn.savannah.nongnu.org/svn/rdiff-backup@1006 2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109
parent 2e9f0337
New in v1.3.1 (????/??/??) New in v1.3.1 (????/??/??)
--------------------------- ---------------------------
Fix typo in robust.py which broke error reporting. Closes Savannah bug #25255.
Ignore Windows errors caused by too long filenames; the files are not yet
backed-up, but the backup process is no longer halted. (Andrew Ferguson)
New in v1.3.0 (2009/01/03) New in v1.3.0 (2009/01/03)
......
...@@ -532,8 +532,11 @@ class PatchITRB(rorpiter.ITRBranch): ...@@ -532,8 +532,11 @@ class PatchITRB(rorpiter.ITRBranch):
tf = TempFile.new(mirror_rp) tf = TempFile.new(mirror_rp)
if self.patch_to_temp(mirror_rp, diff_rorp, tf): if self.patch_to_temp(mirror_rp, diff_rorp, tf):
if tf.lstat(): if tf.lstat():
rpath.rename(tf, mirror_rp) if robust.check_common_error(self.error_handler, rpath.rename,
self.CCPP.flag_success(index) (tf, mirror_rp)) is None:
self.CCPP.flag_success(index)
else:
tf.delete()
elif mirror_rp and mirror_rp.lstat(): elif mirror_rp and mirror_rp.lstat():
mirror_rp.delete() mirror_rp.delete()
self.CCPP.flag_deleted(index) self.CCPP.flag_deleted(index)
...@@ -691,14 +694,18 @@ class IncrementITRB(PatchITRB): ...@@ -691,14 +694,18 @@ class IncrementITRB(PatchITRB):
self.CCPP.get_rorps(index), self.basis_root_rp, self.inc_root_rp) self.CCPP.get_rorps(index), self.basis_root_rp, self.inc_root_rp)
tf = TempFile.new(mirror_rp) tf = TempFile.new(mirror_rp)
if self.patch_to_temp(mirror_rp, diff_rorp, tf): if self.patch_to_temp(mirror_rp, diff_rorp, tf):
inc = increment.Increment(tf, mirror_rp, inc_prefix) inc = robust.check_common_error(self.error_handler,
if inc is not None: increment.Increment, (tf, mirror_rp, inc_prefix))
if inc is not None and not isinstance(inc, int):
self.CCPP.set_inc(index, inc) self.CCPP.set_inc(index, inc)
if inc.isreg(): if inc.isreg():
inc.fsync_with_dir() # Write inc before rp changed inc.fsync_with_dir() # Write inc before rp changed
if tf.lstat(): if tf.lstat():
rpath.rename(tf, mirror_rp) if robust.check_common_error(self.error_handler,
self.CCPP.flag_success(index) rpath.rename, (tf, mirror_rp)) is None:
self.CCPP.flag_success(index)
else:
tf.delete()
elif mirror_rp.lstat(): elif mirror_rp.lstat():
mirror_rp.delete() mirror_rp.delete()
self.CCPP.flag_deleted(index) self.CCPP.flag_deleted(index)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment