From: Junio C Hamano <gitster@pobox.com>
To: Jeff King <peff@peff.net>
Cc: "René Scharfe" <l.s.r@web.de>, "Git List" <git@vger.kernel.org>
Subject: Re: [PATCH] date: remove approxidate_relative()
Date: Tue, 11 Apr 2023 08:43:47 -0700 [thread overview]
Message-ID: <xmqqsfd6bf0s.fsf@gitster.g> (raw)
In-Reply-To: <20230411093005.GB398350@coredump.intra.peff.net> (Jeff King's message of "Tue, 11 Apr 2023 05:30:05 -0400")
Jeff King <peff@peff.net> writes:
>> 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.
>
> Ooh, I like that very much. In that sense it really feels like an
> extension of --function-context. Would the regexes be searches starting
> from the edge of some context (as they more or less are under the hood
> for function context), or would you search within the whole file for
> ranges (and then presumably use them when a hunk's context is adjacent
> to or overlaps a range)?
>
> If the latter, I guess you could also allow both absolute and relative
> line numbers, similar to how "-L" accepts range input.
We want the latter.
If we further imagine that approxidate_careful() were defined very
far away (in either direction) from approxidate_relative() that
"extending" the patch context to show the removal of the latter to
cover the former would show too much irrelevant information, I think
René would have wanted to show a normal patch plus an extra hunk
that contains the entirety of approxidate_careful() that shows no
modification (i.e. all lines are prefixed with an SP). The way I
think about this new "feature" is "compute what hunks should be
shown, honoring all other options. Then pretend no-op hunks to
cover all specified lines in the postimage [*] are also in the
result. Combine them all, ignoring parts of the made-up no-op hunks
when they contradict the real hunks.". The end result should show
all specified lines from the postimage plus the usual diff.
[Footnote]
* There is no need for a similar option to talk about lines in the
preimage, because a line in the preimage would either appear in
the postimage (in which case the range in the postimage can be
used to show it), or otherwise it would appear as deleted line
(in which case the reader will see it without the new feature.
next prev parent reply other threads:[~2023-04-11 15:43 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-08 9:35 [PATCH] date: remove approxidate_relative() René Scharfe
2023-04-10 16:20 ` Junio C Hamano
2023-04-10 20:25 ` Jeff King
2023-04-10 20:52 ` René Scharfe
2023-04-11 9:25 ` Jeff King
2023-04-10 21:05 ` Junio C Hamano
2023-04-11 9:30 ` Jeff King
2023-04-11 15:43 ` Junio C Hamano [this message]
2023-04-12 7:30 ` Jeff King
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=xmqqsfd6bf0s.fsf@gitster.g \
--to=gitster@pobox.com \
--cc=git@vger.kernel.org \
--cc=l.s.r@web.de \
--cc=peff@peff.net \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).