Re: Setting file timestamps to commit time (git-checkout)
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."