git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "D. Ben Knoble" <ben.knoble+github@gmail.com>
To: git@vger.kernel.org
Cc: "D. Ben Knoble" <ben.knoble+github@gmail.com>,
	Patrick Steinhardt <ps@pks.im>,
	Junio C Hamano <gitster@pobox.com>
Subject: [PATCH 0/2] clean up some code around editors
Date: Mon,  4 Aug 2025 22:40:39 -0400	[thread overview]
Message-ID: <20250805024044.30024-1-ben.knoble+github@gmail.com> (raw)
In-Reply-To: <20250520193506.95199-1-ben.knoble+github@gmail.com>

This "v2" of the previous exec-path series is simplified to contain only
the first 2 cleanup patches, which were largely acked by the list. Drop
the controversial and broken PATH munging.

Also, this version is based on a later master 112648dd6b (Merge branch
'master' of https://github.com/j6t/git-gui, 2025-08-04) than the
original from May.

These patches clean up some old code in the editor tests and subsystem
that does not use our modern idioms. Patrick previously argued the test
cleanup doesn't go far enough, and he may be right, but I think the
preserving the semantics of the test for overrides /and/ automatically
resetting the environment is tricky, unless we can use a subshell for
the whole thing?

v1: https://lore.kernel.org/git/20250520193506.95199-1-ben.knoble+github@gmail.com/
Published-as: https://github.com/benknoble/tree/editor-cleanup

D. Ben Knoble (2):
  t7005: sanitize test environment for subsequent tests
  editor: use standard strvec API to receive environment for external
    editors

 builtin/commit.c  |  2 +-
 editor.c          | 10 +++++-----
 editor.h          |  7 ++++---
 t/t7005-editor.sh |  7 +++----
 4 files changed, 13 insertions(+), 13 deletions(-)

Diff-intervalle :
1:  da4fcc237b ! 1:  a37db65107 t7005: sanitize test environment for subsequent tests
    @@ Commit message
         Some of the editor tests manipulate the environment or config in ways
         that affect future tests (because they test a sequence of overrides),
         but those modifications are visible to future tests and create a footgun
    -    for them. Use test_config and undo environment modifications once
    -    finished.
    +    for them.
    +
    +    We can't make the environment-munging override tests undo their
    +    modifications because they rely on editor variables overriding other
    +    previously-set editor variables.
    +
    +    Use test_config and undo environment modifications once finished.
     
         Signed-off-by: D. Ben Knoble <ben.knoble+github@gmail.com>
     
2:  7b3b6b08f0 ! 2:  5450c99f59 editor: use standard strvec API to receive environment for external editors
    @@ Commit message
         Going back to the introduction of the env parameter for the editor in
         8babab95af (builtin-commit.c: export GIT_INDEX_FILE for launch_editor as
         well., 2007-11-26), we pass a constant array of strings: as the
    -    surrounding APIs evolved to use strvecs, the editor code did not.
    +    surrounding APIs evolved to use strvecs (see 8d7aa4ba6a
    +    (builtin/commit.c: remove the PATH_MAX limitation via dynamic
    +    allocation, 2017-01-13) and later 46b225f153 (Merge branch 'jk/strvec',
    +    2020-08-10)), the editor code did not.
     
         There is only one caller of all 3 editor APIs that does not pass a NULL
         environment (the same caller for which this parameter was added), and
         it already has a strvec available to use.
     
    -    Signed-off-by: D. Ben Knoble <ben.knoble+github@gmail.com>
         Helped-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    +    Signed-off-by: D. Ben Knoble <ben.knoble+github@gmail.com>
     
      ## builtin/commit.c ##
     @@ builtin/commit.c: static int prepare_to_commit(const char *index_file, const char *prefix,
3:  cb48533115 < -:  ---------- run-command: prep_childenv on all platforms
4:  d2e54fdf75 < -:  ---------- drop git_exec_path() from non-Git commands' PATH

base-commit: 112648dd6bdd8e4f485cd0ae11636807959d48be
-- 
2.48.1


  parent reply	other threads:[~2025-08-05  2:40 UTC|newest]

Thread overview: 73+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-05-20 19:34 [PATCH 0/4] Drop git-exec-path from non-Git child programs D. Ben Knoble
2025-05-20 19:34 ` [PATCH 1/4] t7005: sanitize test environment for subsequent tests D. Ben Knoble
2025-05-21  7:56   ` Patrick Steinhardt
2025-05-21 13:23     ` D. Ben Knoble
2025-05-20 19:34 ` [PATCH 2/4] editor: use standard strvec API to receive environment for external editors D. Ben Knoble
2025-05-21  7:56   ` Patrick Steinhardt
2025-05-21 13:26     ` D. Ben Knoble
2025-05-21 13:34       ` Patrick Steinhardt
2025-05-21 15:20       ` Junio C Hamano
2025-05-21 15:10     ` Junio C Hamano
2025-05-20 19:34 ` [PATCH 3/4] run-command: prep_childenv on all platforms D. Ben Knoble
2025-05-21  7:56   ` Patrick Steinhardt
2025-05-21 13:07     ` Phillip Wood
2025-05-21 13:33       ` D. Ben Knoble
2025-05-20 19:34 ` [PATCH 4/4] drop git_exec_path() from non-Git commands' PATH D. Ben Knoble
2025-05-20 20:33   ` Junio C Hamano
2025-05-21 13:44     ` D. Ben Knoble
2025-05-21  8:27   ` Patrick Steinhardt
2025-05-21 13:07     ` Phillip Wood
2025-05-21 13:17       ` Patrick Steinhardt
2025-05-21 15:27         ` Phillip Wood
2025-05-26  6:34           ` Patrick Steinhardt
2025-05-21 15:50         ` Justin Tobler
2025-05-26  6:31           ` Patrick Steinhardt
2025-05-21 13:48     ` D. Ben Knoble
2025-05-21 14:47     ` Junio C Hamano
2025-05-22 13:21 ` [PATCH 0/4] Drop git-exec-path from non-Git child programs Phillip Wood
2025-08-05  1:41   ` D. Ben Knoble
2025-08-05  2:40 ` D. Ben Knoble [this message]
2025-08-06 10:07   ` [PATCH 0/2] clean up some code around editors Phillip Wood
2025-08-05  2:40 ` [PATCH 1/2] t7005: sanitize test environment for subsequent tests D. Ben Knoble
2025-08-05  2:40 ` [PATCH 2/2] editor: use standard strvec API to receive environment for external editors D. Ben Knoble
2025-08-10 16:03 ` [PATCH 0/3] clean up some code around editors D. Ben Knoble
2025-08-10 16:06   ` D. Ben Knoble
2025-08-10 16:34     ` Ben Knoble
2025-08-11 22:16   ` [PATCH v3 0/4] " D. Ben Knoble
2025-08-11 22:59     ` Ben Knoble
2025-08-12  0:16       ` Eric Sunshine
2025-08-12 16:42         ` D. Ben Knoble
2025-08-12 17:35         ` Junio C Hamano
2025-08-12 18:13           ` Eric Sunshine
2025-08-12 18:22             ` Junio C Hamano
2025-08-12 18:30               ` Eric Sunshine
2025-08-12 17:02     ` [PATCH v4 0/3] " D. Ben Knoble
2025-08-13 10:14       ` Phillip Wood
2025-08-13 15:41         ` Junio C Hamano
2025-08-13 17:36           ` D. Ben Knoble
2025-08-13 17:50       ` [PATCH v5 " D. Ben Knoble
2025-08-15 16:00         ` Phillip Wood
2025-08-13 17:50       ` [PATCH v5 1/3] t7005: use modern test style D. Ben Knoble
2025-08-13 17:50       ` [PATCH v5 2/3] t7005: stop abusing --exec-path D. Ben Knoble
2025-08-13 17:50       ` [PATCH v5 3/3] t7005: sanitize test environment for subsequent tests D. Ben Knoble
2025-08-12 17:02     ` [PATCH v4 1/3] t7005: use modern test style D. Ben Knoble
2025-08-12 17:02     ` [PATCH v4 2/3] t7005: stop abusing --exec-path D. Ben Knoble
2025-08-12 17:02     ` [PATCH v4 3/3] t7005: sanitize test environment for subsequent tests D. Ben Knoble
2025-08-11 22:16   ` [PATCH v3 1/4] t7005: use modern test style D. Ben Knoble
2025-08-11 22:16   ` [PATCH v3 2/4] t7005: stop abusing --exec-path D. Ben Knoble
2025-08-11 22:16   ` [PATCH v3 3/4] t7005: sanitize test environment for subsequent tests D. Ben Knoble
2025-08-11 22:34     ` Eric Sunshine
2025-08-12 16:40       ` D. Ben Knoble
2025-08-12 17:13         ` Eric Sunshine
2025-08-11 22:16   ` [PATCH v3 4/4] editor: use standard strvec API to receive environment for external editors D. Ben Knoble
2025-08-11 22:46     ` Eric Sunshine
2025-08-11 23:58       ` Junio C Hamano
2025-08-10 16:03 ` [PATCH 1/3] t7005: use modern test style D. Ben Knoble
2025-08-10 19:42   ` Phillip Wood
2025-08-11 10:04   ` Phillip Wood
2025-08-10 16:03 ` [PATCH 2/3] t7005: sanitize test environment for subsequent tests D. Ben Knoble
2025-08-10 19:44   ` Phillip Wood
2025-08-10 19:53     ` Ben Knoble
2025-08-10 20:58       ` Eric Sunshine
2025-08-11  9:59     ` Phillip Wood
2025-08-10 16:03 ` [PATCH 3/3] editor: use standard strvec API to receive environment for external editors D. Ben Knoble

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=20250805024044.30024-1-ben.knoble+github@gmail.com \
    --to=ben.knoble+github@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=ps@pks.im \
    /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).