/[rdiff-backup]/rdiff-backup/rdiff_backup/Hardlink.py
ViewVC logotype

Diff of /rdiff-backup/rdiff_backup/Hardlink.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.12 by bescoto, Sat Mar 26 00:26:52 2005 UTC revision 1.13 by bescoto, Thu Oct 27 06:16:39 2005 UTC
# Line 1  Line 1 
1  # Copyright 2002 Ben Escoto  # Copyright 2002 2005 Ben Escoto
2  #  #
3  # This file is part of rdiff-backup.  # This file is part of rdiff-backup.
4  #  #
# Line 58  def get_inode_key(rorp): Line 58  def get_inode_key(rorp):
58    
59  def add_rorp(rorp, dest_rorp = None):  def add_rorp(rorp, dest_rorp = None):
60          """Process new rorp and update hard link dictionaries"""          """Process new rorp and update hard link dictionaries"""
61          if not rorp.isreg() or rorp.getnumlinks() < 2: return          if not rorp.isreg() or rorp.getnumlinks() < 2: return None
62          rp_inode_key = get_inode_key(rorp)          rp_inode_key = get_inode_key(rorp)
63          if not _inode_index.has_key(rp_inode_key):          if not _inode_index.has_key(rp_inode_key):
64                  if not dest_rorp: dest_key = None                  if not dest_rorp: dest_key = None
65                  elif dest_rorp.getnumlinks() == 1: dest_key = "NA"                  elif dest_rorp.getnumlinks() == 1: dest_key = "NA"
66                  else: dest_key = get_inode_key(dest_rorp)                  else: dest_key = get_inode_key(dest_rorp)
67                  _inode_index[rp_inode_key] = (rorp.index, rorp.getnumlinks(), dest_key)                  _inode_index[rp_inode_key] = (rorp.index, rorp.getnumlinks(), dest_key)
68            return rp_inode_key
69    
70  def del_rorp(rorp):  def del_rorp(rorp):
71          """Remove rorp information from dictionary if seen all links"""          """Remove rorp information from dictionary if seen all links"""
# Line 73  def del_rorp(rorp): Line 74  def del_rorp(rorp):
74          val = _inode_index.get(rp_inode_key)          val = _inode_index.get(rp_inode_key)
75          if not val: return          if not val: return
76          index, remaining, dest_key = val          index, remaining, dest_key = val
77          if remaining == 1: del _inode_index[rp_inode_key]          if remaining == 1:
78          else: _inode_index[rp_inode_key] = (index, remaining-1, dest_key)                  del _inode_index[rp_inode_key]
79                    return 1
80            else:
81                    _inode_index[rp_inode_key] = (index, remaining-1, dest_key)
82                    return 0
83    
84  def rorp_eq(src_rorp, dest_rorp):  def rorp_eq(src_rorp, dest_rorp):
85          """Compare hardlinked for equality          """Compare hardlinked for equality

Legend:
Removed from v.1.12  
changed lines
  Added in v.1.13

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26