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