Skip to content

Commit

Permalink
Merge branch 'rn/sparse-describe'
Browse files Browse the repository at this point in the history
"git describe --dirty" learns to work better with sparse-index.

* rn/sparse-describe:
  describe: enable sparse index for describe
  • Loading branch information
gitster committed Apr 21, 2023
2 parents de73a20 + 748b8d6 commit 7ac228c
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 0 deletions.
2 changes: 2 additions & 0 deletions builtin/describe.c
Original file line number Diff line number Diff line change
Expand Up @@ -658,6 +658,8 @@ int cmd_describe(int argc, const char **argv, const char *prefix)
int fd, result;

setup_work_tree();
prepare_repo_settings(the_repository);
the_repository->settings.command_requires_full_index = 0;
repo_read_index(the_repository);
refresh_index(&the_index, REFRESH_QUIET|REFRESH_UNMERGED,
NULL, NULL, NULL);
Expand Down
3 changes: 3 additions & 0 deletions t/perf/p2000-sparse-operations.sh
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ test_expect_success 'setup repo and indexes' '
done &&
git sparse-checkout init --cone &&
git tag -a v1.0 -m "Final" &&
git sparse-checkout set $SPARSE_CONE &&
git checkout -b wide $OLD_COMMIT &&
Expand Down Expand Up @@ -126,5 +127,7 @@ test_perf_on_all git update-index --add --remove $SPARSE_CONE/a
test_perf_on_all "git rm -f $SPARSE_CONE/a && git checkout HEAD -- $SPARSE_CONE/a"
test_perf_on_all git grep --cached bogus -- "f2/f1/f1/*"
test_perf_on_all git write-tree
test_perf_on_all git describe --dirty
test_perf_on_all 'echo >>new && git describe --dirty'

test_done
25 changes: 25 additions & 0 deletions t/t1092-sparse-checkout-compatibility.sh
Original file line number Diff line number Diff line change
Expand Up @@ -1514,6 +1514,31 @@ test_expect_success 'sparse-index is not expanded: stash' '
ensure_not_expanded stash pop
'

test_expect_success 'describe tested on all' '
init_repos &&
# Add tag to be read by describe
run_on_all git tag -a v1.0 -m "Version 1" &&
test_all_match git describe --dirty &&
run_on_all rm g &&
test_all_match git describe --dirty
'


test_expect_success 'sparse-index is not expanded: describe' '
init_repos &&
# Add tag to be read by describe
git -C sparse-index tag -a v1.0 -m "Version 1" &&
ensure_not_expanded describe --dirty &&
echo "test" >>sparse-index/g &&
ensure_not_expanded describe --dirty &&
ensure_not_expanded describe
'

test_expect_success 'sparse index is not expanded: diff' '
init_repos &&
Expand Down

0 comments on commit 7ac228c

Please sign in to comment.