I learned from http://marc.info/?l=git&m=122783905206964&w=2 that all Git commands do not preserve file timestamps because Git, by design, does not record timestamps in the tree objects. So, in order to see the last time a particular file changed, you must examine the commit log. I guess I'll just have to get used to ignoring the working copy file timestamps.
As far as I know setting the current time is required when switching between different named branches in the same repository.
It can happen that a branch switch ('checkout' in Git's terminology) retrieves an older version of a source file, and then the Makefile would not detect that an object file (a result from earlier compilation that is of course not stored in the repo itself) has to be rebuild because this is based on time checks only. In order to avoid this, the source file (even if older) gets the current date, so it is in any case newer than the object file and causes an automatic rebuild.
Regards Guido -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html