# Set file modification time on checkout

2 messages from 2014-11-13 to 2014-11-13. Participants: Patrick Hemmer, Torsten Bögershausen.
Thread: https://gitlist.dev/t/37948

## Patrick Hemmer, 2014-11-13 04:45

Subject: Set file modification time on checkout
Message-ID: <54643780.7060504@stormcloud9.net>
URL: https://gitlist.dev/e/54643780.7060504%40stormcloud9.net

```
The request is to allow git to set the file modification time on
checkout to the commit-author-date of the commit which last modified the
file.
Yes I know this is in the FAQ, but the FAQ entry is missing an
increasingly common use case: docker.
When docker builds an image, it generates layers of images based on each
build step. Adding a file would be a build step, and for this action it
generates a hash based on the file modification time & content. Next
time the image is built, if these haven't changed, the previously built
layer is reused. And like git commit history, if a layer changes, the
hash of all subsequent layers change and have to be rebuilt. So reusing
layers can save a ton of time.

Now I'm not proposing that this be made the default action. The `make`
use case is legitimate. But it would be nice to have an option for
`checkout` and `reset` which toggles the behavior.

-Patrick

```

## Torsten Bögershausen, 2014-11-13 05:04

Subject: Re: Set file modification time on checkout
Message-ID: <54643BCF.5000900@web.de>
URL: https://gitlist.dev/e/54643BCF.5000900%40web.de
In-Reply-To: <54643780.7060504@stormcloud9.net>

```
On 2014-11-13 05.45, Patrick Hemmer wrote:
> The request is to allow git to set the file modification time on
> checkout to the commit-author-date of the commit which last modified the
> file.
> Yes I know this is in the FAQ, but the FAQ entry is missing an
> increasingly common use case: docker.
> When docker builds an image, it generates layers of images based on each
> build step. Adding a file would be a build step, and for this action it
> generates a hash based on the file modification time & content.
Why do they do this?
The file content is the only thing that matters.

The other thing is to use a hook, utilizing test-chmtime
from test-chmtime.c

```
