Ok my bad. replace does change the timestamp if the token is replaced.
I was creating the source.txt just before the replace, which also gave
temp.txt same timestamp.
<?xml version="1.0" encoding="UTF-8"?>
<project name="test-replace" default="test">
<target name="test">
<!--<echo file="source.txt" message="token"/>-->
<copy file="source.txt" tofile="temp.txt"
preservelastmodified="true"/>
<replace file="temp.txt" token="token" value="replaced"/>
<condition property="not.replaced">
<not>
<uptodate srcfile="source.txt"
targetfile="temp.txt"></uptodate>
</not>
</condition>
<echo message=" not.replaced : ${not.replaced}"/>
<fail if="not.replaced" message="Not replaced"/>
<delete file="temp.txt"/>
</target>
</project>
On Tue, 2008-02-05 at 18:24 +0530, Prashant Reddy wrote:
> Thanks for a good idea. nice and simple.
>
> Quick check with following build.xml reveals that the replace does not
> modify timestamp even when token is replaced. However this approach will
> not catch scenario where 1 instance was replaced when 2 were expected.
>
> <?xml version="1.0" encoding="UTF-8"?>
> <project name="test-replace" default="test">
> <target name="test">
> <echo file="source.txt" message="token"/>
> <copy file="source.txt" tofile="temp.txt"
> preservelastmodified="true"/>
> <replace file="temp.txt" token="token" value="replaced"/>
> <condition property="not.replaced">
> <not>
> <uptodate srcfile="source.txt"
> targetfile="temp.txt"></uptodate>
> </not>
> </condition>
> <fail if="not.replaced" message="Not replaced"/>
> </target>
> </project>
>
> $ ls -lt
> total 12
> -rw-r--r-- 1 prashant prashant 5 2008-02-05 18:22 source.txt
> -rw-r--r-- 1 prashant prashant 8 2008-02-05 18:22 temp.txt
> -rw-r--r-- 1 prashant prashant 569 2008-02-05 18:22 build.xml
>
> -Prashant
>
> On Tue, 2008-02-05 at 13:27 +0100, Knuplesch, Juergen wrote:
> > Maybe you could copy the file without changing of the timestamp (attribute
> > preservelastmodified).
> > Then do the replace on your file.
> > Then test via <uptodate> if a change happened.
> > Delete the copy
> >
> > This will only work, if replace does not change the timestamp, in case of
> > no changes.
> >
> > Just an idea...
> >
>
>
> ---------------------------------------------------------------------
> 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]