On Mon, Feb 19, 2018 at 11:08:19PM +0100, Peter Backes wrote:
> Is thetre some existing code that could be used? I think I read
> somewhere that git once did preserve mtimes, but that this code was
> removed because of the build tool issues. Perhaps that code could
> simply be put back in, and surrounded by conditions.
I don't believe that was ever true, because the mod times is simply
not *stored* anywhere.
You might want to consider trying to implement it as hook scripts
first, and see how well/poorly it works for you. I do have a use
case, which is to maintain the timestamps for guilt (a quilt-like
patch management system which uses git). At the moment I just use a
manual script, save-timestamps, which looks like this:
#!/bin/sh
stat -c "touch -d @%Y %n" * | sort -k 3 | grep -v "~$" | sort -k3 > timestamps
and then I just include the timestamps file in thhe commit. When I
unpack the file elsewhere, I just run the command ". timestamps", or
if I am manually editing a single file, I might do:
grep file-name-of-patch timestamps | sht
This works because the timestamps file has lines which look like
this:
touch -d @1519007593 jbd2-clarify-recovery-checksum-error-msg
I've been too lazy to automate this using a "pre-commit" and
"post-checkout" hook, but it *really* wouldn't be that hard. Right
now it also only works for files in the top-level of the repo, which
is all I have in my guilt patch repo. Making this work in a
multiple-directory environment is also left as an exercise to the
reader. :-)
Cheers,
- Ted
P.S. Also left to the reader is making it work on legacy OS's like
Windows. :-)