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 bb441bb + b80f75b commit 5912b50
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 1 deletion.
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
1 change: 1 addition & 0 deletions t/perf/p2000-sparse-operations.sh
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,7 @@ test_perf_on_all git checkout-index -f --all
test_perf_on_all git update-index --add --remove
test_perf_on_all git diff
test_perf_on_all git diff --cached
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

Expand Down
11 changes: 10 additions & 1 deletion t/t1092-sparse-checkout-compatibility.sh
Original file line number Diff line number Diff line change
Expand Up @@ -533,7 +533,7 @@ test_expect_success 'blame with pathspec inside sparse definition' '
# 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' '
test_expect_success 'blame with pathspec outside sparse definition' ')
init_repos &&
test_sparse_match git sparse-checkout set &&
Expand Down Expand Up @@ -1685,6 +1685,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 5912b50

Please sign in to comment.