diff options
Diffstat (limited to 'rdiff-backup')
-rw-r--r-- | rdiff-backup/CHANGELOG | 3 | ||||
-rw-r--r-- | rdiff-backup/rdiff_backup/Hardlink.py | 1 | ||||
-rw-r--r-- | rdiff-backup/rdiff_backup/Main.py | 9 | ||||
-rw-r--r-- | rdiff-backup/rdiff_backup/backup.py | 3 |
4 files changed, 11 insertions, 5 deletions
diff --git a/rdiff-backup/CHANGELOG b/rdiff-backup/CHANGELOG index 657796a..d8ccd56 100644 --- a/rdiff-backup/CHANGELOG +++ b/rdiff-backup/CHANGELOG @@ -23,6 +23,9 @@ Fixed user/group restoring error noticed by Fran Firman. Checked in Robert Shaw's --chars-to-quote patch +Treated hard link permission problem on Mac OS X by applying +suggestion by David Vasilevsky. + New in v0.13.4 (2004/01/31) --------------------------- diff --git a/rdiff-backup/rdiff_backup/Hardlink.py b/rdiff-backup/rdiff_backup/Hardlink.py index 8b03d26..4bfd2ee 100644 --- a/rdiff-backup/rdiff_backup/Hardlink.py +++ b/rdiff-backup/rdiff_backup/Hardlink.py @@ -118,7 +118,6 @@ def link_rp(diff_rorp, dest_rpath, dest_root = None): # This can happen if the source of dest_link_rpath was deleted # after it's linking info was recorded but before # dest_link_rpath was written. - print "$$$$$$$", exc, exc[0], errno.errorcode[exc[0]] if errno.errorcode[exc[0]] == 'ENOENT': dest_rpath.touch() # This will cause an UpdateError later else: raise Exception("EnvironmentError '%s' linking %s to %s" % diff --git a/rdiff-backup/rdiff_backup/Main.py b/rdiff-backup/rdiff_backup/Main.py index 2f36859..cd77d63 100644 --- a/rdiff-backup/rdiff_backup/Main.py +++ b/rdiff-backup/rdiff_backup/Main.py @@ -415,7 +415,8 @@ def backup_set_fs_globals(rpin, rpout): Log.FatalError("--never-drop-acls specified, but ACL support\n" "disabled on destination filesystem") - SetConnections.UpdateGlobal('preserve_hardlinks', dest_fsa.hardlinks) + if Globals.preserve_hardlinks != 0: + SetConnections.UpdateGlobal('preserve_hardlinks', dest_fsa.hardlinks) SetConnections.UpdateGlobal('fsync_directories', dest_fsa.fsync_dirs) SetConnections.UpdateGlobal('change_ownership', dest_fsa.ownership) SetConnections.UpdateGlobal('chars_to_quote', dest_fsa.chars_to_quote) @@ -521,7 +522,8 @@ def restore_set_fs_globals(target): Log.FatalError("--never-drop-acls specified, but ACL support\n" "disabled on destination filesystem") - SetConnections.UpdateGlobal('preserve_hardlinks', target_fsa.hardlinks) + if Globals.preserve_hardlinks != 0: + SetConnections.UpdateGlobal('preserve_hardlinks', target_fsa.hardlinks) SetConnections.UpdateGlobal('change_ownership', target_fsa.ownership) if Globals.chars_to_quote is None: # otherwise already overridden @@ -699,7 +701,8 @@ def single_set_fs_globals(rbdir): update_triple(fsa.carbonfile, ('carbonfile_active', 'carbonfile_write', 'carbonfile_conn')) - SetConnections.UpdateGlobal('preserve_hardlinks', fsa.hardlinks) + if Globals.preserve_hardlinks != 0: + SetConnections.UpdateGlobal('preserve_hardlinks', fsa.hardlinks) SetConnections.UpdateGlobal('fsync_directories', fsa.fsync_dirs) SetConnections.UpdateGlobal('change_ownership', fsa.ownership) SetConnections.UpdateGlobal('chars_to_quote', fsa.chars_to_quote) diff --git a/rdiff-backup/rdiff_backup/backup.py b/rdiff-backup/rdiff_backup/backup.py index bf458bd..0858887 100644 --- a/rdiff-backup/rdiff_backup/backup.py +++ b/rdiff-backup/rdiff_backup/backup.py @@ -497,7 +497,8 @@ class PatchITRB(rorpiter.ITRBranch): assert diff_rorp.get_attached_filetype() == 'diff' if robust.check_common_error(self.error_handler, Rdiff.patch_local, (basis_rp, diff_rorp, new)) == 0: return 0 - if new.lstat(): rpath.copy_attribs(diff_rorp, new) + if new.lstat() and not diff_rorp.isflaglinked(): + rpath.copy_attribs(diff_rorp, new) return self.matches_cached_rorp(diff_rorp, new) def matches_cached_rorp(self, diff_rorp, new_rp): |