diff options
author | Eric Sunshine <sunshine@sunshineco.com> | 2018-07-22 05:57:16 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-08-14 14:27:05 -0700 |
commit | 8631bf1cdd7296684deebab2708761bfc8085fc2 (patch) | |
tree | 2aaa3d26b0a0f847db6b518c65a755ebda0fe63f /builtin | |
parent | format-patch: teach --range-diff to respect -v/--reroll-count (diff) | |
download | tgif-8631bf1cdd7296684deebab2708761bfc8085fc2.tar.xz |
format-patch: add --creation-factor tweak for --range-diff
When generating a range-diff, matching up commits between two version of
a patch series involves heuristics, thus may give unexpected results.
git-range-diff allows tweaking the heuristic via --creation-factor.
Follow suit by accepting --creation-factor in combination with
--range-diff when generating a range-diff for a cover-letter.
Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin')
-rw-r--r-- | builtin/log.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/builtin/log.c b/builtin/log.c index 0dc17fe325..05965a57ca 100644 --- a/builtin/log.c +++ b/builtin/log.c @@ -1498,6 +1498,7 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix) struct strbuf rdiff1 = STRBUF_INIT; struct strbuf rdiff2 = STRBUF_INIT; struct strbuf rdiff_title = STRBUF_INIT; + int creation_factor = -1; const struct option builtin_format_patch_options[] = { { OPTION_CALLBACK, 'n', "numbered", &numbered, NULL, @@ -1576,6 +1577,8 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix) parse_opt_object_name), OPT_STRING(0, "range-diff", &rdiff_prev, N_("refspec"), N_("show changes against <refspec> in cover letter")), + OPT_INTEGER(0, "creation-factor", &creation_factor, + N_("percentage by which creation is weighted")), OPT_END() }; @@ -1808,6 +1811,11 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix) _("Interdiff against v%d:")); } + if (creation_factor < 0) + creation_factor = RANGE_DIFF_CREATION_FACTOR_DEFAULT; + else if (!rdiff_prev) + die(_("--creation-factor requires --range-diff")); + if (rdiff_prev) { if (!cover_letter) die(_("--range-diff requires --cover-letter")); @@ -1816,7 +1824,7 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix) origin, list[0]); rev.rdiff1 = rdiff1.buf; rev.rdiff2 = rdiff2.buf; - rev.creation_factor = RANGE_DIFF_CREATION_FACTOR_DEFAULT; + rev.creation_factor = creation_factor; rev.rdiff_title = diff_title(&rdiff_title, reroll_count, _("Range-diff:"), _("Range-diff against v%d:")); |