mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-09-12 13:21:15 +02:00
45627: vcs_info git: Under git-am(1) conflicts, pass to the gen-applied-string hook information on already-applied patches.
The hook already receives information about the current (topmost applied) patch and, if the get-unapplied style is set, about future (unapplied) patches. Tested in the Functions/VCS_Info/test-repo-git-rebase-apply scenario, after manually converting the rebase to a «git am». (Specifically, I ran: mkdir d git rebase --abort git format-patch rebase_from_this..HEAD -o d git checkout rebase_onto_this git am d/* .)
This commit is contained in:
parent
f207fb90d8
commit
d13d6afb2e
2 changed files with 15 additions and 3 deletions
|
@ -1,5 +1,9 @@
|
||||||
2020-03-26 Daniel Shahaf <d.s@daniel.shahaf.name>
|
2020-03-26 Daniel Shahaf <d.s@daniel.shahaf.name>
|
||||||
|
|
||||||
|
* 45627: Functions/VCS_Info/Backends/VCS_INFO_get_data_git:
|
||||||
|
vcs_info git: Under git-am(1) conflicts, pass to the
|
||||||
|
gen-applied-string hook information on already-applied patches.
|
||||||
|
|
||||||
* 45625: Functions/VCS_Info/Backends/VCS_INFO_get_data_svn:
|
* 45625: Functions/VCS_Info/Backends/VCS_INFO_get_data_svn:
|
||||||
vcs_info svn: Detect the "working copy format is too new" error.
|
vcs_info svn: Detect the "working copy format is too new" error.
|
||||||
|
|
||||||
|
|
|
@ -258,14 +258,14 @@ elif [[ -d "${gitdir}/rebase-merge" ]]; then
|
||||||
fi
|
fi
|
||||||
VCS_INFO_git_handle_patches
|
VCS_INFO_git_handle_patches
|
||||||
elif [[ -d "${gitdir}/rebase-apply" ]]; then
|
elif [[ -d "${gitdir}/rebase-apply" ]]; then
|
||||||
# 'git rebase' without -i
|
# 'git rebase' without -i, or 'git am'
|
||||||
patchdir="${gitdir}/rebase-apply"
|
patchdir="${gitdir}/rebase-apply"
|
||||||
local next="${patchdir}/next"
|
local next="${patchdir}/next"
|
||||||
local this_patch_file
|
local this_patch_file
|
||||||
if [[ -f $next ]]; then
|
if [[ -f $next ]]; then
|
||||||
local cur=$(< $next)
|
local cur=$(< $next)
|
||||||
local p subject
|
local p subject
|
||||||
# Fake patch names for patches "before" the current patch
|
# Compute patch names for patches "before" the current patch
|
||||||
if [[ -r ${patchdir}/rewritten ]]; then
|
if [[ -r ${patchdir}/rewritten ]]; then
|
||||||
if zstyle -t ":vcs_info:${vcs}:${usercontext}:${rrn}" use-simple; then
|
if zstyle -t ":vcs_info:${vcs}:${usercontext}:${rrn}" use-simple; then
|
||||||
git_patches_applied=( ${${(f)"$(<${patchdir}/rewritten)"}// */' ?'} )
|
git_patches_applied=( ${${(f)"$(<${patchdir}/rewritten)"}// */' ?'} )
|
||||||
|
@ -280,7 +280,13 @@ elif [[ -d "${gitdir}/rebase-apply" ]]; then
|
||||||
# of these versions have original-commit and orig-head and would
|
# of these versions have original-commit and orig-head and would
|
||||||
# take the 'if' branch, rather than this 'else' branch.
|
# take the 'if' branch, rather than this 'else' branch.
|
||||||
for ((p = 1; p < cur; p++)); do
|
for ((p = 1; p < cur; p++)); do
|
||||||
printf -v "git_patches_applied[$p]" "%04d ?" "$p"
|
printf -v this_patch_file "%s/%04d" "${patchdir}" "${p}"
|
||||||
|
if [[ -f $this_patch_file ]]; then
|
||||||
|
VCS_INFO_patch2subject "${this_patch_file}"
|
||||||
|
git_patches_applied+=( "$p $REPLY" )
|
||||||
|
else
|
||||||
|
git_patches_applied+=( "$p ?" )
|
||||||
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
# Set $subject to the info for the current patch
|
# Set $subject to the info for the current patch
|
||||||
|
@ -298,6 +304,8 @@ elif [[ -d "${gitdir}/rebase-apply" ]]; then
|
||||||
subject=${subject:-'?'}
|
subject=${subject:-'?'}
|
||||||
if [[ -f "${patchdir}/original-commit" ]]; then
|
if [[ -f "${patchdir}/original-commit" ]]; then
|
||||||
git_patches_applied+=("$(< ${patchdir}/original-commit) $subject")
|
git_patches_applied+=("$(< ${patchdir}/original-commit) $subject")
|
||||||
|
elif [[ -f "${patchdir}/next" ]]; then
|
||||||
|
git_patches_applied+=("$(< ${patchdir}/next) $subject")
|
||||||
else
|
else
|
||||||
git_patches_applied+=("? $subject")
|
git_patches_applied+=("? $subject")
|
||||||
fi
|
fi
|
||||||
|
|
Loading…
Reference in a new issue