On Thu, Jan 09, 2003 at 12:30:30PM -0500, David Eisner
wrote:> I thought this might work:
>
> rsync -av --include '*/' --include 'CVS/*' --exclude
'*' src src_cvs
If things were working correctly, yes, that would indeed work. The
problem is that the 'CVS/*' item has an interior slash, and rsync
currently interprets this as being anchored (i.e. as '/CVS/*').
Use this command to work around the problem:
rsync -av --include '*/' --include '**/CVS/*' --exclude
'*' src src_cvs
This should work in your case even though (a) "**/..." doesn't
match in
the root of the transfer (which won't affect you unless you change the
"src" to "src/"), and (b) the trailing "*" gets
treated like "**" (which
should have no ill effects when transferring CVS dirs since they don't
tend to have subdirs).
A previous patch of mine that replaces the matching code with something
that properly interprets "**" and "*" in the same item and
also properly
floats an unanchored match term with an interior slash would have worked
as expected with your original command. I hope to get this fix into
rsync eventually, but we've been in a "let's release soon"
mode for
quite a while, and I haven't wanted to commit such a big change in the
current release cycle.
..wayne..