threads / discuss / 37948

Set file modification time on checkout

Subject: Set file modification time on checkout

## tl;dr

2 messages between Nov 13, 2014 and Nov 13, 2014.

replies: 1people: 2as markdown or json

Patrick Hemmer· Nov 13, 2014, 04:45 UTC · lore

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· Nov 13, 2014, 05:04 UTC · re: Patrick Hemmer · lore

Re: Set file modification time on checkout

On 2014-11-13 05.45, Patrick Hemmer wrote:
Show 8 quoted lines
> 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

← back to recent threads