Subject: Re: [PATCH] date: remove approxidate_relative()

From: Junio C Hamano <[email-masked]>
Date: Mon, 10 Apr 2023 14:05:45 -0700

Jeff King <[email-masked]> writes:

> Cute. It feels like this only goes half-way, though. You really want
> per-hunk configurable context. This particular patch was just lucky that
> there was only one hunk in the date.c file.

"-U16" extends the context lines in both directions by the same
number of lines, but most likely you need to extend asymmetrically.
In René's patch, for example, much of the body of approxidate_str()
is visible in the precontext of the hunk to remove
approxidate_relative(), but the body of that function is irrelevant.
What he wanted to show was the body of approxidate_careful() and the
size of that function is where the -U16 came from.

Instead, imagine --extra-context='<range>:<path>' were the way to
tell Git to include the specified range of lines in the post context
even though they may not have been modified.  Then René's patch
could have been produced with

    $ git format-patch -1 \
      --extra-context='/^timestamp_t approxidate_careful/,/^}$/:date.c'

and would have shown 3 lines of precontext before the removed
approxidate_relative(), plus the unchanged approxidate_careful()
function in full in the postcontext.