summaryrefslogtreecommitdiff
path: root/builtin
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2019-07-09 22:25:40 (GMT)
committerJunio C Hamano <gitster@pobox.com>2019-07-09 22:25:40 (GMT)
commit99af5bedbda020571995f207e30a617310472a04 (patch)
tree50c4ce88c55ef1804cfd07143d1dc73cab0ccb14 /builtin
parentaa5bec81c871fc564f1016e352ef2c25c928674e (diff)
parent63b50c8ffe7133d2ec7d243dd9240c14ddfe8a26 (diff)
downloadgit-99af5bedbda020571995f207e30a617310472a04.zip
git-99af5bedbda020571995f207e30a617310472a04.tar.gz
git-99af5bedbda020571995f207e30a617310472a04.tar.bz2
Merge branch 'tg/stash-ref-by-index-fix'
"git stash show 23" used to work, but no more after getting rewritten in C; this regression has been corrected. * tg/stash-ref-by-index-fix: stash: fix show referencing stash index
Diffstat (limited to 'builtin')
-rw-r--r--builtin/stash.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/builtin/stash.c b/builtin/stash.c
index 2a8e6d0..fde6397 100644
--- a/builtin/stash.c
+++ b/builtin/stash.c
@@ -713,11 +713,11 @@ static int git_stash_config(const char *var, const char *value, void *cb)
static int show_stash(int argc, const char **argv, const char *prefix)
{
int i;
- int opts = 0;
int ret = 0;
struct stash_info info;
struct rev_info rev;
struct argv_array stash_args = ARGV_ARRAY_INIT;
+ struct argv_array revision_args = ARGV_ARRAY_INIT;
struct option options[] = {
OPT_END()
};
@@ -726,11 +726,12 @@ static int show_stash(int argc, const char **argv, const char *prefix)
git_config(git_diff_ui_config, NULL);
init_revisions(&rev, prefix);
+ argv_array_push(&revision_args, argv[0]);
for (i = 1; i < argc; i++) {
if (argv[i][0] != '-')
argv_array_push(&stash_args, argv[i]);
else
- opts++;
+ argv_array_push(&revision_args, argv[i]);
}
ret = get_stash_info(&info, stash_args.argc, stash_args.argv);
@@ -742,7 +743,7 @@ static int show_stash(int argc, const char **argv, const char *prefix)
* The config settings are applied only if there are not passed
* any options.
*/
- if (!opts) {
+ if (revision_args.argc == 1) {
git_config(git_stash_config, NULL);
if (show_stat)
rev.diffopt.output_format = DIFF_FORMAT_DIFFSTAT;
@@ -756,7 +757,7 @@ static int show_stash(int argc, const char **argv, const char *prefix)
}
}
- argc = setup_revisions(argc, argv, &rev, NULL);
+ argc = setup_revisions(revision_args.argc, revision_args.argv, &rev, NULL);
if (argc > 1) {
free_stash_info(&info);
usage_with_options(git_stash_show_usage, options);