Incremental file-list recursion has landed in CVS

Wayne Davison wayned at
Fri Dec 29 01:23:06 GMT 2006

For those that like to assist in the testing of rsync, the CVS version
now defaults to doing an incremental file-list scan when it is recursing
through the directories.  This avoids keeping the whole file list in
memory, and allows the transfer to start working on changed files before
it has completed the recursive scan of the sending side.

The code appears to be working well so far, but there are probably bugs
lurking in such a large set of changes, so please be careful and do let
me know if you have any questions, discover any problems, etc.

Here's what I wrote for the manpage:

   Beginning with rsync 3.0.0, the recursive algorithm used is now an
   incremental scan that uses much less memory than before and begins
   the transfer after the scanning of the first few directories have
   been completed.  This incremental scan only affects our recursion
   algorithm, and does not change a non-recursive transfer (e.g. when
   using a fully-specified --files-from list).  It is also only possible
   when both ends of the transfer are at least version 3.0.0.

   Some options require rsync to know the full file list, so these
   options disable the incremental recursion mode.  These include:
   --delete-before, --delete-after, --delay-updates, and (currently)
   --hard-links.  Because of this, the default delete mode when you
   specify --delete is now --delete-during when both ends of the
   connection are at least 3.0.0 (use --del or --delete-during to
   request this improved deletion mode explicitly).  See also the
   --delete-delay option that is a better choice than using

I have some ideas for how to support --hard-link and --delay-updates
in the incremental transfer mode, so those caveats may go away at some


More information about the rsync mailing list