From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Emilio Lopes Newsgroups: gmane.emacs.bugs Subject: bug#18461: `vc-svn-registered' signals an error if a directory has be (re)moved. Date: Fri, 12 Sep 2014 18:09:39 +0200 Message-ID: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Trace: ger.gmane.org 1410538333 11862 80.91.229.3 (12 Sep 2014 16:12:13 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 12 Sep 2014 16:12:13 +0000 (UTC) To: 18461@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Fri Sep 12 18:12:02 2014 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1XSTS4-0006lO-Nj for geb-bug-gnu-emacs@m.gmane.org; Fri, 12 Sep 2014 18:12:00 +0200 Original-Received: from localhost ([::1]:46104 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XSTS4-0000sr-7E for geb-bug-gnu-emacs@m.gmane.org; Fri, 12 Sep 2014 12:12:00 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:44230) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XSTRA-0007l4-Kc for bug-gnu-emacs@gnu.org; Fri, 12 Sep 2014 12:11:05 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XSTR9-00069M-81 for bug-gnu-emacs@gnu.org; Fri, 12 Sep 2014 12:11:04 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:48023) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XSTR9-00069B-5d for bug-gnu-emacs@gnu.org; Fri, 12 Sep 2014 12:11:03 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1XSTR8-0004aA-DU for bug-gnu-emacs@gnu.org; Fri, 12 Sep 2014 12:11:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Emilio Lopes Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 12 Sep 2014 16:11:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 18461 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.141053822717565 (code B ref -1); Fri, 12 Sep 2014 16:11:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 12 Sep 2014 16:10:27 +0000 Original-Received: from localhost ([127.0.0.1]:39587 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XSTQX-0004ZE-KM for submit@debbugs.gnu.org; Fri, 12 Sep 2014 12:10:26 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:42015) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XSTQV-0004Z6-PV for submit@debbugs.gnu.org; Fri, 12 Sep 2014 12:10:24 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XSTQQ-0005u1-Hp for submit@debbugs.gnu.org; Fri, 12 Sep 2014 12:10:23 -0400 Original-Received: from lists.gnu.org ([2001:4830:134:3::11]:58837) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XSTQQ-0005tw-FW for submit@debbugs.gnu.org; Fri, 12 Sep 2014 12:10:18 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:43655) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XSTQO-0006Yd-T1 for bug-gnu-emacs@gnu.org; Fri, 12 Sep 2014 12:10:18 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XSTQD-0005ds-Bc for bug-gnu-emacs@gnu.org; Fri, 12 Sep 2014 12:10:16 -0400 Original-Received: from mail-vc0-x22c.google.com ([2607:f8b0:400c:c03::22c]:41156) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XSTQD-0005Ui-7u for bug-gnu-emacs@gnu.org; Fri, 12 Sep 2014 12:10:05 -0400 Original-Received: by mail-vc0-f172.google.com with SMTP id hy10so929540vcb.3 for ; Fri, 12 Sep 2014 09:10:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:from:date:message-id:subject:to:content-type :content-transfer-encoding; bh=ao2YBOGlkQtyxa3Xk3i/9lD6pYLVu6VSeqAVMZHyJ/o=; b=TCh9PtdS9BhcjQKmE+5H4/rlGN3pYl8O/HqXs2N8alRCo/NtXwDe18xx7zb8dnIKW3 vghwYYpa+LykwCbFOqx5zSAPcH5pYPIGUzypy7mNG74E9Q9xOspEXfPkXcrXfd7Wg7MQ frXnPNjZWNSag0k7Rb/iSIlaZ2ZzQyb8Bs5+oS7GgdZETHO0wqABxZdg/9rZOSt6ldca 42P8jCkxTjcd9TWDM/+etFfUH7724rnWmVMD3K//ixV24t6OzQYeTmHWgMxSDUJ1BoYE c+lX9XQF+tZa8HXz1W7Y/MJ1kC8OuNcYayWAA8pSZeEDlRrLxM7d4FfrbVRgsUDn2qiL iowQ== X-Received: by 10.52.89.198 with SMTP id bq6mr1837795vdb.41.1410538200307; Fri, 12 Sep 2014 09:10:00 -0700 (PDT) Original-Received: by 10.220.241.138 with HTTP; Fri, 12 Sep 2014 09:09:39 -0700 (PDT) X-Google-Sender-Auth: FaSy9goXXOzQ89rXMuPt3z1b2B8 X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:93301 Archived-At: Here is a typical backtrace: Debugger entered--Lisp error: (error "No such directory found via CDPATH environment variable") signal(error ("No such directory found via CDPATH environment variabl= e")) error("No such directory found via CDPATH environment variable") cd("~/projects/shg/firmware-trunk/master-device-control/system-superv= isor/") vc-svn-registered("~/projects/shg/firmware-trunk/master-device-contro= l/system-supervisor/") apply(vc-svn-registered "~/projects/shg/firmware-trunk/master-device-control/system-supervisor/") vc-call-backend(SVN registered "~/projects/shg/firmware-trunk/master-device-control/system-supervisor/") ... The following patch seems to fix the problem for me. Regards, Em=C3=ADlio =3D=3D=3D modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-09-08 13:57:19 +0000 +++ lisp/ChangeLog 2014-09-12 16:00:36 +0000 @@ -1,3 +1,10 @@ +2014-09-12 Emilio C. Lopes + + * vc/vc-svn.el (vc-svn-registered): `cd' to the project root, not + to the file's directory, in case the directory has been (re)moved, + and do this inside the `ignore-errors' form. + (vc-svn-state): Ditto, modulo `ignore-errors'. + 2014-09-08 Sam Steingold * progmodes/sql.el (sql-send-line-and-next): New command, =3D=3D=3D modified file 'lisp/vc/vc-svn.el' --- lisp/vc/vc-svn.el 2014-01-01 07:43:34 +0000 +++ lisp/vc/vc-svn.el 2014-09-12 16:00:36 +0000 @@ -135,30 +135,30 @@ (defun vc-svn-registered (file) "Check if FILE is SVN registered." - (when (vc-svn-root file) - (with-temp-buffer - (cd (file-name-directory file)) - (let* (process-file-side-effects - (status - (condition-case nil - ;; Ignore all errors. - (vc-svn-command t t file "status" "-v") - ;; Some problem happened. E.g. We can't find an `svn' - ;; executable. We used to only catch `file-error' but when - ;; the process is run on a remote host via Tramp, the error - ;; is only reported via the exit status which is turned int= o - ;; an `error' by vc-do-command. - (error nil)))) - (when (eq 0 status) - (let ((parsed (vc-svn-parse-status file))) - (and parsed (not (memq parsed '(ignored unregistered)))))))))) + (let ((dir (vc-svn-root file))) + (when dir + (with-temp-buffer + (let* (process-file-side-effects + (status + (ignore-errors + ;; In case some problem might happen. E.g. We can't + ;; find an `svn' executable. We used to only catch + ;; `file-error' but when the process is run on a + ;; remote host via Tramp, the error is only reported + ;; via the exit status which is turned into an + ;; `error' by vc-do-command. + (cd dir) + (vc-svn-command t t file "status" "-v")))) + (when (eq 0 status) + (let ((parsed (vc-svn-parse-status file))) + (and parsed (not (memq parsed '(ignored unregistered))))))))= ))) (defun vc-svn-state (file &optional localp) "SVN-specific version of `vc-state'." (let (process-file-side-effects) (setq localp (or localp (vc-stay-local-p file 'SVN))) (with-temp-buffer - (cd (file-name-directory file)) + (cd (vc-svn-root file)) (vc-svn-command t 0 file "status" (if localp "-v" "-u")) (vc-svn-parse-status file))))