Hi,

I want to use rsync in a may be unusual way:

I have a source tree containing lots of symbolic links and I use
the option "--copy-links" to get the physical files (the referents of the 
symlinks)
on the target host.

As the host uses the synchronized files in a read-only fashion, I also want to 
get
hardlinks for all identical files, to save space. Thus I also use 
"--hard-links".

Because managing hardlinks is hard to handle (some lookup table is needed),
only inodes with a hardlink count >1 are considered (flink.c:1250 "st.st_nlink 
> 1").
Unfortunately most of my symlinked files have a link count of 1 and thus they 
are copied
twice. If, however, the source file accidentally has a link count > 1 (which is 
not related
to the multiple symlinks) rsync will create a hard link on the target host, as 
supposed.

To handle this situation I simply disabled the (st.st_nlink > 1) filter if 
"copy_links" is true, too.
This seems to work for me, but I don't know if this is a sufficient solution 
for others.
May be a special option should be considered to disable the (st.st_nlink > 1) 
optimization explicitly.

Or my situation is too exotic to be considered to fix.

Dieter.

-- 
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

Reply via email to