diff options
author | Junio C Hamano <gitster@pobox.com> | 2019-12-25 20:21:58 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2019-12-25 20:21:58 +0100 |
commit | 17066bea38d14a9f9a7a174f40cd9dc1fd720210 (patch) | |
tree | 66c932b0150f221909cd2dac863511fb3579217d /revision.c | |
parent | Merge branch 'am/pathspec-f-f-checkout' (diff) | |
parent | notes.h: fix typos in comment (diff) | |
download | git-17066bea38d14a9f9a7a174f40cd9dc1fd720210.tar.xz git-17066bea38d14a9f9a7a174f40cd9dc1fd720210.zip |
Merge branch 'dl/format-patch-notes-config-fixup'
"git format-patch" can take a set of configured format.notes values
to specify which notes refs to use in the log message part of the
output. The behaviour of this was not consistent with multiple
--notes command line options, which has been corrected.
* dl/format-patch-notes-config-fixup:
notes.h: fix typos in comment
notes: break set_display_notes() into smaller functions
config/format.txt: clarify behavior of multiple format.notes
format-patch: move git_config() before repo_init_revisions()
format-patch: use --notes behavior for format.notes
notes: extract logic into set_display_notes()
notes: create init_display_notes() helper
notes: rename to load_display_notes()
Diffstat (limited to 'revision.c')
-rw-r--r-- | revision.c | 22 |
1 files changed, 5 insertions, 17 deletions
diff --git a/revision.c b/revision.c index 39a25e7a5d..8136929e23 100644 --- a/revision.c +++ b/revision.c @@ -1668,7 +1668,7 @@ void repo_init_revisions(struct repository *r, revs->diffopt.prefix_length = strlen(prefix); } - revs->notes_opt.use_default_notes = -1; + init_display_notes(&revs->notes_opt); } static void add_pending_commit_list(struct rev_info *revs, @@ -2203,9 +2203,8 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg die("'%s': not a non-negative integer", arg); revs->expand_tabs_in_log = val; } else if (!strcmp(arg, "--show-notes") || !strcmp(arg, "--notes")) { - revs->show_notes = 1; + enable_default_display_notes(&revs->notes_opt, &revs->show_notes); revs->show_notes_given = 1; - revs->notes_opt.use_default_notes = 1; } else if (!strcmp(arg, "--show-signature")) { revs->show_signature = 1; } else if (!strcmp(arg, "--no-show-signature")) { @@ -2220,25 +2219,14 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg revs->track_first_time = 1; } else if (skip_prefix(arg, "--show-notes=", &optarg) || skip_prefix(arg, "--notes=", &optarg)) { - struct strbuf buf = STRBUF_INIT; - revs->show_notes = 1; - revs->show_notes_given = 1; if (starts_with(arg, "--show-notes=") && revs->notes_opt.use_default_notes < 0) revs->notes_opt.use_default_notes = 1; - strbuf_addstr(&buf, optarg); - expand_notes_ref(&buf); - string_list_append(&revs->notes_opt.extra_notes_refs, - strbuf_detach(&buf, NULL)); + enable_ref_display_notes(&revs->notes_opt, &revs->show_notes, optarg); + revs->show_notes_given = 1; } else if (!strcmp(arg, "--no-notes")) { - revs->show_notes = 0; + disable_display_notes(&revs->notes_opt, &revs->show_notes); revs->show_notes_given = 1; - revs->notes_opt.use_default_notes = -1; - /* we have been strdup'ing ourselves, so trick - * string_list into free()ing strings */ - revs->notes_opt.extra_notes_refs.strdup_strings = 1; - string_list_clear(&revs->notes_opt.extra_notes_refs, 0); - revs->notes_opt.extra_notes_refs.strdup_strings = 0; } else if (!strcmp(arg, "--standard-notes")) { revs->show_notes_given = 1; revs->notes_opt.use_default_notes = 1; |