Skip to content

Commit

Permalink
Merge pull request microsoft#431 from ldennington/sparse-index-blame
Browse files Browse the repository at this point in the history
blame: enable and test the sparse index
  • Loading branch information
ldennington committed Jan 20, 2022
2 parents 41004a6 + 72ce2a2 commit 1ad0dcf
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 3 deletions.
2 changes: 2 additions & 0 deletions builtin/blame.c
Original file line number Diff line number Diff line change
Expand Up @@ -898,6 +898,8 @@ int cmd_blame(int argc, const char **argv, const char *prefix)
long anchor;
const int hexsz = the_hash_algo->hexsz;

prepare_repo_settings(the_repository);
the_repository->settings.command_requires_full_index = 0;
setup_default_color_by_age();
git_config(git_blame_config, &output_option);
repo_init_revisions(the_repository, &revs, NULL);
Expand Down
2 changes: 2 additions & 0 deletions t/perf/p2000-sparse-operations.sh
Original file line number Diff line number Diff line change
Expand Up @@ -121,5 +121,7 @@ test_perf_on_all git update-index --add --remove
test_perf_on_all git diff
test_perf_on_all git diff --staged
test_perf_on_all git sparse-checkout reapply
test_perf_on_all git blame $SPARSE_CONE/a
test_perf_on_all git blame $SPARSE_CONE/f3/a

test_done
12 changes: 9 additions & 3 deletions t/t1092-sparse-checkout-compatibility.sh
Original file line number Diff line number Diff line change
Expand Up @@ -530,9 +530,6 @@ test_expect_success 'blame with pathspec inside sparse definition' '
done
'

# Without a revision specified, blame will error if passed any file that
# is not present in the working directory (even if the file is tracked).
# Here we just verify that this is also true with sparse checkouts.
test_expect_success 'blame with pathspec outside sparse definition' '
init_repos &&
test_sparse_match git sparse-checkout set &&
Expand Down Expand Up @@ -1716,6 +1713,15 @@ test_expect_success 'stash -u outside sparse checkout definition' '
test_all_match git status --porcelain=v2
'

test_expect_success 'sparse index is not expanded: blame' '
init_repos &&
ensure_not_expanded blame a &&
ensure_not_expanded blame deep/a &&
ensure_not_expanded blame deep/deeper1/a &&
ensure_not_expanded blame deep/deeper1/deepest/a
'

# NEEDSWORK: a sparse-checkout behaves differently from a full checkout
# in this scenario, but it shouldn't.
test_expect_success 'reset mixed and checkout orphan' '
Expand Down

0 comments on commit 1ad0dcf

Please sign in to comment.