add-patch: add diff.context command line overrides

This patch compliments the previous commit, where builtins that use
add-patch infrastructure now respect diff.context and
diff.interHunkContext file configurations.

In particular, this patch helps users who don't want to set persistent
context configurations or just want a way to override them on a one-time
basis, by allowing the relevant builtins to accept corresponding command
line options that override the file configurations.

This mimics commands such as diff and log, which allow for both context
file configuration and command line overrides.

Signed-off-by: Leon Michalak <leonmichalak6@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Leon Michalak
2025-07-29 07:01:51 +00:00
committed by Junio C Hamano
parent 2b0a2db2c0
commit 2b3ae04011
19 changed files with 241 additions and 35 deletions

View File

@@ -3,6 +3,13 @@
#include "color.h"
struct add_p_opt {
int context;
int interhunkcontext;
};
#define ADD_P_OPT_INIT { .context = -1, .interhunkcontext = -1 }
struct add_i_state {
struct repository *r;
int use_color;
@@ -21,12 +28,14 @@ struct add_i_state {
int context, interhunkcontext;
};
void init_add_i_state(struct add_i_state *s, struct repository *r);
void init_add_i_state(struct add_i_state *s, struct repository *r,
struct add_p_opt *add_p_opt);
void clear_add_i_state(struct add_i_state *s);
struct repository;
struct pathspec;
int run_add_i(struct repository *r, const struct pathspec *ps);
int run_add_i(struct repository *r, const struct pathspec *ps,
struct add_p_opt *add_p_opt);
enum add_p_mode {
ADD_P_ADD,
@@ -37,6 +46,7 @@ enum add_p_mode {
};
int run_add_p(struct repository *r, enum add_p_mode mode,
const char *revision, const struct pathspec *ps);
struct add_p_opt *o, const char *revision,
const struct pathspec *ps);
#endif