Re: [PATCH v3] blame: prevent error if range ends past end of file
From: Junio C Hamano <hidden>
Date: 2017-10-27 02:01:16
Junio C Hamano [off-list ref] 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.
to kick in. There should be an "is the range sensible?" check after all the tweaking to bottom and top are done, I think.quoted
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' '