ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stefan Bodewig <bode...@apache.org>
Subject Re: cvs commit: ant/src/testcases/org/apache/tools/ant/taskdefs SyncTest.java
Date Tue, 25 Jan 2005 14:24:07 GMT
On Thu, 20 Jan 2005, Dominique Devienne <DDevienne@lgc.com> wrote:

> Let me address the second one first:
> 
>> (2) Names again.
>> 
>>     <sync todir="${dest}">
>>       <fileset dir="${src}"/>
>>       <deletefromtarget>
>>         <exclude name="e/f"/>
>>       </deletefromtarget>
>>     </sync>
>> 
>> <deletefromtarget> is a <fileset> that doesn't allow dir to be
>> set.  It implicitly contains <exclude>s for all the files that
>> have been matched by one of the source-<fileset> (everything that
>> should be there).  It can be used to keep things like logfiles or
>> config files or similar in you target directory.  Default is to
>> delete everything not present in any of the source sets.
> 
> Why a dir-less fileset rather than a patternset/selector?

Because it is a very convenient SelectorContainer that also happens to
allow nested patternsets and even has a default patternset for very
compact descriptions.

> What happens if I refid a fileset with a dir? It barfs?

You can't since it is not a <fileset>, it is an AbstractFileSet.  The
only things you could pass in via refid are other deletefromtarget
instances as well (see AbstractFileSet#getRef()).

>> Now, is <deletefromtarget> a good name?  Is there a better one to
>> capture what it does?
> 
> I don't know... I was kind of thinking the reverse, where you
> specify files not to touch on the target side, like
> 
> 	<preservedtargets>
>         <include name="e/f" />
> 	</preservedtargets>

But that would have been significantly more difficult to code ;-)

> The advantage of this is you can do stuff like:
> 
> 	<preservedtargets>
>         <include name="**/*.log" />
>         <exclude name="**/tmp/*.log" />
> 	</preservedtargets>
> 
> Which you cannot do with the <exclude> logic.

But it enables things you couldn't do with preservetargets - exclude
and include are simply not symmetric.

> (although you can do it with selectors).

Yep.

> A 33% slowdown with your optimizations doesn't sound too bad
> for the added flexibility ;-)

Cool.

Thanks

        Stefan

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org


Mime
View raw message