diff: add config option relative
The `diff.relative` boolean option set to `true` shows only changes in the current directory/value specified by the `path` argument of the `relative` option and shows pathnames relative to the aforementioned directory. Teach `--no-relative` to override earlier `--relative` Add for git-format-patch(1) options documentation `--relative` and `--no-relative` Signed-off-by: Laurent Arnoud <laurent@spkdev.net> Acked-by: Đoàn Trần Công Danh <congdanhqx@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
efcab5b7a3
commit
c28ded83fc
11
diff.c
11
diff.c
@ -48,6 +48,7 @@ static const char *diff_order_file_cfg;
|
||||
int diff_auto_refresh_index = 1;
|
||||
static int diff_mnemonic_prefix;
|
||||
static int diff_no_prefix;
|
||||
static int diff_relative;
|
||||
static int diff_stat_graph_width;
|
||||
static int diff_dirstat_permille_default = 30;
|
||||
static struct diff_options default_diff_options;
|
||||
@ -386,6 +387,10 @@ int git_diff_ui_config(const char *var, const char *value, void *cb)
|
||||
diff_no_prefix = git_config_bool(var, value);
|
||||
return 0;
|
||||
}
|
||||
if (!strcmp(var, "diff.relative")) {
|
||||
diff_relative = git_config_bool(var, value);
|
||||
return 0;
|
||||
}
|
||||
if (!strcmp(var, "diff.statgraphwidth")) {
|
||||
diff_stat_graph_width = git_config_int(var, value);
|
||||
return 0;
|
||||
@ -4538,6 +4543,7 @@ void repo_diff_setup(struct repository *r, struct diff_options *options)
|
||||
options->interhunkcontext = diff_interhunk_context_default;
|
||||
options->ws_error_highlight = ws_error_highlight_default;
|
||||
options->flags.rename_empty = 1;
|
||||
options->flags.relative_name = diff_relative;
|
||||
options->objfind = NULL;
|
||||
|
||||
/* pathchange left =NULL by default */
|
||||
@ -5195,8 +5201,7 @@ static int diff_opt_relative(const struct option *opt,
|
||||
{
|
||||
struct diff_options *options = opt->value;
|
||||
|
||||
BUG_ON_OPT_NEG(unset);
|
||||
options->flags.relative_name = 1;
|
||||
options->flags.relative_name = !unset;
|
||||
if (arg)
|
||||
options->prefix = arg;
|
||||
return 0;
|
||||
@ -5492,7 +5497,7 @@ static void prep_parse_options(struct diff_options *options)
|
||||
OPT_GROUP(N_("Other diff options")),
|
||||
OPT_CALLBACK_F(0, "relative", options, N_("<prefix>"),
|
||||
N_("when run from subdir, exclude changes outside and show relative paths"),
|
||||
PARSE_OPT_NONEG | PARSE_OPT_OPTARG,
|
||||
PARSE_OPT_OPTARG,
|
||||
diff_opt_relative),
|
||||
OPT_BOOL('a', "text", &options->flags.text,
|
||||
N_("treat all files as text")),
|
||||
|
||||
Reference in New Issue
Block a user