1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-01-04 06:14:50 +01:00

PATCH: 34333: vcs_info quilt: fix unapplied detection in subdir

When patches are applied, let quilt use .pc without forcing the
patch directory, this will fix the unapplied detection when being in
subdir.
When no patches are applied, use zstyle quilt-patch-dir then
QUILT_PATCHES then "patches" for path to search for patches.

Note: prefer setting quilt-patch-dir rather than QUILT_PATCHES for
absolute path because when patches are applied, quilt unapplied will
not return the correct list (i.e. the whole list rather that the one
specified by .pc/.quilt_series).
This commit is contained in:
Marc Finet 2015-01-20 22:55:07 +01:00 committed by Frank Terbeck
parent 102f2aec1e
commit 9ea817acda
2 changed files with 22 additions and 13 deletions

View file

@ -1,3 +1,8 @@
2015-01-22 Marc Finet <m.dreadlock@gmail.com>
* Functions/VCS_Info/VCS_INFO_quilt: PATCH: 34333: vcs_info quilt:
fix unapplied detection in subdir
2015-01-22 Jun-ichi Takimoto <takimoto-j@kba.biglobe.ne.jp>
* 34327: _perl_modules: fix cache identifier used in

View file

@ -87,7 +87,7 @@ function VCS_INFO_quilt() {
local patches pc tmp qstring root
local -i ret
local -x context
local -a applied unapplied all applied_string unapplied_string quiltcommand
local -a applied unapplied all applied_string unapplied_string quiltcommand quilt_env
local -Ax hook_com
context=":vcs_info:${vcs}.quilt-${mode}:${usercontext}:${rrn}"
@ -105,17 +105,6 @@ function VCS_INFO_quilt() {
;;
esac
zstyle -s "${context}" quilt-patch-dir patches || patches="${QUILT_PATCHES}"
if [[ "${patches}" != /* ]]; then
tmp=${patches:-patches}
patches="$(VCS_INFO_quilt-dirfind "${tmp}")"
ret=$?
(( ret )) && return ${ret}
patches=${patches}/${tmp}
else
[[ -d ${patches} ]] || return 1
fi
pc="$(VCS_INFO_quilt-dirfind .pc .version)"
ret=$?
if (( ret == 0 )); then
@ -129,12 +118,27 @@ function VCS_INFO_quilt() {
else
applied=()
fi
patches=$(<$pc/.quilt_patches)
fi
if zstyle -t "${context}" get-unapplied; then
# This zstyle call needs to be moved further up if `quilt' needs
# to be run in more places than this one.
zstyle -s "${context}" quiltcommand quiltcommand || quiltcommand='quilt'
unapplied=( ${(f)"$(QUILT_PATCHES=$patches $quiltcommand --quiltrc /dev/null unapplied 2> /dev/null)"} )
quilt_env=(env)
if [ -z "$patches" ]; then
zstyle -s "${context}" quilt-patch-dir patches || patches="${QUILT_PATCHES}"
if [[ "${patches}" != /* ]]; then
tmp=${patches:-patches}
patches="$(VCS_INFO_quilt-dirfind "${tmp}")"
ret=$?
(( ret )) && return ${ret}
patches=${patches}/${tmp}
else
[[ -d ${patches} ]] || return 1
fi
quilt_env+=(QUILT_PATCHES="$patches")
fi
unapplied=( ${(f)"$(${quilt_env[@]} $quiltcommand --quiltrc /dev/null unapplied 2> /dev/null)"} )
unapplied=( ${unapplied:#} )
else
unapplied=()