[Detecting renames]

Matt McCutchen hashproduct+rsync at gmail.com
Fri Oct 5 19:55:56 GMT 2007


On 10/5/07, Wayne Davison <wayned at samba.org> wrote:
> For the next "feature release" of rsync after 3.0.0, I'm imagining
> adding support for a database API that would allow extra information
> about files to be maintained and used (completely optional, of course).

Does this mean you plan to continue extending the rsync codebase
rather than switching to a replacement along the lines of superlifter?

One enhancement that I would very much like to see is a generalization
of the exclude filter support to "directives" that can affect many
more aspects of how rsync processes the source or destination.
Directives could be given on the command line or in single or per-dir
merge files and could match files by name or other attributes (e.g.,
size or symlink target).  Some ideas for directives: to rewrite paths;
to hide, protect, chmod-tweak, forbid modifying, or back up certain
files; to copy and/or keep certain symlinks; to specify basis dirs;
and to make exceptions to other directives (like "include" rules).

The directive support might end up looking like .htaccess in Apache.
Cool uses of directives would include (1) treating different files
differently (impossible with the current all-or-nothing options); (2)
assembling a file tree according to a set of rules with a single
elegant command (e.g., for software packaging); and (3) making a
daemon do things behind the scenes (such as backups or a link-dest
dir).

I'm not sure how directives would interact with an attribute DB.  For
example, would the DB contain attributes before or after they are
affected by directives, and at the original or the rewritten paths?
One clever approach is to have a directive to use the DB that applies
wherever it is placed in the directive chain.

Thoughts on this?

Matt


More information about the rsync mailing list