Ah ha! Found it in Subversion. There is a global configuration
option use-commit-times that by default is turned off. This is a per-
host setting (and can be overridden by local user preferences) so this
means that it would part of your initial server setup. In other
words, after installing Subversion, you would set this global config
parameter.
=========================
From the SVN manual:
=========================
use-commit-times
Normally your working copy files have timestamps that reflect the
last time they were touched by any process, whether that be your own
editor or by some svn subcommand. This is generally convenient for
people developing software, because build systems often look at
timestamps as a way of deciding which files need to be recompiled.
In other situations, however, it's sometimes nice for the working
copy files to have timestamps that reflect the last time they were
changed in the repository. The svn export command always places these
“last-commit timestamps” on trees that it produces. By setting this
config variable to yes, the svn checkout, svn update, svn switch, and
svn revert commands will also set last-commit timestamps on files that
they touch.
=========================
Capistrano could now expose another property to set...something like
'dont_touch_assets' (probably a better name). The onus would be on
the app writer to know that he has set up his server's subversion
configuration to do just this. Then, in finalize_update, this
property could be queried, and the touch process could be conditional.
Any interest in a patch? Also, any suggestions on a good name for the
property?
-John