From: Phillip Wood <phillip.wood123@gmail.com>
To: Leon Michalak via GitGitGadget <gitgitgadget@gmail.com>,
git@vger.kernel.org
Cc: Kristoffer Haugsbakk <kristofferhaugsbakk@fastmail.com>,
Eric Sunshine <sunshine@sunshineco.com>,
Christian Couder <christian.couder@gmail.com>,
Leon Michalak <leonmichalak6@gmail.com>
Subject: Re: [PATCH v4 4/4] add-patch: add diff.context command line overrides
Date: Tue, 22 Jul 2025 17:01:55 +0100 [thread overview]
Message-ID: <076bb5e9-e8c4-466d-b8dd-bc84bba708b2@gmail.com> (raw)
In-Reply-To: <2774b930406819ea60f522e0e0741e4046ee01ee.1752928113.git.gitgitgadget@gmail.com>
Hi Leon
On 19/07/2025 13:28, Leon Michalak via GitGitGadget wrote:
> From: Leon Michalak <leonmichalak6@gmail.com>
>
> 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.
Thanks for updating the quoting in the tests. Unfortunately this patch
now deletes the tests added in the last commit which I don't think is
correct.
>
> -test_expect_success 'add -p respects diff.context' '
> - test_write_lines a b c d e f g h i j k l m >file &&
I think there is some confusion here - why are we deleting the tests
added in the last commit? This removes the test coverage for
diff.context and diff.interHunkContext
> +for cmd in add checkout restore 'commit -m file'
> +do
> + test_expect_success "${cmd%% *} accepts -U and --inter-hunk-context" '
> + test_write_lines a b c d e f g h i j k l m n o p q r s t u v >file &&
> + git add file &&
> + test_write_lines a b c d e F g h i j k l m n o p Q r s t u v >file &&
> + echo y | git -c diff.context=5 -c diff.interhunkcontext=1 \
> + $cmd -p -U 4 --inter-hunk-context 2 >actual &&
> + test_grep "@@ -2,20 +2,20 @@" actual
> + '
> +done
> +
> +test_expect_success 'reset accepts -U and --inter-hunk-context' '
> + test_write_lines a b c d e f g h i j k l m n o p q r s t u v >file &&
> + git commit -m file file &&
> + test_write_lines a b c d e F g h i j k l m n o p Q r s t u v >file &&
> git add file &&
> - test_write_lines a b c d e f G h i j k l m >file &&
> - echo y | git -c diff.context=5 add -p >actual &&
> - test_grep "@@ -2,11 +2,11 @@" actual
> + echo y | git -c diff.context=5 -c diff.interhunkcontext=1 \
> + reset -p -U 4 --inter-hunk-context 2 >actual &&
> + test_grep "@@ -2,20 +2,20 @@" actual
> '
>
> -test_expect_success 'add -p respects diff.interHunkContext' '
> - test_write_lines a b c d e f g h i j k l m n o p q r s >file &&
> - git add file &&
> - test_write_lines a b c d E f g i i j k l m N o p q r s >file &&
> - echo y | git -c diff.interhunkcontext=2 add -p >actual &&
> - test_grep "@@ -2,16 +2,16 @@" actual
This is also deleting a test added in the last patch
> +test_expect_success 'stash accepts -U and --inter-hunk-context' '
> + test_write_lines a b c d e F g h i j k l m n o p Q r s t u v >file &&
> + git commit -m file file &&
> + test_write_lines a b c d e f g h i j k l m n o p q r s t u v >file &&
> + echo y | git -c diff.context=5 -c diff.interhunkcontext=1 \
> + stash -p -U 4 --inter-hunk-context 2 >actual &&
> + test_grep "@@ -2,20 +2,20 @@" actual
> '
>
> -test_expect_success 'add -p rejects negative diff.context' '
> - test_config diff.context -1 &&
> - test_must_fail git add -p 2>output &&
> - test_grep "diff.context cannot be negative" output
> -'
and so is this. The tests you're adding look good but we shouldn't be
deleting the existing ones.
> +for cmd in add checkout commit reset restore "stash save" "stash push"
> +do
> + test_expect_success "$cmd rejects invalid context options" '
> + test_must_fail git $cmd -p -U -3 2>actual &&
> + cat actual | echo &&
> + test_grep -e ".--unified. cannot be negative" actual &&
> +
> + test_must_fail git $cmd -p --inter-hunk-context -3 2>actual &&
> + test_grep -e ".--inter-hunk-context. cannot be negative" actual &&
> +
> + test_must_fail git $cmd -U 7 2>actual &&
> + test_grep -E ".--unified. requires .(--interactive/)?--patch." actual &&
> +
> + test_must_fail git $cmd --inter-hunk-context 2 2>actual &&
> + test_grep -E ".--inter-hunk-context. requires .(--interactive/)?--patch." actual
> + '
> +done
This looks good as well
> test_done
As I said last time I do not think the tests below add any value. They
also do not compensate for the removal of the tests for diff.context
that are deleted above as they all pass -U on the commandline.
> diff --git a/t/t4055-diff-context.sh b/t/t4055-diff-context.sh
> index 1384a8195705..0158fe6568cb 100755
> --- a/t/t4055-diff-context.sh
> +++ b/t/t4055-diff-context.sh
> @@ -58,6 +58,36 @@ test_expect_success 'The -U option overrides diff.context' '
> test_grep ! "^ firstline" output
> '
>
> +test_expect_success 'The -U option overrides diff.context for "add"' '
> + test_config diff.context 8 &&
> + git add -U4 -p >output &&
> + test_grep ! "^ firstline" output
> +'
> +
> +test_expect_success 'The -U option overrides diff.context for "commit"' '
> + test_config diff.context 8 &&
> + ! git commit -U4 -p >output &&
> + test_grep ! "^ firstline" output
> +'
> +
> +test_expect_success 'The -U option overrides diff.context for "checkout"' '
> + test_config diff.context 8 &&
> + git checkout -U4 -p >output &&
> + test_grep ! "^ firstline" output
> +'
> +
> +test_expect_success 'The -U option overrides diff.context for "stash"' '
> + test_config diff.context 8 &&
> + ! git stash -U4 -p >output &&
> + test_grep ! "^ firstline" output
> +'
> +
> +test_expect_success 'The -U option overrides diff.context for "restore"' '
> + test_config diff.context 8 &&
> + git restore -U4 -p >output &&
> + test_grep ! "^ firstline" output
> +'
> +
> test_expect_success 'diff.context honored by "diff"' '
> test_config diff.context 8 &&
> git diff >output &&
Thanks
Phillip
next prev parent reply other threads:[~2025-07-22 16:02 UTC|newest]
Thread overview: 77+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-05 9:18 [PATCH 0/3] Better support for customising context lines in --patch commands Leon Michalak via GitGitGadget
2025-05-05 9:18 ` [PATCH 1/3] add-patch: respect diff.context configuration Leon Michalak via GitGitGadget
2025-05-05 20:29 ` Eric Sunshine
2025-05-06 8:55 ` Phillip Wood
2025-05-06 17:29 ` Junio C Hamano
2025-05-05 9:18 ` [PATCH 2/3] add-patch: add diff.context command line overrides Leon Michalak via GitGitGadget
2025-05-05 9:49 ` Kristoffer Haugsbakk
[not found] ` <CAP9jKjHj7WP91aKA9SE94zYj+naBGLUs99mF3G4BhTGcGjFDUQ@mail.gmail.com>
2025-05-05 10:11 ` Leon Michalak
2025-05-07 9:51 ` Phillip Wood
2025-05-07 18:07 ` Junio C Hamano
2025-05-07 18:28 ` Leon Michalak
2025-05-07 20:25 ` Junio C Hamano
2025-05-05 9:18 ` [PATCH 3/3] add-interactive: add new "context" subcommand Leon Michalak via GitGitGadget
2025-05-06 0:02 ` Eric Sunshine
2025-05-06 7:20 ` Leon Michalak
2025-05-06 8:28 ` Christian Couder
2025-05-06 17:07 ` Leon Michalak
2025-05-06 16:37 ` Junio C Hamano
2025-05-06 17:25 ` Leon Michalak
2025-05-07 13:30 ` Phillip Wood
2025-05-07 19:10 ` Junio C Hamano
2025-05-10 13:46 ` [PATCH v2 0/4] Better support for customising context lines in --patch commands Leon Michalak via GitGitGadget
2025-05-10 13:46 ` [PATCH v2 1/4] test: refactor to use "test_grep" Leon Michalak via GitGitGadget
2025-05-12 13:42 ` Junio C Hamano
2025-05-12 16:58 ` Leon Michalak
2025-05-10 13:46 ` [PATCH v2 2/4] test: refactor to use "test_config" Leon Michalak via GitGitGadget
2025-05-10 13:46 ` [PATCH v2 3/4] add-patch: respect diff.context configuration Leon Michalak via GitGitGadget
2025-05-13 13:52 ` Phillip Wood
2025-05-13 15:47 ` Junio C Hamano
2025-05-14 15:13 ` Phillip Wood
2025-05-15 12:58 ` Junio C Hamano
2025-05-10 13:46 ` [PATCH v2 4/4] add-patch: add diff.context command line overrides Leon Michalak via GitGitGadget
2025-05-12 16:45 ` Junio C Hamano
2025-05-12 17:03 ` Leon Michalak
2025-05-13 13:52 ` Phillip Wood
2025-05-13 14:39 ` Phillip Wood
2025-05-13 15:05 ` Leon Michalak
2025-05-14 15:13 ` phillip.wood123
2025-06-28 16:34 ` [PATCH v3 0/4] Better support for customising context lines in --patch commands Leon Michalak via GitGitGadget
2025-06-28 16:34 ` [PATCH v3 1/4] test: use "test_grep" Leon Michalak via GitGitGadget
2025-06-30 16:23 ` Junio C Hamano
2025-06-28 16:34 ` [PATCH v3 2/4] test: use "test_config" Leon Michalak via GitGitGadget
2025-06-30 16:35 ` Junio C Hamano
2025-06-28 16:34 ` [PATCH v3 3/4] add-patch: respect diff.context configuration Leon Michalak via GitGitGadget
2025-06-30 16:55 ` Junio C Hamano
2025-07-01 10:00 ` Phillip Wood
2025-06-28 16:34 ` [PATCH v3 4/4] add-patch: add diff.context command line overrides Leon Michalak via GitGitGadget
2025-06-30 17:03 ` Junio C Hamano
2025-07-01 9:59 ` Phillip Wood
2025-07-01 15:54 ` Junio C Hamano
2025-07-02 14:07 ` Phillip Wood
2025-07-02 18:28 ` Junio C Hamano
2025-07-01 9:59 ` Phillip Wood
2025-06-30 16:16 ` [PATCH v3 0/4] Better support for customising context lines in --patch commands Junio C Hamano
2025-07-09 0:09 ` Junio C Hamano
2025-07-09 7:57 ` Leon Michalak
2025-07-09 15:32 ` Junio C Hamano
2025-07-19 12:28 ` [PATCH v4 " Leon Michalak via GitGitGadget
2025-07-19 12:28 ` [PATCH v4 1/4] t: use test_grep in t3701 and t4055 Leon Michalak via GitGitGadget
2025-07-19 12:28 ` [PATCH v4 2/4] t: use test_config in t4055 Leon Michalak via GitGitGadget
2025-07-19 12:28 ` [PATCH v4 3/4] add-patch: respect diff.context configuration Leon Michalak via GitGitGadget
2025-07-19 12:28 ` [PATCH v4 4/4] add-patch: add diff.context command line overrides Leon Michalak via GitGitGadget
2025-07-22 16:01 ` Phillip Wood [this message]
2025-07-22 18:02 ` Leon Michalak
2025-07-22 18:05 ` Leon Michalak
2025-07-23 9:41 ` Phillip Wood
2025-07-21 16:50 ` [PATCH v4 0/4] Better support for customising context lines in --patch commands Junio C Hamano
2025-07-22 16:05 ` Phillip Wood
2025-07-22 17:20 ` Junio C Hamano
2025-07-29 7:01 ` [PATCH v5 " Leon Michalak via GitGitGadget
2025-07-29 7:01 ` [PATCH v5 1/4] t: use test_grep in t3701 and t4055 Leon Michalak via GitGitGadget
2025-07-29 7:01 ` [PATCH v5 2/4] t: use test_config in t4055 Leon Michalak via GitGitGadget
2025-07-29 7:01 ` [PATCH v5 3/4] add-patch: respect diff.context configuration Leon Michalak via GitGitGadget
2025-07-29 7:01 ` [PATCH v5 4/4] add-patch: add diff.context command line overrides Leon Michalak via GitGitGadget
2025-07-29 15:21 ` [PATCH v5 0/4] Better support for customising context lines in --patch commands Phillip Wood
2025-07-29 15:55 ` Junio C Hamano
2025-07-29 16:18 ` Leon Michalak
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=076bb5e9-e8c4-466d-b8dd-bc84bba708b2@gmail.com \
--to=phillip.wood123@gmail.com \
--cc=christian.couder@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitgitgadget@gmail.com \
--cc=kristofferhaugsbakk@fastmail.com \
--cc=leonmichalak6@gmail.com \
--cc=phillip.wood@dunelm.org.uk \
--cc=sunshine@sunshineco.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.