Won't argue with your comment in general, but Xxx Yyy wrote:

>>   <make a temporary copy of file-A>
>>   <work on temporary copy, growing and changing it>
>>   <when work is complete, replace master copy with temporary>

which seems to be a case where overwrite is appropriate.

Phil :n)

On Tue, 2005-03-08 at 16:44, Peter Reilly wrote:

> Phil Weighill-Smith wrote:
> 
> >An alternative, and far more portable work-around is to just use the
> >overwrite attribute on the second copy task.
> >  
> >
> I think that this build file is just an example to show the
> problem, so this work-around may not be suitable for the real build file.
> 
> This is the correct way to show problems,  remove all the
> stuff that works and make a build file that just show the bit that fails.
> 
> 
> Peter
> 
> >Phil :n)
> >
> >On Tue, 2005-03-08 at 16:11, Xxx Yyy wrote:
> >
> >  
> >
> >>I looked, but didn't find any discussion on the new granularity
> >>FileUtils.getFileTimestampGranularity.  This is messing up my builds
> >>big-time.
> >>
> >>If you are on Windows and you run two COPY operations within two
> >>seconds of each other, the second COPY will be skipped.
> >>
> >><project default="x">
> >>  <target name="x">
> >>    <touch file="aaa"/>
> >>    <copy file="aaa" tofile="bbb"/>
> >>    <sleep seconds="1"/>
> >>    <touch file="aaa"/>
> >>    <copy file="aaa" tofile="bbb"/>
> >>  </target>
> >></project>
> >>
> >>G:\temp>ant -verbose
> >>Apache Ant version 1.6.2 compiled on July 16 2004
> >>Buildfile: build.xml
> >>Detected Java version: 1.4 in: C:\util\jdk\1.4.2\jre
> >>Detected OS: Windows 2003
> >>parsing buildfile G:\temp\build.xml with URI =
> >>file:///G:/temp/build.xml
> >>Project base dir set to: G:\temp
> >> [property] Loading Environment env.
> >>Build sequence for target `x' is [x]
> >>Complete build sequence is [x, ]
> >>
> >>x:
> >>     [copy] Copying 1 file to G:\temp
> >>     [copy] Copying G:\temp\aaa to G:\temp\bbb
> >>    [sleep] sleeping for 1000 milliseconds
> >>     [copy] G:\temp\aaa omitted as G:\temp\bbb is up to date.
> >>
> >>BUILD SUCCESSFUL
> >>Total time: 3 seconds
> >>G:\temp>
> >>
> >>
> >>The problem stems from this code in FileUtils.java.
> >>
> >>    public long getFileTimestampGranularity() {
> >>        if (Os.isFamily("dos")) {
> >>            return FAT_FILE_TIMESTAMP_GRANULARITY;
> >>        } else {
> >>            return 0;
> >>        }
> >>    }
> >>
> >>This is a very poor test.  I guess there's a limitted granularity of
> >>timestamps on FAT formatted disks.  But this test is assuming that any
> >>drive under DOS or Windows is FAT formatted.
> >>
> >>My build files have this pattern:
> >>
> >>   <make a temporary copy of file-A>
> >>   <work on temporary copy, growing and changing it>
> >>   <when work is complete, replace master copy with temporary>
> >>
> >>If the work takes more than two seconds (or build is run on other os,
> >>unix for example), then the ANT COPY works.  If the work completes in
> >>under two seconds on Windows, ANT COPY fails.
> >>
> >>Temporary work-around is to override the granularity attribute on COPY.
> >> But the root cause of the problem (bad test in FileUtils) needs to be
> >>fixed.
> >>
> >>http://issues.apache.org/bugzilla/show_bug.cgi?id=33906
> >>
> >>---------------------------------------------------------------------
> >>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]

-- 
Phil Weighill-Smith <[EMAIL PROTECTED]>
Volantis Systems

Reply via email to