git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
To: git@vger.kernel.org
Cc: "Junio C Hamano" <gitster@pobox.com>, "Jeff King" <peff@peff.net>,
	"Johannes Schindelin" <Johannes.Schindelin@gmx.de>,
	"Alejandro Sanchez" <asanchez1987@gmail.com>,
	"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Subject: [PATCH 0/2] prompt.c: split up git_prompt(), read from /dev/tty, not STDIN
Date: Tue,  2 Nov 2021 17:48:08 +0100	[thread overview]
Message-ID: <cover-0.2-00000000000-20211102T155046Z-avarab@gmail.com> (raw)
In-Reply-To: <20190524062724.GC25694@sigill.intra.peff.net>

I had a stupid bug in another series of mine[1] breaking code around
git_prompt() in bisect--helper.c, and in trying to follow-up to add
testing to that discovered that doing so was rather hard, due to how
git_prompt() behaves.

In another case in 2019 (which is the In-Reply-To here) we added a
seeming for-the-tests workaround for the same issue in "git am
--interacive".

This starts out by splitting the more complex "get a password
interactively" case out of prompt.c into a new prompt-password.c, most
of prompt.c's complexity was to cater to one API user in credential.c.

That being done move these callers to using git_prompt(), and have it
understanda a new GIT_TEST_TERMINAL_PROMPT=true variable so we can
have our cake and it it too in the test suite. If that's set the
prompt function will allow input on stdin.

This then allowed my to add the missing test for "git bisect" for the
code I'd accidentally broken in [1].

As noted in the discussion in 2/2 I'm not 100% sure this is the right
direction in terms of swiching us back to using /dev/tty and not
stdin, but see that commit & commit message for details. In any case,
whatever behavior we go for as far as the UX goes shouldn't be
catering only to the test suite at the cost of trade-offs elsewhere.

1. https://lore.kernel.org/git/cover-v6-0.8-00000000000-20211102T122507Z-avarab@gmail.com/

Ævar Arnfjörð Bjarmason (2):
  prompt.c: split up the password and non-password handling
  prompt.c: add and use a GIT_TEST_TERMINAL_PROMPT=true

 Makefile                    |  1 +
 builtin/am.c                |  8 ++--
 builtin/bisect--helper.c    |  8 +---
 credential.c                | 17 ++++----
 help.c                      |  2 +-
 prompt-password.c           | 63 +++++++++++++++++++++++++++++
 prompt-password.h           |  7 ++++
 prompt.c                    | 79 ++++++++-----------------------------
 prompt.h                    |  7 +---
 t/t6030-bisect-porcelain.sh | 41 +++++++++++++++++++
 t/test-lib.sh               |  4 ++
 11 files changed, 151 insertions(+), 86 deletions(-)
 create mode 100644 prompt-password.c
 create mode 100644 prompt-password.h

-- 
2.33.1.1570.g069344fdd45


  reply	other threads:[~2021-11-02 16:48 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-20  8:35 Abort (core dumped) Alejandro Sanchez
2019-05-20 10:02 ` Jeff King
2019-05-20 12:06   ` [PATCH 0/4] fix BUG() with "git am -i --resolved" Jeff King
2019-05-20 12:07     ` [PATCH 1/4] am: simplify prompt response handling Jeff King
2019-05-20 12:09     ` [PATCH 2/4] am: read interactive input from stdin Jeff King
2019-05-20 12:11     ` [PATCH 3/4] am: drop tty requirement for --interactive Jeff King
2019-05-20 12:50       ` Jeff King
2019-05-23  6:44         ` Johannes Schindelin
2019-05-24  6:27           ` Jeff King
2021-11-02 16:48             ` Ævar Arnfjörð Bjarmason [this message]
2021-11-02 16:48               ` [PATCH 1/2] prompt.c: split up the password and non-password handling Ævar Arnfjörð Bjarmason
2021-11-03 11:53                 ` Jeff King
2021-11-03 17:28                   ` Junio C Hamano
2021-11-02 16:48               ` [PATCH 2/2] prompt.c: add and use a GIT_TEST_TERMINAL_PROMPT=true Ævar Arnfjörð Bjarmason
2021-11-03 11:57                 ` Jeff King
2021-11-03 15:12                   ` Ævar Arnfjörð Bjarmason
2021-11-04  9:58                     ` Jeff King
2021-11-03 17:42                   ` Junio C Hamano
2021-11-04  8:48                     ` Johannes Schindelin
2021-11-04  9:47                       ` Jeff King
2021-11-04  9:53                     ` Jeff King
2019-05-20 12:13     ` [PATCH 4/4] am: fix --interactive HEAD tree resolution Jeff King
2019-05-23  7:12       ` Johannes Schindelin
2019-05-24  6:39         ` Jeff King
2019-05-24  6:46           ` [PATCH v2 " Jeff King
2019-05-28 11:06           ` [PATCH " Johannes Schindelin
2019-05-28 21:35             ` Jeff King
2019-05-29 11:56               ` Johannes Schindelin
2019-09-26 14:20                 ` Alejandro Sanchez
2019-09-26 21:11                   ` 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

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cover-0.2-00000000000-20211102T155046Z-avarab@gmail.com \
    --to=avarab@gmail.com \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=asanchez1987@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).