diff options
author | Junio C Hamano <gitster@pobox.com> | 2021-05-16 21:05:24 +0900 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2021-05-16 21:05:24 +0900 |
commit | a8a2491e629f9f886705d8bca6e134cd15076810 (patch) | |
tree | 7ddad481b9dd099ac6ce983c2fae4c14d0772aef /builtin/stash.c | |
parent | Merge branch 'wc/packed-ref-removal-cleanup' (diff) | |
parent | stash show: fix segfault with --{include,only}-untracked (diff) | |
download | tgif-a8a2491e629f9f886705d8bca6e134cd15076810.tar.xz |
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.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/builtin/stash.c b/builtin/stash.c index d68ed784d2..56a33fb83a 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); |