From 00bd818426e320be4190da43390a16d110b022cd Mon Sep 17 00:00:00 2001 From: dgaudet Date: Tue, 28 Jun 2005 05:07:18 +0000 Subject: bug#13475: correct an UpdateError when backing up hardlinks with EAs and/or ACLs. i have to admit to not being 100% certain of this fix -- because i'm not sure how to track down all the other users of __eq__ in this two classes to make sure my change makes sense in all contexts. it works in my testing though. git-svn-id: http://svn.savannah.nongnu.org/svn/rdiff-backup/trunk@594 2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109 --- rdiff-backup/CHANGELOG | 3 +++ rdiff-backup/rdiff_backup/eas_acls.py | 8 ++------ 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/rdiff-backup/CHANGELOG b/rdiff-backup/CHANGELOG index e452c96..0864161 100644 --- a/rdiff-backup/CHANGELOG +++ b/rdiff-backup/CHANGELOG @@ -16,6 +16,9 @@ bug#13476: must always compare device numbers when we compare inode numbers -- fix a non-fatal problem with hardlinks when a filesystem is moved to another device (and the inodes don't change). +bug#13475: correct an UpdateError when backing up hardlinks with EAs +and/or ACLs. + New in v0.13.6 (2005/04/07) --------------------------- diff --git a/rdiff-backup/rdiff_backup/eas_acls.py b/rdiff-backup/rdiff_backup/eas_acls.py index 35b1dcf..abb8ece 100644 --- a/rdiff-backup/rdiff_backup/eas_acls.py +++ b/rdiff-backup/rdiff_backup/eas_acls.py @@ -47,9 +47,9 @@ class ExtendedAttributes: else: self.attr_dict = attr_dict def __eq__(self, ea): - """Equal if all attributes and index are equal""" + """Equal if all attributes are equal""" assert isinstance(ea, ExtendedAttributes) - return ea.index == self.index and ea.attr_dict == self.attr_dict + return ea.attr_dict == self.attr_dict def __ne__(self, ea): return not self.__eq__(ea) def get_indexpath(self): return self.index and '/'.join(self.index) or '.' @@ -292,7 +292,6 @@ class AccessControlLists: """ assert isinstance(acl, self.__class__) - if self.index != acl.index: return 0 if self.is_basic(): return acl.is_basic() return (self.cmp_entry_list(self.entry_list, acl.entry_list) and self.cmp_entry_list(self.default_entry_list, @@ -302,9 +301,6 @@ class AccessControlLists: def eq_verbose(self, acl): """Returns same as __eq__ but print explanation if not equal""" - if self.index != acl.index: - print "index %s not equal to index %s" % (self.index, acl.index) - return 0 if not self.cmp_entry_list(self.entry_list, acl.entry_list): print "ACL entries for %s compare differently" % (self.index,) return 0 -- cgit v1.2.1