From: Peter Grayson <pete@jpgrayson.net>
To: zsh-workers@zsh.org, Daniel Shahaf <d.s@daniel.shahaf.name>
Cc: Peter Grayson <pete@jpgrayson.net>
Subject: [PATCH] Remove StGit patch detection from vcs_info
Date: Mon, 31 Oct 2022 23:04:30 -0400 [thread overview]
Message-ID: <20221101030429.38029-1-pete@jpgrayson.net> (raw)
In-Reply-To: <b4c60481-90af-4626-83b3-2f6ed35a5ca8@app.fastmail.com>
The vcs_info patch detection code attempted to interrogate StGit patch
stack state by inspecting .git/patches/applied and
.git/patches/unapplied. As of StGit 1.0, StGit stack and patch state is
no longer maintained via files in the .git/ directory, but is instead
captured in the repo's object database, accessible via the
refs/stacks/<branch> reference.
Thus zsh's approach for interrogating StGit patch state is long
obsoleted.
This patch excises the code that attempts to interrogate StGit stack
state. It would alternatively be possible to repair this code to
interrogate the StGit stack state in a different manner, but:
- It is not clear that StGit is a sufficiently popular tool to warrant
direct inclusion in zsh.
- Interrogating the StGit stack needs to be done using StGit's
proscribed interface, the stg executable, and not by interrogating
either the .git filesystem nor by inspecting the git object database
with the git executable.
- StGit versions prior to 2.0 are implemented in Python and thus have an
unacceptable runtime overhead to be included in vcs_info (on the order
of hundreds of milliseconds).
- StGit 2.0 is implemented in Rust is considerably faster (a few tens of
milliseconds to interrogate stack state), but any non-zero overhead to
vcs_info still seems like too much given the value of this patch
information and the relative non-popularity of StGit.
- Just removing the code is the lowest-risk approach for the zsh code
base.
Signed-off-by: Peter Grayson <pete@jpgrayson.net>
---
Functions/VCS_Info/Backends/VCS_INFO_get_data_git | 11 ++---------
1 file changed, 2 insertions(+), 9 deletions(-)
diff --git a/Functions/VCS_Info/Backends/VCS_INFO_get_data_git b/Functions/VCS_Info/Backends/VCS_INFO_get_data_git
index e45eebc8e..a3f4dbdf0 100644
--- a/Functions/VCS_Info/Backends/VCS_INFO_get_data_git
+++ b/Functions/VCS_Info/Backends/VCS_INFO_get_data_git
@@ -184,15 +184,8 @@ fi
VCS_INFO_adjust
VCS_INFO_git_getaction ${gitdir}
-local patchdir=${gitdir}/patches/${gitbranch}
-if [[ -d $patchdir ]] && [[ -f $patchdir/applied ]] \
- && [[ -f $patchdir/unapplied ]]
-then
- # stgit
- git_patches_applied=(${(f)"$(< "${patchdir}/applied")"})
- git_patches_unapplied=(${(f)"$(< "${patchdir}/unapplied")"})
- VCS_INFO_git_handle_patches
-elif [[ -d "${gitdir}/rebase-merge" ]]; then
+local patchdir
+if [[ -d "${gitdir}/rebase-merge" ]]; then
# 'git rebase -i'
patchdir="${gitdir}/rebase-merge"
local p
--
2.38.1
next prev parent reply other threads:[~2022-11-01 3:06 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-25 20:43 [PATCH] Remove _stgit completion script Peter Grayson
2022-10-31 9:19 ` Daniel Shahaf
2022-10-31 10:13 ` StGit 2.0 and vcs_info (was: Re: [PATCH] Remove _stgit completion script) Daniel Shahaf
2022-11-01 3:00 ` [PATCH] Remove _stgit completion script Peter Grayson
2022-11-01 3:04 ` Peter Grayson [this message]
2022-11-11 11:49 ` [PATCH] Remove StGit patch detection from vcs_info Daniel Shahaf
2022-11-12 14:46 ` Peter Grayson
2022-11-12 15:42 ` [PATCH] Updated StGit patch detection in vcs_info Peter Grayson
2022-11-13 4:58 ` Daniel Shahaf
2022-11-16 20:45 ` [PATCH v2] " Peter Grayson
2022-12-08 14:52 ` [PATCH v3] " Peter Grayson
2022-12-08 22:06 ` Daniel Shahaf
2022-12-08 22:08 ` [PATCH] vcs_info git: Check the get-unapplied style as documented (was: [PATCH v3] Updated StGit patch detection in vcs_info) Daniel Shahaf
2022-12-09 0:59 ` [PATCH v3] Updated StGit patch detection in vcs_info Peter Grayson
2022-12-09 1:37 ` Daniel Shahaf
2022-12-10 12:55 ` Peter Grayson
2022-12-10 13:31 ` Daniel Shahaf
2022-11-13 4:30 ` [PATCH] Remove StGit patch detection from vcs_info Daniel Shahaf
2022-11-14 3:38 ` Peter Grayson
2022-11-14 5:17 ` Mikael Magnusson
2022-11-14 13:21 ` Daniel Shahaf
2022-11-14 13:15 ` Daniel Shahaf
2022-11-16 19:38 ` Peter Grayson
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=20221101030429.38029-1-pete@jpgrayson.net \
--to=pete@jpgrayson.net \
--cc=d.s@daniel.shahaf.name \
--cc=zsh-workers@zsh.org \
/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://git.vuxu.org/mirror/zsh/
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).