Subject: [PATCH 0/3] revision: handle pseudo-opts in `--stdin` mode

From: Patrick Steinhardt <[email-masked]>
Date: Wed, 14 Jun 2023 14:18:28 +0200

Hi,

both git-rev-list(1) and git-log(1) provide a `--stdin` mode that will
cause these commands to read additional commits from standard input. The
primary usecase will typically be scripts that potentially process a
long list of commits which might otherwise bust command line length
limits.

One notable omission though is that this mode does not allow us to pass
pseudo-options like `--all`, `--branch`, `--glob=` or `--not`. And while
it is possible to mix command line arguments and `--stdin` in order to
mix both pseudo-options and a potentially large set of commits, the end
result is arguably more complex for the user.

This patch series thus implements support for handling pseudo-options in
`--stdin` mode for both git-rev-list(1) and git-log(1).

Patrick

Patrick Steinhardt (3):
  revision: reorder `read_revisions_from_stdin()`
  revision: small readability improvement for reading from stdin
  revision: handle pseudo-opts in `--stdin` mode

 Documentation/rev-list-options.txt |  9 ++--
 revision.c                         | 76 +++++++++++++++++-------------
 t/t6017-rev-list-stdin.sh          | 32 +++++++++++++
 3 files changed, 79 insertions(+), 38 deletions(-)

-- 
2.41.0