zsh-workers
 help / color / mirror / code / Atom feed
* PATCH: vcs_info quilt: fix unapplied detection in subdir
@ 2015-01-20 21:55 Marc Finet
  2015-01-21 23:05 ` Frank Terbeck
  0 siblings, 1 reply; 2+ messages in thread
From: Marc Finet @ 2015-01-20 21:55 UTC (permalink / raw)
  To: zsh-workers; +Cc: Frank Terbeck

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).
---
 Functions/VCS_Info/VCS_INFO_quilt | 30 +++++++++++++++++-------------
 1 file changed, 17 insertions(+), 13 deletions(-)

diff --git a/Functions/VCS_Info/VCS_INFO_quilt b/Functions/VCS_Info/VCS_INFO_quilt
index db15dda..34ff1ed 100644
--- a/Functions/VCS_Info/VCS_INFO_quilt
+++ b/Functions/VCS_Info/VCS_INFO_quilt
@@ -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=()
-- 
2.1.4


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: PATCH: vcs_info quilt: fix unapplied detection in subdir
  2015-01-20 21:55 PATCH: vcs_info quilt: fix unapplied detection in subdir Marc Finet
@ 2015-01-21 23:05 ` Frank Terbeck
  0 siblings, 0 replies; 2+ messages in thread
From: Frank Terbeck @ 2015-01-21 23:05 UTC (permalink / raw)
  To: Marc Finet; +Cc: zsh-workers

Hi Marc,

Marc Finet wrote:
> 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).
> ---
>  Functions/VCS_Info/VCS_INFO_quilt | 30 +++++++++++++++++-------------
>  1 file changed, 17 insertions(+), 13 deletions(-)

Sounds like a plan. I'll apply this in a minute! Thanks!


Regards, Frank


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2015-01-21 23:19 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-20 21:55 PATCH: vcs_info quilt: fix unapplied detection in subdir Marc Finet
2015-01-21 23:05 ` Frank Terbeck

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).