[PATCH 1/3] contacts: validate hunk length earlier
- From
Eric Sunshine <sunshine@sunshineco.com>
- Date
- Aug 9, 2013, 21:39 UTC
- Message-ID
- <1376084396-53617-2-git-send-email-sunshine@sunshineco.com>
- In-Reply-To
- <1376084396-53617-1-git-send-email-sunshine@sunshineco.com>
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> --- contrib/contacts/git-contacts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/contrib/contacts/git-contacts b/contrib/contacts/git-contacts index d80f7d1..4fbb2ef 100755 --- a/contrib/contacts/git-contacts +++ b/contrib/contacts/git-contacts @@ -60,8 +60,6 @@ sub import_commits { sub get_blame { my ($commits, $source, $start, $len, $from) = @_; - $len = 1 unless defined($len); - return if $len == 0; open my $f, '-|', qw(git blame --porcelain -C), '-L', "$start,+$len", '--since', $since, "$from^", '--', $source or die; @@ -90,7 +88,8 @@ sub scan_patches { } elsif (/^--- /) { die "Cannot parse hunk source: $_\n"; } 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; } } }
-- 1.8.4.rc2.460.ga591f4a