summaryrefslogtreecommitdiff
path: root/builtin/stash.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2021-05-16 12:05:24 (GMT)
committerJunio C Hamano <gitster@pobox.com>2021-05-16 12:05:24 (GMT)
commita8a2491e629f9f886705d8bca6e134cd15076810 (patch)
tree7ddad481b9dd099ac6ce983c2fae4c14d0772aef /builtin/stash.c
parent16f91451fae2f3b12cbbc372bd6a5104e8109076 (diff)
parent1ff595d218d9175eee1db753844044c2746d0515 (diff)
downloadgit-a8a2491e629f9f886705d8bca6e134cd15076810.zip
git-a8a2491e629f9f886705d8bca6e134cd15076810.tar.gz
git-a8a2491e629f9f886705d8bca6e134cd15076810.tar.bz2
Merge branch 'dl/stash-show-untracked-fixup'
The code to handle options recently added to "git stash show" around untracked part of the stash segfaulted when these options were used on a stash entry that does not record untracked part. * dl/stash-show-untracked-fixup: stash show: fix segfault with --{include,only}-untracked t3905: correct test title
Diffstat (limited to 'builtin/stash.c')
-rw-r--r--builtin/stash.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/builtin/stash.c b/builtin/stash.c
index d68ed78..56a33fb 100644
--- a/builtin/stash.c
+++ b/builtin/stash.c
@@ -902,10 +902,14 @@ static int show_stash(int argc, const char **argv, const char *prefix)
diff_tree_oid(&info.b_commit, &info.w_commit, "", &rev.diffopt);
break;
case UNTRACKED_ONLY:
- diff_root_tree_oid(&info.u_tree, "", &rev.diffopt);
+ if (info.has_u)
+ diff_root_tree_oid(&info.u_tree, "", &rev.diffopt);
break;
case UNTRACKED_INCLUDE:
- diff_include_untracked(&info, &rev.diffopt);
+ if (info.has_u)
+ diff_include_untracked(&info, &rev.diffopt);
+ else
+ diff_tree_oid(&info.b_commit, &info.w_commit, "", &rev.diffopt);
break;
}
log_tree_diff_flush(&rev);