summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordgaudet <dgaudet@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109>2005-06-28 05:07:18 +0000
committerdgaudet <dgaudet@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109>2005-06-28 05:07:18 +0000
commit00bd818426e320be4190da43390a16d110b022cd (patch)
treef50cf1891f5d1603efce9c497e8fce4820d28789
parenta76588281b1748937655aae6ad215cf3a08e0cb8 (diff)
downloadrdiff-backup-00bd818426e320be4190da43390a16d110b022cd.tar.gz
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
-rw-r--r--rdiff-backup/CHANGELOG3
-rw-r--r--rdiff-backup/rdiff_backup/eas_acls.py8
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