Hi,
I've been attempting to use --compare-dest DIR SOURCE/ DEST/
If a file exists in DEST but is different to the corresponding file in
DIR, then the file is updated in DEST. This is what I would expect.
I have found that files which do not exist in DEST but do exist in DIR
and SOURCE, are not created.
Simply touching the file in DEST causes it to be updated.
This behaviour seems unuseful!
Here is an example on a single filesystem; I have experienced the same
behaviour over a network.
CASE 1
-----------------------------------------------------------
$ ls -l /tmp/SOURCE/ /tmp/DEST/ /tmp/DIR/
DIR/:
total 4
-rw-r--r-- 1 mike users 19 Oct 15 10:14 foo
DEST/:
total 0
SOURCE/:
total 4
-rw-r--r-- 1 mike users 19 Oct 15 10:14 foo
$ rsync -av --compare-dest /tmp/DIR/ /tmp/SOURCE/ /tmp/DEST/
building file list ... done
wrote 69 bytes read 20 bytes 178.00 bytes/sec
$ ls -l /tmp/DEST/
total 0
$
CASE 2
-----------------------------------------------------------
$ touch /tmp/DEST/foo
$ ls -l /tmp/SOURCE/ /tmp/DEST/ /tmp/DIR/
/tmp/DIR/:
total 4
-rw-r--r-- 1 mike users 19 Oct 15 10:14 foo
/tmp/DEST/:
total 0
-rw-r--r-- 1 mike users 0 Oct 15 10:43 foo
/tmp/SOURCE/:
total 4
-rw-r--r-- 1 mike users 19 Oct 15 10:14 foo
$ rsync -av --compare-dest /tmp/DIR/ /tmp/SOURCE/ /tmp/DEST/
building file list ... done
foo
wrote 128 bytes read 36 bytes 328.00 bytes/sec
total size is 19 speedup is 0.12
$ ls -l /tmp/DEST/
total 4
-rw-r--r-- 1 mike users 19 Oct 15 10:14 foo
$
I'm using rsync version 2.5.4 protocol version 26 (and use the same
on both ends when doing this over a network). I know it is a little
outdated, so I searched the rsync cvs.log for references to
--compare-dest. I found nothing relevant to this 'problem'.
cheers,
Mike