Bug 5199 - Exclusion of source arg ancestor short-circuits recursion
Exclusion of source arg ancestor short-circuits recursion
Product: rsync
Classification: Unclassified
Component: core
Other Linux
: P3 normal
: ---
Assigned To: Wayne Davison
Rsync QA Contact
Depends on:
  Show dependency treegraph
Reported: 2008-01-14 15:23 UTC by Matt McCutchen
Modified: 2008-01-23 23:33 UTC (History)
0 users

See Also:


Note You need to log in before you can comment on or make changes to this bug.
Description Matt McCutchen 2008-01-14 15:23:31 UTC
I originally reported this bug here:


In incremental recursion mode, the exclusion of an ancestor dir of a source argument incorrectly short-circuits the traversal of the source argument, even with --no-implied-dirs.  I expect rsync to omit the ancestor dir from the file-list (moot with --no-implied-dirs) but traverse the source argument regardless, as rsync 2.6.9 does.

To reproduce:

$ mkdir src src/D
$ rsync -ni -rR --exclude='/src' src/D/ dest/
(No output)
$ rsync -ni -rR --no-implied-dirs --exclude='/src' src/D/ dest/
(Still no output)
$ rsync-2.6.9 -ni -rR --exclude='/src' src/D/ dest/
cd+++++++ src/D/
Comment 1 Wayne Davison 2008-01-19 12:19:20 UTC
The latest dev version now has this fixed.  We no longer allows the filtering of any implied directories except via --no-implied-dirs.  This fixes the weirdness in earlier versions where an exclude would elide the sending of the directory's information without stopping the sending of its contents.
Comment 2 Matt McCutchen 2008-01-23 23:33:23 UTC
IMHO, the old behavior of excluding just the implied dir from the file-list was useful, not weird...but anyway the important problem is fixed.