Thomas Gummerer <t.gummerer@xxxxxxxxx> writes: >> The point of this fix is not that we show the exact error message, >> but we fail in a controlled manner. I think >> >> test_expect_success 'blame untracked file in empty repo' ' >> >untracked && >> test_must_fail git blame untracked >> ' >> >> is sufficient. > > Yeah, I agree with that. > > Thanks for the review! Thanks for a quick follow-up fix during -rc period. >> builtin/blame.c | 3 ++- > t/t8002-blame.sh | 5 +++++ > 2 files changed, 7 insertions(+), 1 deletion(-) > > diff --git a/builtin/blame.c b/builtin/blame.c > index 7ec7823..a5bbf91 100644 > --- a/builtin/blame.c > +++ b/builtin/blame.c > @@ -2244,7 +2244,8 @@ static void verify_working_tree_path(struct commit *work_tree, const char *path) > pos = cache_name_pos(path, strlen(path)); > if (pos >= 0) > ; /* path is in the index */ > - else if (!strcmp(active_cache[-1 - pos]->name, path)) > + else if (-1 - pos < active_nr && > + !strcmp(active_cache[-1 - pos]->name, path)) > ; /* path is in the index, unmerged */ > else > die("no such path '%s' in HEAD", path); > diff --git a/t/t8002-blame.sh b/t/t8002-blame.sh > index ff09ace..ab79de9 100755 > --- a/t/t8002-blame.sh > +++ b/t/t8002-blame.sh > @@ -6,6 +6,11 @@ test_description='git blame' > PROG='git blame -c' > . "$TEST_DIRECTORY"/annotate-tests.sh > > +test_expect_success 'blame untracked file in empty repo' ' > + >untracked && > + test_must_fail git blame untracked > +' > + > PROG='git blame -c -e' > test_expect_success 'blame --show-email' ' > check_count \