On 2/14/2022 7:44 AM, Shaoxuan Yuan wrote: > Hi Stolee, Victoria, and Community, > > The self-intro was done during my first practice patch [1]. Welcome! > I've been paying attention to the updates to the SoC 2022 ideas > page. And find your sparse index integrations project quite interesting. ... > And the main purpose of this message is to first, show my interest > about this project idea and second, use it as a thread so I can follow up > some questions during the research process. > > Question: It is a good idea to start looking into the commands listed > in the idea doc [3] and make some practice patches about sparse index > integrations? > > [1] https://lore.kernel.org/git/20220123060318.471414-1-shaoxuan.yuan02@xxxxxxxxx/ > [2] https://github.blog/2021-11-10-make-your-monorepo-feel-small-with-gits-sparse-index/ > [3] https://git.github.io/SoC-2022-Ideas/#more-sparse-index-integrations One thing you can do is look at the history of t1092, which is used by every patch series that performs these integrations. $ git log -20 --oneline --graph --show-pulls origin/master -- t/t1092-sparse-checkout-compatibility.sh * 3c0e4178277 Merge branch 'ds/fetch-pull-with-sparse-index' * 3a9a6ac5d9d t1092: replace 'read-cache --table' with 'ls-files --sparse' * 78087097b8b ls-files: add --sparse option * 5a4e0547e23 fetch/pull: use the sparse index * 8d2c37320bd Merge branch 'ld/sparse-diff-blame' |\ | * add4c864b60 blame: enable and test the sparse index | * 51ba65b5c35 diff: enable and test the sparse index | * 338e2a9acc8 diff: replace --staged with --cached in t1092 tests | * ea6ae410bed Merge branch 'vd/sparse-reset' into ld/sparse-diff-blame | |\ * | \ e1d92882676 Merge branch 'ds/sparse-deep-pattern-checkout-fix' |\ \ \ | * | | 8c5de0d2657 unpack-trees: use traverse_path instead of name | * | | 1b38efc7a03 t1092: add deeper changes during a checkout * | | | 62329d336f5 Merge branch 'ds/trace2-regions-in-tests' |\ \ \ \ | * | | | 8c4cbad6a3a t/t*: remove custom GIT_TRACE2_EVENT_NESTING | |/ / / * | | | f0850875fd4 Merge branch 'vd/sparse-reset' |\ \ \ \ | | |_|/ | |/| | | * | | 4d1cfc1351f reset: make --mixed sparse-aware | * | | 20ec2d034cd reset: make sparse-aware (except --mixed) | * | | 291d77eb3e2 reset: expand test coverage for sparse checkouts | * | | 86609db9dae sparse-index: update command for expand/collapse test | * | | 71471b2a7c7 reset: preserve skip-worktree bit in mixed reset But of course, this doesn't show the full history of the work in each of these branches, so you can do a history walk from each merge to get a picture of the full series: $ git log --oneline --graph 3c0e4178277 -6 * 3c0e4178277 Merge branch 'ds/fetch-pull-with-sparse-index' |\ | * 408c51f0b4b test-read-cache: remove --table, --expand options | * c2a29405105 t1091/t3705: remove 'test-tool read-cache --table' | * 3a9a6ac5d9d t1092: replace 'read-cache --table' with 'ls-files --sparse' | * 78087097b8b ls-files: add --sparse option | * 5a4e0547e23 fetch/pull: use the sparse index $ git log --oneline --graph 8d2c37320bd -8 * 8d2c37320bd Merge branch 'ld/sparse-diff-blame' |\ | * add4c864b60 blame: enable and test the sparse index | * 51ba65b5c35 diff: enable and test the sparse index | * 338e2a9acc8 diff: replace --staged with --cached in t1092 tests | * 44c7e62e51e repo-settings: prepare_repo_settings only in git repos | * 27a443b8208 test-read-cache: set up repo after git directory | * 0803f9c7cdf commit-graph: return if there is no git directory | * e5b17bda8b6 git: ensure correct git directory setup with -h These are just a couple examples of merged work in this area. Be sure to look at the full commit messages and diffs to get a feel for the area. Then, playing around with the list of commands in the project idea document is a good idea. There is also a series that is currently waiting to merge [4], for even more examples. [4] https://lore.kernel.org/git/pull.1109.v2.git.1641924306.gitgitgadget@xxxxxxxxx/ Thanks, -Stolee