2009-07-14 11 views
3

Im Moment mache ich das:Wie kann ich nur Dateien bearbeiten, die sich geändert haben?

<delete dir="${RSA.dir}/file1" /> 
<copy todir="${RSA.dir}/file1" > 
    <fileset dir="${CLEARCASE.dir}/file1" />    
</copy> 

und das gleiche für andere Dateien zu wiederholen - aber es dauert eine lange Zeit.

Ich möchte nur Dateien löschen und kopieren, die aktualisiert wurden, mit ihrem geänderten Datum in Klarschrift später als in RSA.

Wie kann ich das tun?

Antwort

4

Sie müssen einen selector auf einem FileSet verwenden. Etwas wie folgt aus:

<fileset dir="${your.working.dir}/src/main" includes="**/*.java"> 
    <different targetdir="${clean.clearcase.checkout}/src/main" 
     ignoreFileTimes="false" 
     ignoreContents="true" /> 
</fileset> 

, dass Ihre Arbeits dir auf eine saubere Kasse vergleicht Sie an anderer Stelle haben, und gibt die Dateien, deren letzte Änderung die Zeiten geändert haben. Sie können die Dateigruppe als Argument für eine <delete> oder <copy> verwenden.

5

Schauen Sie in die sync Aufgabe.

Wenn Sie es tun wollen, basierend auf Dateiinhalte und den Zeitstempel ignorieren, ich denke, das Makro das tun:

<macrodef name="mirror" description="Copy files only if different; remove files that do not exist in dir. This works similiar to robocopy /MIR." > 
    <attribute name="dir"/> 
    <attribute name="todir"/> 
    <sequential> 
     <copy overwrite="true" todir="@{todir}"> 
      <fileset dir="@{dir}"> 
       <different targetdir="${todir}"/> 
      </fileset> 
     </copy> 
     <delete includeemptydirs="true"> 
      <fileset dir="@todir}"> 
       <present targetdir="${dir}" present="srconly"/> 
      </fileset>     
     </delete> 
    </sequential> 
</macrodef> 
+0

Sync Aufgabe wirkt wie ein Zauber! – NorTicUs

Verwandte Themen