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 <gitster@pobox.com>
This commit is contained in:
Junio C Hamano 2007-07-27 23:51:45 -07:00
Родитель cbeaccc316
Коммит 83b3df7d58
1 изменённых файлов: 7 добавлений и 6 удалений

Просмотреть файл

@ -157,15 +157,16 @@ apply_stash () {
if git-merge-recursive $b_tree -- $c_tree $w_tree if git-merge-recursive $b_tree -- $c_tree $w_tree
then then
# No conflict # No conflict
if test -n "$unstashed_index_tree"
then
git read-tree "$unstashed_index_tree"
else
a="$TMP-added" && a="$TMP-added" &&
git diff --cached --name-only --diff-filter=A $c_tree >"$a" && git diff --cached --name-only --diff-filter=A $c_tree >"$a" &&
git read-tree --reset $c_tree && git read-tree --reset $c_tree &&
git update-index --add --stdin <"$a" || git update-index --add --stdin <"$a" ||
die "Cannot unstage modified files" die "Cannot unstage modified files"
rm -f "$a" rm -f "$a"
if test -n "$unstashed_index_tree"
then
git read-tree "$unstashed_index_tree"
fi fi
git status || : git status || :
else else