built-in add -p: handle diff.algorithm
The Perl version of `git add -p` reads the config setting `diff.algorithm` and if set, uses it to generate the diff using the specified algorithm. This patch ports that functionality to the C version. Note: just like `git-add--interactive.perl`, we do _not_ respect this config setting in `git add -i`'s `diff` command, but _only_ in the `patch` command. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
180f48df69
commit
08b1ea4c39
@ -360,6 +360,7 @@ static int is_octal(const char *p, size_t len)
|
||||
static int parse_diff(struct add_p_state *s, const struct pathspec *ps)
|
||||
{
|
||||
struct argv_array args = ARGV_ARRAY_INIT;
|
||||
const char *diff_algorithm = s->s.interactive_diff_algorithm;
|
||||
struct strbuf *plain = &s->plain, *colored = NULL;
|
||||
struct child_process cp = CHILD_PROCESS_INIT;
|
||||
char *p, *pend, *colored_p = NULL, *colored_pend = NULL, marker = '\0';
|
||||
@ -369,6 +370,8 @@ static int parse_diff(struct add_p_state *s, const struct pathspec *ps)
|
||||
int res;
|
||||
|
||||
argv_array_pushv(&args, s->mode->diff_cmd);
|
||||
if (diff_algorithm)
|
||||
argv_array_pushf(&args, "--diff-algorithm=%s", diff_algorithm);
|
||||
if (s->revision) {
|
||||
struct object_id oid;
|
||||
argv_array_push(&args,
|
||||
|
||||
Reference in New Issue
Block a user