This fixes a few issues with tab completion for the sparse-checkout command, specifically with the "add" and "set" subcommands. The 4th patch should probably be considered RFC; it is notable in that we previously discussed a much different proposal and the general problem area[1], though our discussion was from a limited vantage point and none of us (myself included) were aware of the full context at the time. In that thread, Junio gave some helpful general high-level guidelines for completion. I believe the existing completion rules fail Junio's guidelines pretty badly and that we thus need to do something else. See the lengthy commit message. I implement a simple though somewhat suboptimal choice for that something else (while arguing that it's at least much better than our current solution), while also documenting with a code comment a much more involved alternative solution that we could consider in the future. Comments on this choice welcome. [1] https://lore.kernel.org/git/xmqqv8yjz5us.fsf@gitster.g/ Elijah Newren (4): completion: squelch stray errors in sparse-checkout completion completion: fix logic for determining whether cone mode is active completion: avoid misleading completions in cone mode completion: avoid user confusion in non-cone mode contrib/completion/git-completion.bash | 95 +++++++++++++++++++++++++- 1 file changed, 92 insertions(+), 3 deletions(-) base-commit: 79f2338b3746d23454308648b2491e5beba4beff Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1349%2Fnewren%2Fsparse-checkout-completion-fixes-v1 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1349/newren/sparse-checkout-completion-fixes-v1 Pull-Request: https://github.com/gitgitgadget/git/pull/1349 -- gitgitgadget