On 26.06.2010 21:27, Rob Thompson wrote: > Aaah, thanks for the insight. RSYNC must transfer the file regardless > of the link count, but it also takes note of the missing link. So, it > probably considers an inode with multiple links "resolved" only after > it finds a brother/sister link and deletes the duplicate.
Yes and no. It is resolved when link-count amount of files have been encountered. No deleting involved as rsync can't infere that, as another hard-link can always be in a directory outside your transfer-directory. And btw. without "--inplace" rsync will create a new file and hard-links that, when the file differs in source/target. IOW It breaks an existing hard-link on the target-site in regard to a hard-link outside the target dir. > This would be consistent w/ the man page: > > "-H, --hard-links > ... > If incremental recursion is active (see --recursive), rsync may transfer a > missing hard-linked file before it finds that another link for that contents > exists elsewhere in the hierarchy. This does not affect the accuracy of the > transfer, just its efficiency" > > Big props to those who code RSYNC, this stuff gets crazy ;) Definitly. ;-) > ----- "Matthias Schniedermeyer" <m...@citd.de> wrote: > > > On 26.06.2010 09:01, Rob Thompson wrote: > > > > > > Hello, > > > > > > I have a question regarding using the --recursive option when > > > preserving hard link with -H. How is it, that these two options are > > > > > compatible when used together? I would think that RSYNC would need > > to > > > see all files/inodes before transferring, to preserve hard links. > > But > > > yet it still starts transferring before reading the entire file > > list. > > > > That's easy. > > > > 'stat'ing a file also gives it's inode-number and the link-count > > (number > > of directory entries). > > > > When you have link-count == 1 there is nothing special to do. > > > > When you have a link-count > 1 you can discard the data as soon as you > > > > transferred as many files, with the same inode, as the link-count > > says. > > Of course the discarding only works as long as all hard-links are > > inside > > the directory-subtree you are transfering, otherwise rsync keeps > > piling > > up memory, at least i'm pretty sure that rsync works that way. -- Bis denn -- Real Programmers consider "what you see is what you get" to be just as bad a concept in Text Editors as it is in women. No, the Real Programmer wants a "you asked for it, you got it" text editor -- complicated, cryptic, powerful, unforgiving, dangerous. -- Please use reply-all for most replies to avoid omitting the mailing list. To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html