summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2019-12-01 18:04:37 +0100
committerJunio C Hamano <gitster@pobox.com>2019-12-01 18:04:37 +0100
commit3c3e5d0ea2158bdc4f2244adff08504e50653d7c (patch)
tree287ce5f51018446e1a3669dd39b96fdbfdb157a5
parentMerge branch 'nn/doc-rebase-merges' (diff)
parentstash: make sure we have a valid index before writing it (diff)
downloadgit-3c3e5d0ea2158bdc4f2244adff08504e50653d7c.tar.xz
git-3c3e5d0ea2158bdc4f2244adff08504e50653d7c.zip
Merge branch 'tg/stash-refresh-index'
Recent update to "git stash pop" made the command empty the index when run with the "--quiet" option, which has been corrected. * tg/stash-refresh-index: stash: make sure we have a valid index before writing it
-rw-r--r--builtin/stash.c7
-rwxr-xr-xt/t3903-stash.sh7
2 files changed, 9 insertions, 5 deletions
diff --git a/builtin/stash.c b/builtin/stash.c
index d913487a43..4ad3adf4ba 100644
--- a/builtin/stash.c
+++ b/builtin/stash.c
@@ -483,13 +483,12 @@ static int do_apply_stash(const char *prefix, struct stash_info *info,
if (ret)
return -1;
+ /* read back the result of update_index() back from the disk */
discard_cache();
+ read_cache();
}
- if (quiet) {
- if (refresh_and_write_cache(REFRESH_QUIET, 0, 0))
- warning("could not refresh index");
- } else {
+ if (!quiet) {
struct child_process cp = CHILD_PROCESS_INIT;
/*
diff --git a/t/t3903-stash.sh b/t/t3903-stash.sh
index a4da72f0ab..ea56e85e70 100755
--- a/t/t3903-stash.sh
+++ b/t/t3903-stash.sh
@@ -244,8 +244,11 @@ test_expect_success 'save -q is quiet' '
test_must_be_empty output.out
'
-test_expect_success 'pop -q is quiet' '
+test_expect_success 'pop -q works and is quiet' '
git stash pop -q >output.out 2>&1 &&
+ echo bar >expect &&
+ git show :file >actual &&
+ test_cmp expect actual &&
test_must_be_empty output.out
'
@@ -254,6 +257,8 @@ test_expect_success 'pop -q --index works and is quiet' '
git add file &&
git stash save --quiet &&
git stash pop -q --index >output.out 2>&1 &&
+ git diff-files file2 >file2.diff &&
+ test_must_be_empty file2.diff &&
test foo = "$(git show :file)" &&
test_must_be_empty output.out
'