Subject: bug#5456: vc-hg-state does not search hg in vc-path

From: Dan Nicolaescu <[email-masked]>
Date: Sun, 24 Jan 2010 22:16:29 -0800 (PST)

Stephan Bergmann <[email-masked]> writes:

  > At least in 23.1, vc-hg-state (and vc-hg-working-revision) in vc-hg.el call "hg" without making sure that it is being searched for in vc-path (as is done in vc-dispatcher.el by extending exec-path).  What fixed it for me (on recent trunk) is

  > ---8<---
  > === modified file 'lisp/vc-hg.el'
  > --- lisp/vc-hg.el	2010-01-13 08:35:10 +0000
  > +++ lisp/vc-hg.el	2010-01-22 21:46:14 +0000
  > @@ -169,7 +169,8 @@
  >                        ;; Ignore all errors.
  >  		      (let ((process-environment
  >  			     ;; Avoid localization of messages so we can parse the output.
  > -			     (append (list "TERM=dumb" "LANGUAGE=C" "HGRC=") process-environment)))
  > +			     (append (list "TERM=dumb" "LANGUAGE=C" "HGRC=") process-environment))
  > +                            (exec-path (append vc-path exec-path)))
  >  
  >  		      (process-file
  >                         "hg" nil t nil
  > @@ -205,7 +206,8 @@
  >  		      (let ((process-environment
  >  			     ;; Avoid localization of messages so we can parse the output.
  >  			     (append (list "TERM=dumb" "LANGUAGE=C" "HGRC=")
  > -				     process-environment)))
  > +				     process-environment))
  > +                            (exec-path (append vc-path exec-path)))
  >  			;; Ignore all errors.
  >  			(process-file
  >  			 "hg" nil t nil

There's more places where a change like this would be necessary....

Actually, looking over all the VC backends, almost all could use vc-path,
but NONE does.

So I'd rather vote for deprecating vc-path in 23.2 and remove it later.