A while back Stefan added support to CVS HEAD
 <sync> for a <preserveintarget> element that should
do what you want.  It was based on Dominique's code
IIRC.

-Matt

--- Mark Benussi <[EMAIL PROTECTED]> wrote:

> Um Rock and roll... thanks for that.
> 
> I will have to get my head round the code as I am
> not too good at the custom
> tasks stuff
> 
> -----Original Message-----
> From: Dominique Devienne
> [mailto:[EMAIL PROTECTED] 
> Sent: 18 August 2005 15:35
> To: 'Ant Users List'
> Subject: RE: Sync removing cvs information in target
> directory
> 
> Using the code below, you can patch the <sync> task
> to preserve arbitrary
> files. You'll have to code and compile it yourself
> though. --DD
> 
>     <bm:lsync2 todir="jar">
>       <preservedfiles includes="**/CVS/**" />
> 
>       <fileset dir="${sync.win32.from}">
>         <include name="com_lgc_foo_devkit.jar" />
>         <include name="com_lgc_foo_dataTypes.jar" />
>         <include name="com_lgc_bar_devkit.jar" />
>       </fileset>
>     </bm:lsync2>
> 
>   /** The <em>untouchable</em> files: the ones not
> to delete. */
>   private PreservedFiles _untouchables;
> 
> 
> Between Pass#1 and Pass#2, in execute():
> 
>     // Gather the untouchable files, if any (yes,
> we're scanning
>     // the sync'd dir twice here and in
> removeOrphanFiles...)
>     if (_untouchables != null) {
>       _untouchables.setTargetDir(_todir);
>       DirectoryScanner scanner =
> _untouchables.getDirectoryScanner(prj);
>       String[] preserved =
> scanner.getIncludedFiles();
>       for (int i = 0; i < preserved.length; ++i) {
>         String name = preserved[i];
>         File untouchable = new File(_todir, name);
>         target2source.put(untouchable, _todir);
>       }
>       final int preservedCount =
> target2source.size() - targetCount;
>       log("(preversing " + preservedCount + "
> file(s))",
>           logLevel(preservedCount));
>     }
> 
>   /**
>    * Adds a pseudo-fileset of files not to remove.
>    *
>    * @param  untouchables the <em>do not remove</em>
> files.
>    *         Like a fileset, except the dir
> attribute is implicit.
>    */
>   public void addPreservedFiles(PreservedFiles
> untouchables) {
>     if (_untouchables != null) {
>       throw new BuildException("Too many
> <preservedfiles> elements: >1!");
>     }
>     _untouchables = untouchables;
>   }
> 
>   /**
>    * A pseudo-fileset for files that should not be
> removed from the
>    * sync'd directory, even though they don't have
> an equivalent source.
>    */
>   public static class PreservedFiles extends
> AbstractFileSet {
> 
>     /**
>      * Instantiates a new preserved file
> pseudo-fileset.
>      * <p>
>      * Sets "defaultexcludes" to <code>false</code>
>      * (instead of <code>true</code>) by default.
>      */
>     public PreservedFiles() {
>       super();
>       setDefaultexcludes(false);
>     }
> 
>     /**
>      * Always throws an exception, since disallowed.
>      *
>      * @param  dir ignored
>      * @throws BuildException always
>      */
>     public void setDir(File dir) throws
> BuildException {
>       throw new BuildException("Cannot set
> directory. Sync'd directory
> used!");
>     }
> 
>     /**
>      * Sets the implicit fileset directory.
>      *
>      * @param  dir the sync'd directory.
>      */
>     private void setTargetDir(File dir) throws
> BuildException {
>       super.setDir(dir);
>     }
> 
>   } // END static class PreservedFiles
> 
> 
> 
> 
> > -----Original Message-----
> > From: Mark Benussi
> [mailto:[EMAIL PROTECTED]
> > Sent: Thursday, August 18, 2005 7:08 AM
> > To: 'Ant Users List'
> > Subject: RE: Sync removing cvs information in
> target directory
> > 
> > Great idea!
> > 
> > -----Original Message-----
> > From: Jeffrey E Care [mailto:[EMAIL PROTECTED]
> > Sent: 18 August 2005 12:25
> > To: Ant Users List
> > Subject: Re: Sync removing cvs information in
> target directory
> > 
> > I move the CVS directories to a temporary holding
> area, perform the sync,
> > then move them back. You'll also need to fiddle
> with the default excludes
> > to make this work.
> > 
> > --
> > Jeffrey E. Care ([EMAIL PROTECTED])
> > WebSphere v7 Release Engineer
> > WebSphere Build Tooling Lead (Project Mantis)
> > 
> > 
> > "Mark Benussi" <[EMAIL PROTECTED]> wrote on
> 08/18/2005 06:44:03 AM:
> > 
> > > Hi Guys,
> > >
> > >
> > >
> > > Any ideas how I could use the sync task but not
> remove any directories
> > in
> > > the target that are named CVS. Basically my CVS
> information is getting
> > wiped
> > > and this is causing problems.
> > >
> > >
> > >
> > >
> > >
> > 
> >
>
---------------------------------------------------------------------
> > To unsubscribe, e-mail:
> [EMAIL PROTECTED]
> > For additional commands, e-mail:
> [EMAIL PROTECTED]
> 
> 
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
> [EMAIL PROTECTED]
> For additional commands, e-mail:
> [EMAIL PROTECTED]
> 
> 
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
> [EMAIL PROTECTED]
> For additional commands, e-mail:
> [EMAIL PROTECTED]
> 
> 



                
____________________________________________________
Start your day with Yahoo! - make it your home page 
http://www.yahoo.com/r/hs 
 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to