contacts: validate hunk length earlier
Rather than calling get_blame() with a zero-length hunk only to have it rejected immediately, perform hunk-length validation earlier in order to avoid calling get_blame() unnecessarily. This is a preparatory step to simplify later patches which reduce the number of git-blame invocations by collecting together all lines to blame within a single file at a particular revision. By validating the blame range early, the subsequent patch can more easily avoid adding empty ranges at collection time. Signed-off-by: Eric Sunshine <sunshine@sunshineco.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
5ce922a014
commit
9ae9ca1f95
@ -60,8 +60,6 @@ sub import_commits {
|
|||||||
|
|
||||||
sub get_blame {
|
sub get_blame {
|
||||||
my ($commits, $source, $start, $len, $from) = @_;
|
my ($commits, $source, $start, $len, $from) = @_;
|
||||||
$len = 1 unless defined($len);
|
|
||||||
return if $len == 0;
|
|
||||||
open my $f, '-|',
|
open my $f, '-|',
|
||||||
qw(git blame --porcelain -C), '-L', "$start,+$len",
|
qw(git blame --porcelain -C), '-L', "$start,+$len",
|
||||||
'--since', $since, "$from^", '--', $source or die;
|
'--since', $since, "$from^", '--', $source or die;
|
||||||
@ -90,7 +88,8 @@ sub scan_patches {
|
|||||||
} elsif (/^--- /) {
|
} elsif (/^--- /) {
|
||||||
die "Cannot parse hunk source: $_\n";
|
die "Cannot parse hunk source: $_\n";
|
||||||
} elsif (/^@@ -(\d+)(?:,(\d+))?/ && $source) {
|
} elsif (/^@@ -(\d+)(?:,(\d+))?/ && $source) {
|
||||||
get_blame($commits, $source, $1, $2, $id);
|
my $len = defined($2) ? $2 : 1;
|
||||||
|
get_blame($commits, $source, $1, $len, $id) if $len;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user