зеркало из https://github.com/microsoft/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 <gitster@pobox.com>
This commit is contained in:
Родитель
cbeaccc316
Коммит
83b3df7d58
|
@ -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
|
||||||
|
|
Загрузка…
Ссылка в новой задаче