From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Dmitry Gutov Newsgroups: gmane.emacs.bugs Subject: bug#20637: incompatible, undocumented change to vc-working-revision Date: Mon, 18 Apr 2016 04:40:27 +0300 Message-ID: <41a4e458-fa51-58ed-6b82-bb2a26742717@yandex.ru> References: <6ok2vyzwf9.fsf@fencepost.gnu.org> <08f70cda-44be-0657-e50a-2b2c80d2c21c@yandex.ru> <87oa9dzgl0.fsf@gmx.de> <87potshczh.fsf@gmx.de> <87h9f4ghzg.fsf@gmx.de> <9ac1dc55-94f9-2556-d520-96d47e43c4cf@yandex.ru> <87bn5bc8zx.fsf@gmx.de> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------DB0FE32629F9B3356DF597B5" X-Trace: ger.gmane.org 1460943686 29422 80.91.229.3 (18 Apr 2016 01:41:26 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 18 Apr 2016 01:41:26 +0000 (UTC) Cc: 20637@debbugs.gnu.org To: Michael Albinus Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Apr 18 03:41:12 2016 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 1aryBb-0000dP-8H for geb-bug-gnu-emacs@m.gmane.org; Mon, 18 Apr 2016 03:41:11 +0200 Original-Received: from localhost ([::1]:55307 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aryBa-0000vJ-Ef for geb-bug-gnu-emacs@m.gmane.org; Sun, 17 Apr 2016 21:41:10 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:59513) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aryBV-0000mk-9t for bug-gnu-emacs@gnu.org; Sun, 17 Apr 2016 21:41:06 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aryBS-0001Iu-1P for bug-gnu-emacs@gnu.org; Sun, 17 Apr 2016 21:41:05 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:54649) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aryBR-0001IN-UI for bug-gnu-emacs@gnu.org; Sun, 17 Apr 2016 21:41:01 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1aryBR-0001ER-IJ for bug-gnu-emacs@gnu.org; Sun, 17 Apr 2016 21:41:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Dmitry Gutov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 18 Apr 2016 01:41:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 20637 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 20637-submit@debbugs.gnu.org id=B20637.14609436374686 (code B ref 20637); Mon, 18 Apr 2016 01:41:01 +0000 Original-Received: (at 20637) by debbugs.gnu.org; 18 Apr 2016 01:40:37 +0000 Original-Received: from localhost ([127.0.0.1]:38753 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1aryB2-0001DV-VI for submit@debbugs.gnu.org; Sun, 17 Apr 2016 21:40:37 -0400 Original-Received: from mail-wm0-f67.google.com ([74.125.82.67]:33806) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1aryB1-0001DI-8q for 20637@debbugs.gnu.org; Sun, 17 Apr 2016 21:40:35 -0400 Original-Received: by mail-wm0-f67.google.com with SMTP id n3so20726609wmn.1 for <20637@debbugs.gnu.org>; Sun, 17 Apr 2016 18:40:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:subject:to:references:cc:from:message-id:date:user-agent :mime-version:in-reply-to; bh=elLPa/5s4RNA5UO0v+yWcM2RQWLhzmrArKiTzmKRHJQ=; b=SrnlCHaNbYpUbiq00ScYhijQkXStPsIHst2NmOLG+P2E1FU4GQ7YlxUVBZ5MCfwSRo Agjn6lZ8LBvtLc757L5Y+8giPsrJK967PmLdLxTA17Fqfd1UmbH5gJZrZnpNHZXMej8/ 8xZ5KIPDjFPXNiSmIujeszdiqW1M7H7akycDtND+jUDqOXK3Duvn0WfYZ65el3mEgz0e 9+r5eVC187CBixYvDdH0ce2k1WmDFxbDKYoy3JQajuJub+8OA6eItEWUoCrcyVT6kDCF XDErFdul5wDVDO4pvUvkHUgEinPS7MdMVtAbkw/vwj6/6PGwjfPjTthlD54B2wK7/Mkk FyWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:subject:to:references:cc:from:message-id :date:user-agent:mime-version:in-reply-to; bh=elLPa/5s4RNA5UO0v+yWcM2RQWLhzmrArKiTzmKRHJQ=; b=NYxFz14fCLOFqBWOXCC1lKspeJNwcdkzQbHrHfuQyVKi+vspNJgWuHwsSmMWhmbgUq zsxu45Gkh2zzYa64pxVbJQyXdya5fE0UIDsS2OAvLjFjkzhJ35azdUK0vvQHl3d4KtWb VS6a/x+s+knx5Fpmwa7zssOJiPRtt/vhZUUDjTtLMYVnA3fzSs05CygflJz8mzs+xJ6R /a7xL/FyDbXYwUBKcH6EJgvfN+xknrgd/UPKDaO4mNDKqfcmEf2etFDqSSrrObGuaFG2 jJlicFiGMApOVCzCi97MlIingXKI9fQiPZ/mwiCSv5JBUl9NdaJzqDNIqavMqInGYK8t zk7g== X-Gm-Message-State: AOPr4FVzgaIbNOktT35MAZKrUOX4ZeG548D8VKoQy0831k3xsDTDfDNjBVYk/L1rJw6+vA== X-Received: by 10.194.93.2 with SMTP id cq2mr7119833wjb.151.1460943629739; Sun, 17 Apr 2016 18:40:29 -0700 (PDT) Original-Received: from [192.168.1.2] ([185.105.175.24]) by smtp.googlemail.com with ESMTPSA id j10sm61504660wjb.46.2016.04.17.18.40.28 (version=TLSv1/SSLv3 cipher=OTHER); Sun, 17 Apr 2016 18:40:29 -0700 (PDT) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.0 In-Reply-To: <87bn5bc8zx.fsf@gmx.de> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.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" Xref: news.gmane.org gmane.emacs.bugs:116580 Archived-At: This is a multi-part message in MIME format. --------------DB0FE32629F9B3356DF597B5 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit On 04/15/2016 04:11 PM, Michael Albinus wrote: > I would prefer to apply further patches to the master branch only. Only > patches absolutely necessary for fixing problems shall go to the > emacs-25 branch, in order not to threaten the release. > > After applying your patch, vc-tests.el fails for me in vc-test-src02-state > and vc-test-rcs03-working-revision. Here's the patch against master. The latter one doesn't fail there. Could you handle the SRC test failure yourself? Either by fixing the relevant code, or by simply exempting SRC from the relevant check. --------------DB0FE32629F9B3356DF597B5 Content-Type: text/x-patch; name="vc-backend-and-vc-tests.diff" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="vc-backend-and-vc-tests.diff" diff --git a/lisp/vc/vc-hooks.el b/lisp/vc/vc-hooks.el index 4c0161d..43cbb3f 100644 --- a/lisp/vc/vc-hooks.el +++ b/lisp/vc/vc-hooks.el @@ -476,7 +476,7 @@ vc-state ;; - `copied' and `moved' (might be handled by `removed' and `added') (or (vc-file-getprop file 'vc-state) (when (> (length file) 0) ;Why?? --Stef - (setq backend (or backend (vc-responsible-backend file))) + (setq backend (or backend (vc-backend file))) (when backend (vc-state-refresh file backend))))) @@ -495,7 +495,7 @@ vc-working-revision If FILE is not registered, this function always returns nil." (or (vc-file-getprop file 'vc-working-revision) (progn - (setq backend (or backend (vc-responsible-backend file))) + (setq backend (or backend (vc-backend file))) (when backend (vc-file-setprop file 'vc-working-revision (vc-call-backend backend 'working-revision file)))))) diff --git a/test/lisp/vc/vc-tests.el b/test/lisp/vc/vc-tests.el index 2b3445a..cabd560 100644 --- a/test/lisp/vc/vc-tests.el +++ b/test/lisp/vc/vc-tests.el @@ -205,16 +205,10 @@ vc-test--create-repo (defun vc-test--unregister-function (backend file) "Run the `vc-unregister' backend function. For backends which dont support it, `vc-not-supported' is signalled." - - (unwind-protect - (let ((symbol (intern (downcase (format "vc-%s-unregister" backend))))) - (if (functionp symbol) - (funcall symbol file) - ;; CVS, SVN, SCCS, SRC and Mtn are not supported. - (signal 'vc-not-supported (list 'unregister backend)))) - - ;; FIXME This shall be called in `vc-unregister'. - (vc-file-clearprops file))) + ;; CVS, SVN, SCCS, SRC and Mtn are not supported, and will signal + ;; `vc-not-supported'. + (vc-call-backend backend 'unregister file) + (vc-file-clearprops file)) (defun vc-test--register (backend) "Register and unregister a file. @@ -312,43 +306,30 @@ vc-test--state 'vc-test--cleanup-hook `(lambda () (delete-directory ,default-directory 'recursive))) - ;; Create empty repository. Check repository state. + ;; Create empty repository. (make-directory default-directory) (vc-test--create-repo-function backend) - ;; nil: Hg Mtn RCS - ;; added: Git - ;; unregistered: CVS SCCS SRC - ;; up-to-date: Bzr SVN - (message "vc-state1 %s" (vc-state default-directory)) - (should (eq (vc-state default-directory) - (vc-state default-directory backend))) - (should (memq (vc-state default-directory) - '(nil added unregistered up-to-date))) - (let ((tmp-name (expand-file-name "foo" default-directory))) - ;; Check state of an empty file. + ;; Check state of a nonexistent file. - ;; nil: Hg Mtn SRC SVN + (message "vc-state2 %s" (vc-state tmp-name)) + ;; FIXME: ;; added: Git ;; unregistered: RCS SCCS ;; up-to-date: Bzr CVS - (message "vc-state2 %s" (vc-state tmp-name)) - (should (eq (vc-state tmp-name) (vc-state tmp-name backend))) - (should (memq (vc-state tmp-name) - '(nil added unregistered up-to-date))) + ;; (should (eq (vc-state tmp-name) (vc-state tmp-name backend))) + (should (null (vc-state tmp-name))) ;; Write a new file. Check state. (write-region "foo" nil tmp-name nil 'nomessage) - ;; nil: Mtn - ;; added: Git - ;; unregistered: Hg RCS SCCS SRC SVN - ;; up-to-date: Bzr CVS (message "vc-state3 %s" (vc-state tmp-name)) - (should (eq (vc-state tmp-name) (vc-state tmp-name backend))) - (should (memq (vc-state tmp-name) - '(nil added unregistered up-to-date))) + ;; FIXME: + ;; added: Git + ;; unregistered: Bzr Hg RCS SCCS SRC SVN CVS + ;; (should (eq (vc-state tmp-name) (vc-state tmp-name backend))) + (should (null (vc-state tmp-name))) ;; Register a file. Check state. (vc-register @@ -359,21 +340,20 @@ vc-test--state ;; up-to-date: Bzr CVS (message "vc-state4 %s" (vc-state tmp-name)) (should (eq (vc-state tmp-name) (vc-state tmp-name backend))) - (should (memq (vc-state tmp-name) '(added unregistered up-to-date))) + (should (memq (vc-state tmp-name) '(added up-to-date))) ;; Unregister the file. Check state. (condition-case err (progn (vc-test--unregister-function backend tmp-name) - ;; added: Git - ;; unregistered: Hg RCS ;; unsupported: CVS Mtn SCCS SRC SVN - ;; up-to-date: Bzr (message "vc-state5 %s" (vc-state tmp-name)) - (should (eq (vc-state tmp-name) (vc-state tmp-name backend))) - (should (memq (vc-state tmp-name) - '(added unregistered up-to-date)))) + ;; FIXME: + ;; added: Git + ;; unregistered: Hg RCS Bzr + ;; (should (eq (vc-state tmp-name) (vc-state tmp-name backend))) + (should (null (vc-state tmp-name)))) (vc-not-supported (message "vc-state5 unsupported")) (t (signal (car err) (cdr err)))))) @@ -406,8 +386,8 @@ vc-test--working-revision ;; "0": Bzr Hg SRC SVN (message "vc-working-revision1 %s" (vc-working-revision default-directory)) - (should (eq (vc-working-revision default-directory) - (vc-working-revision default-directory backend))) + ;; (should (eq (vc-working-revision default-directory) + ;; (vc-working-revision default-directory backend))) (should (member (vc-working-revision default-directory) '(nil "0"))) (let ((tmp-name (expand-file-name "foo" default-directory))) @@ -417,8 +397,8 @@ vc-test--working-revision ;; nil: CVS Git Mtn RCS SCCS SVN ;; "0": Bzr Hg SRC (message "vc-working-revision2 %s" (vc-working-revision tmp-name)) - (should (eq (vc-working-revision tmp-name) - (vc-working-revision tmp-name backend))) + ;; (should (eq (vc-working-revision tmp-name) + ;; (vc-working-revision tmp-name backend))) (should (member (vc-working-revision tmp-name) '(nil "0"))) ;; Write a new file. Check working revision. @@ -427,8 +407,8 @@ vc-test--working-revision ;; nil: CVS Git Mtn RCS SCCS SVN ;; "0": Bzr Hg SRC (message "vc-working-revision3 %s" (vc-working-revision tmp-name)) - (should (eq (vc-working-revision tmp-name) - (vc-working-revision tmp-name backend))) + ;; (should (eq (vc-working-revision tmp-name) + ;; (vc-working-revision tmp-name backend))) (should (member (vc-working-revision tmp-name) '(nil "0"))) ;; Register a file. Check working revision. @@ -439,22 +419,22 @@ vc-test--working-revision ;; "0": Bzr CVS Hg SRC SVN ;; "1.1" RCS SCCS (message "vc-working-revision4 %s" (vc-working-revision tmp-name)) - (should (eq (vc-working-revision tmp-name) - (vc-working-revision tmp-name backend))) + ;; (should (eq (vc-working-revision tmp-name) + ;; (vc-working-revision tmp-name backend))) (should (member (vc-working-revision tmp-name) '(nil "0" "1.1"))) ;; Unregister the file. Check working revision. (condition-case err (progn - (vc-test--unregister-function backend tmp-name) + (vc-test--unregister-function backend tmp-name) ;; nil: Git RCS ;; "0": Bzr Hg ;; unsupported: CVS Mtn SCCS SRC SVN (message "vc-working-revision5 %s" (vc-working-revision tmp-name)) - (should (eq (vc-working-revision tmp-name) - (vc-working-revision tmp-name backend))) + ;; (should (eq (vc-working-revision tmp-name) + ;; (vc-working-revision tmp-name backend))) (should (member (vc-working-revision tmp-name) '(nil "0")))) (vc-not-supported (message "vc-working-revision5 unsupported")) (t (signal (car err) (cdr err)))))) --------------DB0FE32629F9B3356DF597B5--