From: Junio C Hamano Date: Sat, 28 Jul 2007 06:51:45 +0000 (-0700) Subject: git-stash apply --index: optimize postprocessing X-Git-Tag: v1.5.3-rc4~51 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=83b3df7d582429d9036f34d2c95abfff7bf0ab24;p=git.git git-stash apply --index: optimize postprocessing Originally, "apply --index" codepath was bolted on to the "update working tree files and index, but then revert the changes we make to the index except for added files so that we do not forget about them" codepath, almost as an afterthought. Because "apply --index" first prepares the final index state upfront, "revert except the added paths" postprocessing does not have to be done. Signed-off-by: Junio C Hamano --- diff --git a/git-stash.sh b/git-stash.sh index 873e7be6a..30425ce6d 100755 --- a/git-stash.sh +++ b/git-stash.sh @@ -157,15 +157,16 @@ apply_stash () { if git-merge-recursive $b_tree -- $c_tree $w_tree then # No conflict - a="$TMP-added" && - git diff --cached --name-only --diff-filter=A $c_tree >"$a" && - git read-tree --reset $c_tree && - git update-index --add --stdin <"$a" || - die "Cannot unstage modified files" - rm -f "$a" if test -n "$unstashed_index_tree" then git read-tree "$unstashed_index_tree" + else + a="$TMP-added" && + git diff --cached --name-only --diff-filter=A $c_tree >"$a" && + git read-tree --reset $c_tree && + git update-index --add --stdin <"$a" || + die "Cannot unstage modified files" + rm -f "$a" fi git status || : else