From: Wayne Davison Date: Fri, 15 Mar 2019 19:20:55 +0000 (-0700) Subject: Handle a run from down inside the checkout tree. X-Git-Tag: v3.2.0pre1~209 X-Git-Url: http://git.samba.org/?a=commitdiff_plain;h=bdfc296faf29dd7354a4b8b6a252bba84d43abf1;p=rsync.git Handle a run from down inside the checkout tree. --- diff --git a/support/git-set-file-times b/support/git-set-file-times index 077ac0e0..53550b74 100755 --- a/support/git-set-file-times +++ b/support/git-set-file-times @@ -11,8 +11,14 @@ my %ls; my $commit_time; my $prefix = @ARGV && $ARGV[0] =~ s/^--prefix=// ? shift : ''; +my $top_dir = `git rev-parse --show-toplevel`; +exit 1 unless $top_dir; +chomp($top_dir); + +chdir $top_dir or die "Failed to chdir to $top_dir\: $!\n"; + $/ = "\0"; -open FH, 'git ls-files -z|' or die $!; +open FH, '-|', qw( git ls-files -z ) or die "Failed to fork: $!"; while () { chomp; $ls{$_} = $_; @@ -20,12 +26,12 @@ while () { close FH; $/ = "\n"; -open FH, "git log -r --name-only --no-color --pretty=raw -z @ARGV |" or die $!; +open FH, '-|', qw( git log -r --name-only --no-color --pretty=raw -z ), @ARGV or die "Failed to fork: $!"; while () { chomp; if (/^committer .*? (\d+) (?:[\-\+]\d+)$/) { $commit_time = $1; - } elsif (s/\0\0commit [a-f0-9]{40}$// or s/\0$//) { + } elsif (s/\0\0commit [a-f0-9]{40}$// || s/\0$//) { my @files = delete @ls{split(/\0/, $_)}; @files = grep { defined $_ } @files; next unless @files;