]> git.ipfire.org Git - thirdparty/git.git/commit
diff: teach diff to read algorithm from diff driver
authorJohn Cai <johncai86@gmail.com>
Mon, 20 Feb 2023 21:04:42 +0000 (21:04 +0000)
committerJunio C Hamano <gitster@pobox.com>
Tue, 21 Feb 2023 17:29:10 +0000 (09:29 -0800)
commita4cf900ee734ce9bb73d57c5dfbb1da4a5a88bd3
tree9e11d7e3cbd7394ee9469ccb02b3e4109d1ae7b9
parent11e95e16e8ef70c6c757d50a99f9b310e6c795f4
diff: teach diff to read algorithm from diff driver

It can be useful to specify diff algorithms per file type. For example,
one may want to use the minimal diff algorithm for .json files, another
for .c files, etc.

The diff machinery already checks attributes for a diff driver. Teach
the diff driver parser a new type "algorithm" to look for in the
config, which will be used if a driver has been specified through the
attributes.

Enforce precedence of the diff algorithm by favoring the command line
option, then looking at the driver attributes & config combination, then
finally the diff.algorithm config.

To enforce precedence order, use a new `ignore_driver_algorithm` member
during options parsing to indicate the diff algorithm was set via command
line args.

Signed-off-by: John Cai <johncai86@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/gitattributes.txt
diff.c
diff.h
t/lib-diff-alternative.sh
userdiff.c
userdiff.h