When you copy from a source dir using a patternset and filterset, you usually need to do something with the un-filtered files, and having to define a mirror patternset to select them is just plain stupid. (Well one can work around this but the not is a natural thing to do - just an extension of ant's current fileset logic)
You can do that, just don't use patternsets. The way to accomplish what you want is a set of <or>ed <filename> selectors - and then you can easily wrap a <not> arond a refernce to that.
Well, let's just say I already had the patternset (basically text-files patternset so I can mangle text files without breaking binaries) on hand so using it was the natural thing to do. While I do appreciate the workaround (thought of two others for the actual xml file I maintain - with copy one can just copy over and over again with overwriting disabled) it's really convoluted compared to the natural <not><patternset/></not> syntax.
I see - so what we are missing is the "pick patterns from a file" feature of patternset to make selectors a full fledged replacement, otherwise I don't see a useablity difference between <patternset id="foo"> <include ... /> <.../> </patternset> <copy ...><not><patternset refid="foo"></not></copy> on the one side and <selector id="foo"> <or> <filename .../> ... </or> </selector> <copy ...><not><selector refid="foo"></not></copy> on the other.
Sure. I basicaly don't care ifs it's a selector or a patternset, what's annoying is having two similar constructs with different (and not ovelapping) limitations. Complete one or the other and remove/deprecate the limited one from manual so people won't use it, that's all I ask.