Heavier usage of sparse-checkouts at $DAYJOB is commencing. And an issue
with git stash apply was found.
git stash's implementation as a pipeline of forked commands presents some
problems, especially when implemented atop of three commands that all behave
differently in the presence of sparse checkouts. Add a testcase
demonstrating some issues with git stash apply in a repository with a
different set of sparse-checkout patterns at apply vs create time, clean up
the relevant section of git stash code, and incidentally fix a submodule
testcase unrelated to sparse checkouts. Provide some detailed commit
messages explaining the issues along the way.
NOTE: I found a couple minor issues with other commands in sparse checkouts
while debugging this issue, but I don't yet have fixes for them and I can
submit them separately.
Elijah Newren (3):
t7012: add a testcase demonstrating stash apply bugs in sparse
checkouts
stash: remove unnecessary process forking
stash: fix stash application in sparse-checkouts
builtin/stash.c | 130 +++++++++++++++++++++----------
t/lib-submodule-update.sh | 16 ++--
t/t7012-skip-worktree-writing.sh | 88 +++++++++++++++++++++
3 files changed, 184 insertions(+), 50 deletions(-)
base-commit: faefdd61ec7c7f6f3c8c9907891465ac9a2a1475
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-919%2Fnewren%2Fsparse-checkout-fixups-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-919/newren/sparse-checkout-fixups-v1
Pull-Request: https://github.com/git/git/pull/919
--
gitgitgadget