Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: [PATCH v3] Updated StGit patch detection in vcs_info
Peter Grayson wrote on Thu, Dec 08, 2022 at 09:52:42 -0500:
> This is a slight improvement over the v2 patch. Only a single `git
> show-ref` is used to determine whether a StGit stack is present on the
> current branch instead of one or tow `git rev-parse` calls.
>
> I recommend applying this patch. It solves the StGit compatibility
> problems in vcs_info:
>
> - Works for all versions of StGit going back to 2009.
> - Does not impose runtime overhead when `stg` is not installed.
> - Only imposes the small cost of `git show-ref` (<0.5ms) otherwise.
> - Small patch. Low risk.
Thanks a lot for the patch and for all the constructive back-and-forth,
and many apologies for not getting around to pushing v2 sooner.
I hadn't forgotten about it; I was simply swamped, and wanted to
proofread and test it once more before pushing. (And I had planned to
review and push v2 today anyway, regardless of v3.)
Pushed the patch to master.
Noticed two issues while there:
1. (preëxisting) Some of the other codepaths don't check the
get-unapplied style. I'll send a patch for that in a minute.
2. The stg codepath doesn't extract patch subjects. The following
addresses that for the old stgit version I have packaged in my distro,
but I don't know whether it would DTRT for newer versions too.
[[[
diff --git a/Functions/VCS_Info/Backends/VCS_INFO_get_data_git b/Functions/VCS_Info/Backends/VCS_INFO_get_data_git
index 37cd048db..c21c3c8d1 100644
--- a/Functions/VCS_Info/Backends/VCS_INFO_get_data_git
+++ b/Functions/VCS_Info/Backends/VCS_INFO_get_data_git
@@ -388,7 +388,7 @@ elif [[ -f "${gitdir}/CHERRY_PICK_HEAD" ]]; then
VCS_INFO_git_handle_patches
elif command -v stg >/dev/null &&
${vcs_comm[cmd]} show-ref --quiet refs/stacks/${gitbranch} refs/heads/${gitbranch}.stgit 2>/dev/null &&
- git_patches_applied=(${(f)"$(stg series --noprefix --applied 2>/dev/null)"})
+ git_patches_applied=(${${(f)"$(stg series --noprefix --applied --description 2>/dev/null)"}/[#] })
then
# Testing for StGit patches is done after testing for all git-proper
# patches/states. If a StGit user's repo is in one of those states, they
@@ -408,7 +408,7 @@ then
# --no-prefix. The former is compatible with StGit versions going back to
# 2008.
if zstyle -t ":vcs_info:${vcs}:${usercontext}:${rrn}" get-unapplied; then
- git_patches_unapplied=(${(f)"$(stg series --noprefix --unapplied 2>/dev/null)"})
+ git_patches_unapplied=(${${(f)"$(stg series --noprefix --unapplied --description 2>/dev/null)"}/[#] })
fi
VCS_INFO_git_handle_patches
else
]]]
The "Show information about patch series" snippet in
Misc/vcs_info-examples can be used to test this change.
Best,
Daniel
Messages sorted by:
Reverse Date,
Date,
Thread,
Author