Skip to content

Commit cb4575f

Browse files
committed
Merge branch 'jk/diff-follow-must-take-one-pathspec' into maint
"git format-patch" did not enforce the rule that the "--follow" option from the log/diff family of commands must be used with exactly one pathspec. * jk/diff-follow-must-take-one-pathspec: move "--follow needs one pathspec" rule to diff_setup_done
2 parents 11aae3e + dd63f16 commit cb4575f

File tree

2 files changed

+5
-6
lines changed

2 files changed

+5
-6
lines changed

builtin/log.c

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -158,13 +158,9 @@ static void cmd_log_init_finish(int argc, const char **argv, const char *prefix,
158158
if (rev->show_notes)
159159
init_display_notes(&rev->notes_opt);
160160

161-
if (rev->diffopt.pickaxe || rev->diffopt.filter)
161+
if (rev->diffopt.pickaxe || rev->diffopt.filter ||
162+
DIFF_OPT_TST(&rev->diffopt, FOLLOW_RENAMES))
162163
rev->always_show_header = 0;
163-
if (DIFF_OPT_TST(&rev->diffopt, FOLLOW_RENAMES)) {
164-
rev->always_show_header = 0;
165-
if (rev->diffopt.pathspec.nr != 1)
166-
usage("git logs can only follow renames on one pathname at a time");
167-
}
168164

169165
if (source)
170166
rev->show_source = 1;

diff.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3325,6 +3325,9 @@ void diff_setup_done(struct diff_options *options)
33253325
}
33263326

33273327
options->diff_path_counter = 0;
3328+
3329+
if (DIFF_OPT_TST(options, FOLLOW_RENAMES) && options->pathspec.nr != 1)
3330+
die(_("--follow requires exactly one pathspec"));
33283331
}
33293332

33303333
static int opt_arg(const char *arg, int arg_short, const char *arg_long, int *val)

0 commit comments

Comments
 (0)