[Dirvish] move/rename files/folders

Eric Wilhelm scratchcomputing at gmail.com
Fri Jun 22 20:17:06 UTC 2007

# from Bernd Haug
# on Friday 22 June 2007 02:12 am:

>But if you move files in the backed up directory around, I don't
>think that rsync goes and checks whether this new name has the same
>inode as a file currently in backup had when it was on the original
>FS (where should it get that data in the first place?).

Yep.  The dirvish scheme is just:

  1. copy old backup tree to new backup tree, hardlinking everything
  2. rsync into that

Step 2 only looks at filenames, not inodes.  This breaks the links 
whenever a file has changed and deletes any files that are missing.  An 
mv on the source (from rsync's pov) equates to delete+create.

We couldn't maintain identical inode#->name pairings on the host *and* 
destination.  It would be possible (not easy) to keep files with the 
same source inode pointing to corresponding dest inodes, but this 
requires knowing all of the source inode#->name mappings from 
*yesterday* on both the source and dest.  Because that is historical 
information, rsync's "right now" view of the world doesn't contain it, 
so it would involve an extra data store and an extra backup step.

"You can't win. You can't break even. You can't quit."
--Ginsberg's Restatement of the Three Laws of Thermodynamics

More information about the Dirvish mailing list