Thread (1 message) 1 message, 1 author, 2021-03-03

Re: [PATCH 2/2] pretty: add merge and exclude options to %(describe)

flat view

From: René Scharfe. <hidden>
Date: 2021-03-03 06:41:56

Am 01.03.21 um 18:54 schrieb Junio C Hamano:
René Scharfe. [off-list ref] writes:
quoted
Am 17.02.21 um 19:31 schrieb Jeff King:
quoted
On Sun, Feb 14, 2021 at 11:10:57AM +0100, René Scharfe. wrote:
quoted
Allow restricting the tags used by the placeholder %(describe) with the
options match and exclude.  E.g. the following command describes the
current commit using official version tags, without those for release
candidates:

   $ git log -1 --format='%(describe:match=v[0-9]*,exclude=*rc*)'
An interesting side effect of this series is that it allows remote users
asking for archives to fill in this data, too (by using export-subst
placeholders). That includes servers allowing "git archive --remote",
but also services like GitHub that will run git-archive on behalf of
clients.

I wonder what avenues for mischief this provides. Certainly using extra
CPU to run git-describe.
A repository can contain millions of files, each file can contain
millions of $Format:...$ sequences and each of them can contain millions
of %(describe) placeholders.  Each of them could have different match or
exclude args to prevent caching.  Allowing a single request to cause
trillions of calls of git describe sounds excessive.  Let's limit this.
An invocation of "git archive" would have to deal with a single
commit, no?  I wonder if it is a more fruitful direction to go to
teach format_subst() to "cache" the mapping from <placeholders> to
<resulting-string> and reuse.
Yes, git archive only works on a single commit.  Caching cannot help
against a DoS attack using describe placeholders with different match
or exclude arguments.

René
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help