I haven't looked at in detail yet Martin but I will. Somthing to consider is that a solution that performs the merge upon the raw xml of the multiple definitions would/should work for all datatypes without the derived class having to implement MergeWith. Thats what we discussed previously but it may be that your solution is a better way to do it.

Ian


Martin Aliger wrote:


Hi all,

Here are patches to enable all stuff we discussed. I haven't any test cases
and docs are missing in most places as well. If you like the patch I'll add
that!.

Now script like this:

<fileset id="1">
 <includes name="1"/>
 <includes name="3"/>
</fileset>

<fileset id="1" mode="replace">
 <includes name="2"/>
 <includes name="4"/>
</fileset>

<fileset id="1" mode="append">
 <includes name="1"/>
 <includes name="5"/>
</fileset>

will define fileset with id "1" with items 2,4,1,5 (in order). Merged items
are in AsIs field of original fileset so merges with different
basedirs/excludes/whatever should work.

Script also enable to (re)define types in <if> and <foreach> subtasks.
Executing tasks/types in project level, target level and container level is
unified to new function in Project.cs (ExecuteNode) [cleaning of code]

Currently no more types that FileSet support merge but enable that is
straighforward. Just override method MergeWith (defined in BaseType). Base
method just throws BuildException.

Martin

----- Original Message ----- From: "Ian MacLean" <[EMAIL PROTECTED]>
To: "Jaroslaw Kowalski" <[EMAIL PROTECTED]>
Cc: "Martin Aliger" <[EMAIL PROTECTED]>; "! nant"
<[EMAIL PROTECTED]>
Sent: Monday, January 05, 2004 2:04 PM
Subject: Re: [nant-dev] filesets





The method Martin proposed has been discussed before. It would be tidier
from a user point of view to allow adding to filesets without a seperate
task - maybe using the mode attribute on the fileset itself

<fileset id="f1" basedir="c:\temp\foo" mode="append | replace" > <!--

re-define f1 fileset -->


   <includes name="item1"/>
   <includes name="item2"/>
  </fileset>

Martin - how does your implementation perform the merging ? Do you merge


the raw xml of the old "f1" fileset with that of the new definition and
instantiate a new fileset instance based on that ?


Ideally this would work for all "dataTypes" - not just filesets. If its


doable for filesets doing it for all datatypes won't be much more work.


Ian


Jaroslaw Kowalski wrote:




How about a <modify-fileset> task? Like this:

<modify-fileset id="f1" mode="add | delete | replace">
  <fileset>
  </fileset>
</modify>

It would take either "replace" the f1 with the contents of <fileset>,


"add"


new items or "delete" matching items.

Jarek
----- Original Message ----- From: "Martin Aliger" <[EMAIL PROTECTED]>
To: "! nant" <[EMAIL PROTECTED]>
Sent: Monday, January 05, 2004 12:13 PM
Subject: [nant-dev] filesets







Hi all,

this snippet:
<if test="${1==1}">
 <fileset id="f1" basedir="c:\temp\foo">
  <includes name="item3"/>
 </fileset>
</if>
is currently not possible because type definitions are allowed only at
project or task level. Is it intended or should we allow this as well?


I'm working on extension that will allow this: <fileset id="f1" basedir="c:\temp\foo"> <!-- define f1 fileset --> <includes name="item1"/> <includes name="item2"/> </fileset>

<if test="${1==1}">
<fileset id="f1" basedir="c:\temp\foo">    <!-- extend existing f1




fileset




with new item -->
  <includes name="item3"/>
  <includesFileset refid="f1"/>
</fileset>
</if>

that means - extending existing filesets. Use in the foreach is also
possible... What do you think about that?

Martin



-------------------------------------------------------
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills. Sign up for


IBM's


Free Linux Tutorials. Learn everything from the bash shell to sys


admin.


Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
_______________________________________________
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers






------------------------------------------------------- This SF.net email is sponsored by: IBM Linux Tutorials. Become an expert in LINUX or just sharpen your skills. Sign up for IBM's Free Linux Tutorials. Learn everything from the bash shell to sys admin. Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click _______________________________________________ nant-developers mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/nant-developers




--
Ian MacLean, Developer,
ActiveState, a division of Sophos
http://www.ActiveState.com



-------------------------------------------------------
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
_______________________________________________
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers





--
Ian MacLean, Developer, ActiveState, a division of Sophos
http://www.ActiveState.com




-------------------------------------------------------
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
_______________________________________________
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers

Reply via email to