On Fri, Jan 17, 2003 at 04:42:51PM -0600, Dave Dykstra wrote:
> On Thu, Jan 16, 2003 at 11:14:50PM -0800, Wayne Davison wrote:
> > On Thu, Jan 16, 2003 at 07:06:05PM -0800, jw schultz wrote:
> > > [...] and that entries therein are not flattened like they would be on
> > > the command-line (sans -R).
> > 
> > But they *are* flattened exactly like on the command-line, at least in
> > my current patch they are.  That's what -R is for -- telling rsync not
> > to do that.  So, without -R there are no implied directories to create
> > except for the destination dir (which is created if it doesn't exist).
> 
> Oh, right, I hadn't thought of that implication of the way this is
> implemented.  Definitely we want the -R functionality implied.  That's
> the only way I can imagine people wanting to use this.
> 
> 
> 
> > > The permissions and ownership should be derived from the source.
> > > so effectively it should be as though
> > >   ./deltapics
> > > where in the file list.
> > 
> > Right.  In fact, that's exactly what happens with -R -- all intermediate
> > directories get added to the file list (if they aren't already in it)
> > without causing any extra recursion (even if -r was specified/implied).
> 
> 
> In my former hack implementation of the "exclude optimization" (when 
> there were only includes with no wildcards and a final exclude '*') it
> was able to skip sending the parent directories completely.  Come to
> think of it, I'm not sure what kind of permissions were used for the
> directories that were not explicitly included, maybe it just use the
> default.
> 
> 
> > If people want the "--files-from" to imply "-R" then I'd want to see a
> > "--no-relative" option to let people turn it off.
> 
> That would be easy to implement so I guess it wouldn't hurt but I really
> can't see people wanting to do that.

        rsync -lptgoDu --delete --files-from=distlist distserver::8.0/i386 /root2
where distlist is
        etc/init.d/rsyncd
        etc/rsyncd.conf
        usr/bin/rsync
        usr/bin/rsyncstats
        usr/sbin/rcrsyncd
        usr/sbin/rsyncd
        usr/share/doc/packages/rsync
        usr/share/doc/packages/rsync/COPYING
        usr/share/doc/packages/rsync/README
        usr/share/doc/packages/rsync/tech_report.ps
        usr/share/doc/packages/rsync/tech_report.tex
        usr/share/man/man1/rsync.1.gz
        usr/share/man/man5/rsyncd.conf.5.gz

It should not do /root2/i386/etc/init.d/rsyncd and so on as
-R would have it.

It should not create (flattened)
        /root2/rsyncd           # from /etc/init.d
        /root2/rsyncd.conf
        /root2/rsync
        /root2/rsyncstats
        /root2/rcrsyncd
        /root2/rsyncd           # from usr/sbin?
        /root2/COPYING
        /root2/README
        /root2/tech_report.ps
        /root2/tech_report.tex
        /root2/rsync.1.gz
        /root2/rsyncd.conf.5.gz

What it should create or update is /root2/etc/init.d/rsyncd and so on.
and it should be equivalent to
        rsync -lptgoDu --delete --files-from=distlist \
                distserver:/data/distribution/8.0/i386 /root2
or
        rsync -lptgoDu --delete --files-from=distlist \
                /data/distribution/8.0/i386 client:/root2


If /root2/usr/share/doc/packages doesn't exist it should be
created with perms from source but it should not be recoursed.

This example is drawn from one of the most recent emails
requesting this feature.

I want to thank Wayne for his work on this and his patience
with me.  I seem to be butting heads with him while he has
been good enough to actually write code.  I hope this points
out clearly the difference in our perspectives on this.  I
am not talking about a way to extend the command line.  I am
talking about an explicit list that eliminates the tree walk
and awkwardness of artificial include/exclude lists and has
a similar effect to

        while read subpath
        do
                rsync -lptgoD distserver::8.0/i386/$subpath /root2/$subpath
        done <distlist

which is what people are actually doing now.

There is i'm sure value in being able to pass a list that
simply won't fit on the command line.

There is however immediate value in being able to request
a sparse list of paths to be synced from one tree to another
without looping or changing CWD (especially on the remote
end).

-- 
________________________________________________________________
        J.W. Schultz            Pegasystems Technologies
        email address:          [EMAIL PROTECTED]

                Remember Cernan and Schmitt
-- 
To unsubscribe or change options: http://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.tuxedo.org/~esr/faqs/smart-questions.html

Reply via email to