git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Setting file timestamps to commit time (git-checkout)

From
Andreas Schwab <schwab@linux-m68k.org>
Date
Dec 10, 2013, 19:02 UTC
Message-ID
<87bo0olebe.fsf@igel.home>
In-Reply-To
<20131210083531.GB4087@linux.vnet.ibm.com>
Dominik Vogt <vogt@linux.vnet.ibm.com> writes:
> The second best approach I could think of is to stamp files with the
> timestamp of the last commit that touched that, but I guess that is
> not a cheap operation either.
I'm using this script for this:
#!/bin/sh
git log --name-only --format=format:%n%ct -- "$@" |
perl -e 'my $do_date = 0; chomp(my $cdup = `git rev-parse --show-cdup`);
    while (<>) {
	chomp;
	if ($do_date) {
	    next if ($_ eq "");
	    die "Unexpected $_\n" unless /^[0-9]+$/;
	    $d = $_;
	    $do_date = 0;
	} elsif ($_ eq "") {
	    $do_date = 1;
	} elsif (!defined($seen{$_})) {
	    $seen{$_} = 1;
 	    utime $d, $d, "$cdup$_";
 	}
    }'
Andreas.
-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."
Previous: Dominik VogtNext: Dominik Vogt
Message 4 of 11 in “Setting file timestamps to commit time (git-checkout)”
  1. Dominik VogtDec 9, 2013
  2. Junio C HamanoDec 9, 2013
  3. Dominik VogtDec 10, 2013
  4. Andreas SchwabDec 10, 2013
  5. Dominik VogtDec 11, 2013
  6. Constantine A. MureninDec 11, 2013
  7. Jonathan NiederDec 9, 2013
  8. Dominik VogtDec 10, 2013
  9. Duy NguyenDec 10, 2013
  10. Jonathan NiederDec 11, 2013
  11. Jonathan NiederDec 11, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.