]> git.ipfire.org Git - thirdparty/git.git/commit - diff.c
diff: index-line: respect --abbrev in object's name
authorĐoàn Trần Công Danh <congdanhqx@gmail.com>
Fri, 21 Aug 2020 11:51:47 +0000 (18:51 +0700)
committerJunio C Hamano <gitster@pobox.com>
Fri, 21 Aug 2020 19:43:05 +0000 (12:43 -0700)
commit3046c7f69a6337a971b219d047b8110e3f9ea971
treea193860cda2d4bf2e739b83235e99b5f319b6494
parentfc7e73d7ef3bd987716b9f3ece57d2d15d631bc2
diff: index-line: respect --abbrev in object's name

A handful of Git's commands respect `--abbrev' for customizing length
of abbreviation of object names.

For diff-family, Git supports 2 different options for 2 different
purposes, `--full-index' for showing diff-patch object's name in full,
and `--abbrev' to customize the length of object names in diff-raw and
diff-tree header lines, without any options to customise the length of
object names in diff-patch format. When working with diff-patch format,
we only have two options, either full index, or default abbrev length.

Although, that behaviour is documented, it doesn't stop users from
trying to use `--abbrev' with the hope of customising diff-patch's
objects' name's abbreviation.

Let's allow the blob object names shown on the "index" line to be
abbreviated to arbitrary length given via the "--abbrev" option.

To preserve backward compatibility with old script that specify both
`--full-index' and `--abbrev', always show full object id
if `--full-index' is specified.

Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/diff-options.txt
diff.c
t/t4013-diff-various.sh
t/t4013/diff.diff-tree_--root_-p_--abbrev=10_initial [new file with mode: 0644]
t/t4013/diff.diff-tree_--root_-p_--full-index_--abbrev=10_initial [new file with mode: 0644]
t/t4013/diff.diff-tree_--root_-p_--full-index_initial [new file with mode: 0644]