Re: preserving mtime
From: Erik Warendorph <hidden>
Date: 2016-06-15 22:43:52
* Fabrizio Pollastri [off-list ref] [2007-11-16 10:33:45 +0100]:
is it possible to tell git to preserve the file modification time in a checked out copy? It is useful when managing web files, where mtime is tested by spiders for download decisions.
You may find the script "git-set-file-times" in the GitWiki
useful:
ExampleScripts - GitWiki
Setting the timestamps of the files to the commit timestamp
of the commit which last touched them
<http://git.or.cz/gitwiki/ExampleScripts#head-a57deb2b4ab1e2de80ab5fd3c681a6055a9d3247>
You should of course pay attention to advice about (and
against) doing stuff like this, both in the description of that
script and in other postings on this list. But as you are
using Git to manage web files and you (probably) don't care
about build systems such as "make", you should be pretty safe.
About the script: I think it originally was made by Eric Wong
(= normalperson) who is also on this list. I have just made a
tiny, tiny modification to it (adding " or s/\0$//" to the
elsif test).
I've also thought about adding a --prefix option to the script.
This would enable it to be used together with git-archive,
leaving the working directory alone and affecting the files in
the directory where the archive is extracted instead. In this
way, you would distinguish between your working directory and
your "live" directory, and the command sequence
git archive --prefix=foo/ HEAD | (cd /var/www/ && tar xf -)
git-set-file-times --prefix=/var/www/foo/
would be part of the build system, publishing your working
directory to your "live" directory (in this case
/var/www/foo/).
--
Erik Warendorph [off-list ref]