--keep-dirlinks --delete erroneously deletes symlinks to directories
Matt McCutchen
matt at mattmccutchen.net
Mon Oct 5 00:27:59 MDT 2009
On Sat, 2009-10-03 at 12:59 +0200, Roland Koebler wrote:
> the combination of --keep-dirlinks and --delete (--delete-during,
> --delete-delay) erroneously deletes symlinks to directories on
> the receiver.
> With --delete-before and --delete-after it works as expected.
>
> (rsync version 3.0.3 protocol version, on Debian Lenny)
>
> I don't think that this behaviour is intended.
>
>
> Details/example:
>
> - Host 1 directory-structure:
> drwx------ ./1
> -rwx------ ./1/file
> drwx------ ./1/dir
> -rwx------ ./1/dir/subfile
>
> - Host 2 directory-structure:
> drwx------ ./2
> -rwx------ ./2/file
> lrwxrwxrwx ./2/dir -> ../foo
> drwx------ ./foo
> -rwx------ ./foo/subfile
>
> - the data on both hosts is the same, so rsync shouldn't do anything
> - mirroring Host 1 -> Host 2 correctly does nothing:
> $ rsync -av --keep-dirlinks 1/ 2/
> sending incremental file list
>
> sent 94 bytes received 13 bytes 214.00 bytes/sec
> total size is 0 speedup is 0.00
>
> - mirroring Host 2 -> Host 1 correctly does nothing:
> $ rsync -av --copy-dirlinks 2/ 1/
> sending incremental file list
>
> sent 94 bytes received 13 bytes 214.00 bytes/sec
> total size is 0 speedup is 0.00
>
> - --delete-after works correctly, and does nothing:
> $ rsync -av --keep-dirlinks --delete-after 1/ 2/
> building file list ... done
>
> sent 89 bytes received 12 bytes 202.00 bytes/sec
> total size is 0 speedup is 0.00
>
> - --delete-before works correctly, and does nothing:
> $ rsync -av --keep-dirlinks --delete-before 1/ 2/
> building file list ... done
>
> sent 89 bytes received 12 bytes 202.00 bytes/sec
> total size is 0 speedup is 0.00
>
> - but --delete (or --delete-during / --delete-delay) erroneously deltes the
> "dir -> ../foo"-symlink (and copies the data afterwards):
> $ rsync -av --keep-dirlinks --delete 1/ 2/
> sending incremental file list
> deleting dir
> dir/
> dir/subfile
>
> sent 136 bytes received 35 bytes 342.00 bytes/sec
> total size is 0 speedup is 0.00
>
> Is this a bug, or did I miss something?
It looks like a bug. I can reproduce it with rsync 3.0.3 but not with
3.0.6. Please upgrade.
--
Matt
More information about the rsync
mailing list