Re: [PATCH v3] blame: prevent error if range ends past end of file
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Oct 27, 2017, 02:01 UTC
- Message-ID
- <xmqqvaj1cpsq.fsf@gitster.mtv.corp.google.com>
- In-Reply-To
- <xmqqzi8dcpx1.fsf@gitster.mtv.corp.google.com>
Junio C Hamano <gitster@pobox.com> writes:
> For example, with an empty file (i.e. lno == 0), you can ask "git
> blame -L1,-4 ("i.e. "at most four lines, ending at line #1") and the
> code silently accepts the input without noticing that the request is
> an utter nonsense; "file X has only 0 lines" error is given a chances/is given/is not given/; obviously. Sorry for a typo coming from laggy ssh connection.
Show 29 quoted lines
> to kick in. > > There should be an "is the range sensible?" check after all the > tweaking to bottom and top are done, I think. > >> bottom--; >> range_set_append_unsafe(&ranges, bottom, top); >> diff --git a/t/t8003-blame-corner-cases.sh b/t/t8003-blame-corner-cases.sh >> index 661f9d430..728209fa3 100755 >> --- a/t/t8003-blame-corner-cases.sh >> +++ b/t/t8003-blame-corner-cases.sh >> @@ -216,14 +216,13 @@ test_expect_success 'blame -L with invalid start' ' >> ' >> >> test_expect_success 'blame -L with invalid end' ' >> - test_must_fail git blame -L1,5 tres 2>errors && >> - test_i18ngrep "has only 2 lines" errors >> + git blame -L1,5 tres >out && >> + test_line_count = 2 out >> ' >> >> test_expect_success 'blame parses <end> part of -L' ' >> git blame -L1,1 tres >out && >> - cat out && >> - test $(wc -l < out) -eq 1 >> + test_line_count = 1 out >> ' >> >> test_expect_success 'indent of line numbers, nine lines' '