ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dennis Brake <dbr...@globalinfotek.com>
Subject RE: Bug with <delete includeEmptyDirs> ?
Date Wed, 07 Mar 2001 20:32:45 GMT
I agree that getIncludedDirs doesn't work as expected (if at all). I
wrote a custom task and I had to take the parent of each matching file
to see what directories were matched.

> -----Original Message-----
> From: Glenn McAllister [mailto:glenn@somanetworks.com]
> Sent: Wednesday, March 07, 2001 2:37 PM
> To: ant-user@jakarta.apache.org
> Subject: Re: Bug with <delete includeEmptyDirs> ?
> 
> 
> Moving this discussion over from ant-user.  Involves the bug that
> <delete includeEmptyDirs="yes"> ... </delete> only deletes empty leaf
> directories, and none of the intermediate dirs.
> 
> --
> 
> KC Baltz wrote:
> 
> > Great, because this is a feature we could really use.
> 
> I finally got a chance to look at the code.  It seems that my testcase
> was too simple - the directory structure wasn't deep enough.
> 
> Here's a description of the problem.  I have the following directory
> structure:
> 
> a/
>     b/
>         c/
>             d
>     e
> 
> Lets say I have files in a and a/b/c.  So, when I do this:
> 
> <delete includeEmptyDirs="yes">
>   <fileset dir="a" />
> </delete>
> 
> which effectively says "Start at directory a, delete all 
> files (ignoring
> those matching the default exclude patterns), and then delete 
> all empty
> subdirectories."  What actually happens is "Start at 
> directory a, delete
> all files, and then delete empty leaf directories."  So when we are
> done, the structure looks like
> 
> a/
>     b/
>         c
> 
> When I'm chosing what directories to delete, I'm using the
> DirectoryScanner.getIncludedDirs method.  The assumption is that since
> we are using a fileset, we should only try to delete matching empty
> directories.  The funny thing is, if the match pattern is "**" (which
> seems to be a pretty common case), only leaf directories are 
> returned as
> a match.  Now, I've had this discussion before with other 
> committers and
> been told that, in the general case, if the directory does 
> not match the
> pattern it shouldn't be included.  Well, if thats the case, 
> why wouldn't
> it match all the subdirectories with a "**" include pattern?  Why does
> it only match the leaf directories?
> 
> Unless I hear otherwise (i.e., get -1'ed) I'm going to see 
> about either
> changing DirectoryScanner to properly collect ALL directories 
> and return
> them with getIncludedDirs, or create a new method 
> getAllIncludedDirs to
> return all of them.  My preference is the former, but it may 
> break some
> existing behaviour.  Any opinions?
> 
> Glenn McAllister
> 

Mime
View raw message