From d9b68d73175d004caed8c781c97308f7c2e3dccc Mon Sep 17 00:00:00 2001 From: bescoto Date: Thu, 27 Oct 2005 06:16:39 +0000 Subject: Write SHA1 digests for all regular files git-svn-id: http://svn.savannah.nongnu.org/svn/rdiff-backup/trunk@662 2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109 --- rdiff-backup/rdiff_backup/Hardlink.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'rdiff-backup/rdiff_backup/Hardlink.py') diff --git a/rdiff-backup/rdiff_backup/Hardlink.py b/rdiff-backup/rdiff_backup/Hardlink.py index 4bfd2ee..855c512 100644 --- a/rdiff-backup/rdiff_backup/Hardlink.py +++ b/rdiff-backup/rdiff_backup/Hardlink.py @@ -1,4 +1,4 @@ -# Copyright 2002 Ben Escoto +# Copyright 2002 2005 Ben Escoto # # This file is part of rdiff-backup. # @@ -58,13 +58,14 @@ def get_inode_key(rorp): def add_rorp(rorp, dest_rorp = None): """Process new rorp and update hard link dictionaries""" - if not rorp.isreg() or rorp.getnumlinks() < 2: return + if not rorp.isreg() or rorp.getnumlinks() < 2: return None rp_inode_key = get_inode_key(rorp) if not _inode_index.has_key(rp_inode_key): if not dest_rorp: dest_key = None elif dest_rorp.getnumlinks() == 1: dest_key = "NA" else: dest_key = get_inode_key(dest_rorp) _inode_index[rp_inode_key] = (rorp.index, rorp.getnumlinks(), dest_key) + return rp_inode_key def del_rorp(rorp): """Remove rorp information from dictionary if seen all links""" @@ -73,8 +74,12 @@ def del_rorp(rorp): val = _inode_index.get(rp_inode_key) if not val: return index, remaining, dest_key = val - if remaining == 1: del _inode_index[rp_inode_key] - else: _inode_index[rp_inode_key] = (index, remaining-1, dest_key) + if remaining == 1: + del _inode_index[rp_inode_key] + return 1 + else: + _inode_index[rp_inode_key] = (index, remaining-1, dest_key) + return 0 def rorp_eq(src_rorp, dest_rorp): """Compare hardlinked for equality -- cgit v1.2.1