diff options
| author | Junio C Hamano <gitster@pobox.com> | 2023-04-21 15:35:04 -0700 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2023-04-21 15:35:04 -0700 |
| commit | 7ac228c99451970bc1c31f32cbbd273311cd3a02 (patch) | |
| tree | 4b867ee1083c619644193dea1696bd44800f5c61 | |
| parent | Merge branch 'rs/archive-from-subdirectory-fixes' (diff) | |
| parent | describe: enable sparse index for describe (diff) | |
| download | git-7ac228c99451970bc1c31f32cbbd273311cd3a02.tar.gz git-7ac228c99451970bc1c31f32cbbd273311cd3a02.zip | |
Merge branch 'rn/sparse-describe'
"git describe --dirty" learns to work better with sparse-index.
* rn/sparse-describe:
describe: enable sparse index for describe
| -rw-r--r-- | builtin/describe.c | 2 | ||||
| -rwxr-xr-x | t/perf/p2000-sparse-operations.sh | 3 | ||||
| -rwxr-xr-x | t/t1092-sparse-checkout-compatibility.sh | 25 |
3 files changed, 30 insertions, 0 deletions
diff --git a/builtin/describe.c b/builtin/describe.c index 0125d4ddba..c6b388e649 100644 --- a/builtin/describe.c +++ b/builtin/describe.c @@ -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); diff --git a/t/perf/p2000-sparse-operations.sh b/t/perf/p2000-sparse-operations.sh index f7bdba90c5..60d1de0662 100755 --- a/t/perf/p2000-sparse-operations.sh +++ b/t/perf/p2000-sparse-operations.sh @@ -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 && @@ -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 diff --git a/t/t1092-sparse-checkout-compatibility.sh b/t/t1092-sparse-checkout-compatibility.sh index 9bbc0d646b..0c784813f1 100755 --- a/t/t1092-sparse-checkout-compatibility.sh +++ b/t/t1092-sparse-checkout-compatibility.sh @@ -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 && |
