From unknown Fri Aug 08 19:15:00 2025 X-Loop: help-debbugs@gnu.org Subject: bug#33650: 27.0.50; Root diffs between revisions Resent-From: Juri Linkov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 06 Dec 2018 22:33:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 33650 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 33650@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.154413556121756 (code B ref -1); Thu, 06 Dec 2018 22:33:01 +0000 Received: (at submit) by debbugs.gnu.org; 6 Dec 2018 22:32:41 +0000 Received: from localhost ([127.0.0.1]:36102 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gV2CG-0005eq-Ra for submit@debbugs.gnu.org; Thu, 06 Dec 2018 17:32:41 -0500 Received: from eggs.gnu.org ([208.118.235.92]:40719) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gV2CF-0005eN-Hs for submit@debbugs.gnu.org; Thu, 06 Dec 2018 17:32:40 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gV2C9-0003CB-Gy for submit@debbugs.gnu.org; Thu, 06 Dec 2018 17:32:34 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=BAYES_20 autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:54471) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gV2C9-0003Bz-Ba for submit@debbugs.gnu.org; Thu, 06 Dec 2018 17:32:33 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50317) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gV2C8-0004JX-CV for bug-gnu-emacs@gnu.org; Thu, 06 Dec 2018 17:32:33 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gV2C5-0003Ah-74 for bug-gnu-emacs@gnu.org; Thu, 06 Dec 2018 17:32:32 -0500 Received: from bonobo.maple.relay.mailchannels.net ([23.83.214.22]:26276) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gV2C4-000393-OS for bug-gnu-emacs@gnu.org; Thu, 06 Dec 2018 17:32:29 -0500 X-Sender-Id: dreamhost|x-authsender|jurta@jurta.org Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id CC241124EC3 for ; Thu, 6 Dec 2018 22:32:26 +0000 (UTC) Received: from pdx1-sub0-mail-a68.g.dreamhost.com (unknown [100.96.19.74]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id 6AE361248DD for ; Thu, 6 Dec 2018 22:32:26 +0000 (UTC) X-Sender-Id: dreamhost|x-authsender|jurta@jurta.org Received: from pdx1-sub0-mail-a68.g.dreamhost.com (pop.dreamhost.com [64.90.62.162]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384) by 0.0.0.0:2500 (trex/5.16.2); Thu, 06 Dec 2018 22:32:26 +0000 X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|jurta@jurta.org X-MailChannels-Auth-Id: dreamhost X-Thoughtful-Drop: 1770699e5a62dfaa_1544135546610_2585954548 X-MC-Loop-Signature: 1544135546610:4002368647 X-MC-Ingress-Time: 1544135546610 Received: from pdx1-sub0-mail-a68.g.dreamhost.com (localhost [127.0.0.1]) by pdx1-sub0-mail-a68.g.dreamhost.com (Postfix) with ESMTP id 1BBEC7FE3E for ; Thu, 6 Dec 2018 14:32:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=linkov.net; h=from:to :subject:date:message-id:mime-version:content-type; s= linkov.net; bh=CAv9YdVUXWoXd7kBAkQ4G68bngU=; b=xmaCqauiy5qEDsCNN q86n3ZTLB/j3GScvGsCZOwR8JUBjnbhSoM3OgMjS/2R+9K1yCsWrjCDDip6uyTB9 QetoZW0M38bBZr9g7JBNwNiNvNjNruV9nIOUYDQAQ4ciXFqTmjDRvnB/ozOQ2//a d7gEh33Sf8v/gKD0tnylYtV0CU= Received: from mail.jurta.org (m91-129-103-7.cust.tele2.ee [91.129.103.7]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: jurta@jurta.org) by pdx1-sub0-mail-a68.g.dreamhost.com (Postfix) with ESMTPSA id 3A04D7FE3D for ; Thu, 6 Dec 2018 14:32:24 -0800 (PST) X-DH-BACKEND: pdx1-sub0-mail-a68 From: Juri Linkov Organization: LINKOV.NET Date: Thu, 06 Dec 2018 23:54:16 +0200 Message-ID: <87d0qe8gon.fsf@mail.linkov.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-VR-OUT-STATUS: OK X-VR-OUT-SCORE: 0 X-VR-OUT-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedtkedrudefjedgudeiudcutefuodetggdotefrodftvfcurfhrohhfihhlvgemucggtfgfnhhsuhgsshgtrhhisggvpdfftffgtefojffquffvnecuuegrihhlohhuthemuceftddtnecunecujfgurhephffvufhofffkfgggtgesmhdtreertdertdenucfhrhhomheplfhurhhiucfnihhnkhhovhcuoehjuhhriheslhhinhhkohhvrdhnvghtqeenucfkphepledurdduvdelrddutdefrdejnecurfgrrhgrmhepmhhouggvpehsmhhtphdphhgvlhhopehmrghilhdrjhhurhhtrgdrohhrghdpihhnvghtpeeluddruddvledruddtfedrjedprhgvthhurhhnqdhprghthheplfhurhhiucfnihhnkhhovhcuoehjuhhriheslhhinhhkohhvrdhnvghtqedpmhgrihhlfhhrohhmpehjuhhriheslhhinhhkohhvrdhnvghtpdhnrhgtphhtthhopegsuhhgqdhgnhhuqdgvmhgrtghssehgnhhurdhorhhgnecuvehluhhsthgvrhfuihiivgeptd X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) --=-=-= Content-Type: text/plain A VC command that still doesn't allow using diff-mode automatically thus preventing proper fontification and all other related features is `vc-root-diff' with a prefix argument HISTORIC. It has such comment: ;; FIXME: this does not work right, `vc-version-diff' ends up ;; calling `vc-deduce-fileset' to find the files to diff, and ;; that's not what we want here, we want the diff for the VC root dir. This patch fixes this omission by implementing `vc-root-version-diff' that is able to compare two revisions even on separate branches from their roots: --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=vc-root-version-diff.patch diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el index de43544864..74979e7381 100644 --- a/lisp/vc/vc.el +++ b/lisp/vc/vc.el @@ -1827,6 +1827,28 @@ vc-version-diff (vc-diff-internal t (vc-deduce-fileset t) rev1 rev2 (called-interactively-p 'interactive))) +;;;###autoload +(defun vc-root-version-diff (_files rev1 rev2) + "Report diffs between revisions of the whole tree in the repository history." + (interactive (vc-diff-build-argument-list-internal)) + ;; This is a mix of `vc-root-diff' and `vc-version-diff' + (when (and (not rev1) rev2) + (error "Not a valid revision range")) + (let ((backend (vc-deduce-backend)) + (default-directory default-directory) + rootdir) + (if backend + (setq rootdir (vc-call-backend backend 'root default-directory)) + (setq rootdir (read-directory-name "Directory for VC root-diff: ")) + (setq backend (vc-responsible-backend rootdir)) + (if backend + (setq default-directory rootdir) + (error "Directory is not version controlled"))) + (let ((default-directory rootdir)) + (vc-diff-internal + t (list backend (list rootdir)) rev1 rev2 + (called-interactively-p 'interactive))))) + ;;;###autoload (defun vc-diff (&optional historic not-urgent) "Display diffs between file revisions. @@ -1900,10 +1922,8 @@ vc-root-diff saving the buffer." (interactive (list current-prefix-arg t)) (if historic - ;; FIXME: this does not work right, `vc-version-diff' ends up - ;; calling `vc-deduce-fileset' to find the files to diff, and - ;; that's not what we want here, we want the diff for the VC root dir. - (call-interactively 'vc-version-diff) + ;; We want the diff for the VC root dir. + (call-interactively 'vc-root-version-diff) (when buffer-file-name (vc-buffer-sync not-urgent)) (let ((backend (vc-deduce-backend)) (default-directory default-directory) --=-=-=-- From unknown Fri Aug 08 19:15:00 2025 X-Loop: help-debbugs@gnu.org Subject: bug#33650: 27.0.50; Root diffs between revisions Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 07 Dec 2018 06:42:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 33650 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Juri Linkov Cc: 33650@debbugs.gnu.org Received: via spool by 33650-submit@debbugs.gnu.org id=B33650.154416491528343 (code B ref 33650); Fri, 07 Dec 2018 06:42:02 +0000 Received: (at 33650) by debbugs.gnu.org; 7 Dec 2018 06:41:55 +0000 Received: from localhost ([127.0.0.1]:36231 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gV9ph-0007N4-Mw for submit@debbugs.gnu.org; Fri, 07 Dec 2018 01:41:55 -0500 Received: from eggs.gnu.org ([208.118.235.92]:41130) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gV9pf-0007Mr-WB for 33650@debbugs.gnu.org; Fri, 07 Dec 2018 01:41:52 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gV9pX-0000SG-Gs for 33650@debbugs.gnu.org; Fri, 07 Dec 2018 01:41:46 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:32784) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gV9pX-0000S4-BK; Fri, 07 Dec 2018 01:41:43 -0500 Received: from [176.228.60.248] (port=3705 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1gV9pW-00008j-T8; Fri, 07 Dec 2018 01:41:43 -0500 Date: Fri, 07 Dec 2018 08:41:44 +0200 Message-Id: <831s6t7s9j.fsf@gnu.org> From: Eli Zaretskii In-reply-to: <87d0qe8gon.fsf@mail.linkov.net> (message from Juri Linkov on Thu, 06 Dec 2018 23:54:16 +0200) References: <87d0qe8gon.fsf@mail.linkov.net> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) > From: Juri Linkov > Date: Thu, 06 Dec 2018 23:54:16 +0200 > > This patch fixes this omission by implementing `vc-root-version-diff' > that is able to compare two revisions even on separate branches from > their roots: Thanks. A few comments: > +(defun vc-root-version-diff (_files rev1 rev2) > + "Report diffs between revisions of the whole tree in the repository history." This doc string doesn't describe the arguments, and doesn't tell how those arguments are populated in interactive invocations. I also wonder what would this mean for a VCS such as CVS or RCS, where there's no meaning of a "tree revision". I'm guessing this is why the old code deduced files to diff. See also the description of vc-diff in the Emacs manual. Finally, we need documentation changes to go with this change of user-visible behavior. From unknown Fri Aug 08 19:15:00 2025 X-Loop: help-debbugs@gnu.org Subject: bug#33650: 27.0.50; Root diffs between revisions Resent-From: Juri Linkov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 09 Dec 2018 00:14:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 33650 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii Cc: 33650@debbugs.gnu.org Received: via spool by 33650-submit@debbugs.gnu.org id=B33650.15443144184693 (code B ref 33650); Sun, 09 Dec 2018 00:14:03 +0000 Received: (at 33650) by debbugs.gnu.org; 9 Dec 2018 00:13:38 +0000 Received: from localhost ([127.0.0.1]:39027 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gVmj4-0001Dd-0b for submit@debbugs.gnu.org; Sat, 08 Dec 2018 19:13:38 -0500 Received: from catfish.maple.relay.mailchannels.net ([23.83.214.32]:46884) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gVmj2-0001DR-8j for 33650@debbugs.gnu.org; Sat, 08 Dec 2018 19:13:36 -0500 X-Sender-Id: dreamhost|x-authsender|jurta@jurta.org Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id 246683E3E77; Sun, 9 Dec 2018 00:13:35 +0000 (UTC) Received: from pdx1-sub0-mail-a20.g.dreamhost.com (unknown [100.96.35.77]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id C86153E3D3B; Sun, 9 Dec 2018 00:13:34 +0000 (UTC) X-Sender-Id: dreamhost|x-authsender|jurta@jurta.org Received: from pdx1-sub0-mail-a20.g.dreamhost.com (pop.dreamhost.com [64.90.62.162]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384) by 0.0.0.0:2500 (trex/5.16.2); Sun, 09 Dec 2018 00:13:35 +0000 X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|jurta@jurta.org X-MailChannels-Auth-Id: dreamhost X-Eyes-Harmony: 47f11fec2d0f1be6_1544314414938_902544820 X-MC-Loop-Signature: 1544314414938:34521423 X-MC-Ingress-Time: 1544314414937 Received: from pdx1-sub0-mail-a20.g.dreamhost.com (localhost [127.0.0.1]) by pdx1-sub0-mail-a20.g.dreamhost.com (Postfix) with ESMTP id 63D5A80761; Sat, 8 Dec 2018 16:13:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=linkov.net; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; s=linkov.net; bh=frb4cQcg/eq02AjhBaGiOE7T8/g=; b= ubyZYvQ7M2DXwTYvSzcKlBBHqNoBI5XJ4W8bV39UN37q6qBdAnWiOciMocJzOPIN qzhERbPlkW8ynxdbGuPyjrtYS1nLKYrnRH6Daq8489+LAmnk4ymaJlgNVPoLlA88 CZbCkc8osrtdBa8BnHytxrNRVz1WpdHhIpLjPiMhvDo= Received: from mail.jurta.org (m91-129-103-7.cust.tele2.ee [91.129.103.7]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: jurta@jurta.org) by pdx1-sub0-mail-a20.g.dreamhost.com (Postfix) with ESMTPSA id 02F9280760; Sat, 8 Dec 2018 16:13:32 -0800 (PST) X-DH-BACKEND: pdx1-sub0-mail-a20 From: Juri Linkov Organization: LINKOV.NET References: <87d0qe8gon.fsf@mail.linkov.net> <831s6t7s9j.fsf@gnu.org> Date: Sun, 09 Dec 2018 01:32:47 +0200 In-Reply-To: <831s6t7s9j.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 07 Dec 2018 08:41:44 +0200") Message-ID: <87va431t6w.fsf@mail.linkov.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-VR-OUT-STATUS: OK X-VR-OUT-SCORE: -100 X-VR-OUT-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedtkedrudeguddgudekfecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucggtfgfnhhsuhgsshgtrhhisggvpdfftffgtefojffquffvnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjughrpefhvffuohhfffgjkfgfgggtsehmtderredtreejnecuhfhrohhmpefluhhrihcunfhinhhkohhvuceojhhurhhisehlihhnkhhovhdrnhgvtheqnecukfhppeeluddruddvledruddtfedrjeenucfrrghrrghmpehmohguvgepshhmthhppdhhvghlohepmhgrihhlrdhjuhhrthgrrdhorhhgpdhinhgvthepledurdduvdelrddutdefrdejpdhrvghtuhhrnhdqphgrthhhpefluhhrihcunfhinhhkohhvuceojhhurhhisehlihhnkhhovhdrnhgvtheqpdhmrghilhhfrhhomhepjhhurhhisehlihhnkhhovhdrnhgvthdpnhhrtghpthhtohepvghlihiisehgnhhurdhorhhgnecuvehluhhsthgvrhfuihiivgeptd X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable >> +(defun vc-root-version-diff (_files rev1 rev2) >> + "Report diffs between revisions of the whole tree in the repository= history." > > This doc string doesn't describe the arguments, and doesn't tell how > those arguments are populated in interactive invocations. I copied the doc string from `vc-version-diff' that doesn't describe its arguments. Now I fixed the doc string of `vc-version-diff' as well below= . > I also wonder what would this mean for a VCS such as CVS or RCS, where > there's no meaning of a "tree revision". I'm guessing this is why the > old code deduced files to diff. See also the description of vc-diff > in the Emacs manual. `vc-root-diff' is not applicable to VCS without tree revisions, and the manual says nothing about this. Maybe the manual should say this explicitly for `vc-root-diff' as it says it for `vc-print-root-log' in (info "(emacs) VC Change Log") =E2=80=98C-x v L=E2=80=99 (=E2=80=98vc-print-root-log=E2=80=99) disp= lays a =E2=80=98*vc-change-log*=E2=80=99 buffer showing the history of the entire version-controlled directory tree (RCS, SCCS, CVS, and SRC do not support this feature). > Finally, we need documentation changes to go with this change of > user-visible behavior. This feature is already documented in (info "(emacs) Old Revisions") =E2=80=98C-x v D=E2=80=99 Compare the entire working tree to the revision you started from (=E2=80=98vc-root-diff=E2=80=99). With a prefix argument, prompt = for two revisions and compare their trees. It didn't work as documented before properly implemented by the patch. --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=vc-root-version-diff.2.patch diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el index dbbc3e2038..ba410dca0e 100644 --- a/lisp/vc/vc.el +++ b/lisp/vc/vc.el @@ -1817,7 +1817,8 @@ vc-diff-build-argument-list-internal ;;;###autoload (defun vc-version-diff (_files rev1 rev2) - "Report diffs between revisions of the fileset in the repository history." + "Report diffs between revisions of the fileset in the repository history. +REV1 is an older revision, REV2 is a newer revision." (interactive (vc-diff-build-argument-list-internal)) ;; All that was just so we could do argument completion! (when (and (not rev1) rev2) @@ -1827,6 +1828,29 @@ vc-version-diff (vc-diff-internal t (vc-deduce-fileset t) rev1 rev2 (called-interactively-p 'interactive))) +;;;###autoload +(defun vc-root-version-diff (_files rev1 rev2) + "Report diffs between revisions of the whole tree in the repository history. +REV1 is an older revision, REV2 is a newer revision." + (interactive (vc-diff-build-argument-list-internal)) + ;; This is a mix of `vc-root-diff' and `vc-version-diff' + (when (and (not rev1) rev2) + (error "Not a valid revision range")) + (let ((backend (vc-deduce-backend)) + (default-directory default-directory) + rootdir) + (if backend + (setq rootdir (vc-call-backend backend 'root default-directory)) + (setq rootdir (read-directory-name "Directory for VC root-diff: ")) + (setq backend (vc-responsible-backend rootdir)) + (if backend + (setq default-directory rootdir) + (error "Directory is not version controlled"))) + (let ((default-directory rootdir)) + (vc-diff-internal + t (list backend (list rootdir)) rev1 rev2 + (called-interactively-p 'interactive))))) + ;;;###autoload (defun vc-diff (&optional historic not-urgent) "Display diffs between file revisions. @@ -1900,10 +1924,8 @@ vc-root-diff saving the buffer." (interactive (list current-prefix-arg t)) (if historic - ;; FIXME: this does not work right, `vc-version-diff' ends up - ;; calling `vc-deduce-fileset' to find the files to diff, and - ;; that's not what we want here, we want the diff for the VC root dir. - (call-interactively 'vc-version-diff) + ;; We want the diff for the VC root dir. + (call-interactively 'vc-root-version-diff) (when buffer-file-name (vc-buffer-sync not-urgent)) (let ((backend (vc-deduce-backend)) (default-directory default-directory) --=-=-=-- From unknown Fri Aug 08 19:15:00 2025 X-Loop: help-debbugs@gnu.org Subject: bug#33650: 27.0.50; Root diffs between revisions Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 09 Dec 2018 08:23:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 33650 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Juri Linkov Cc: 33650@debbugs.gnu.org Received: via spool by 33650-submit@debbugs.gnu.org id=B33650.154434374920051 (code B ref 33650); Sun, 09 Dec 2018 08:23:02 +0000 Received: (at 33650) by debbugs.gnu.org; 9 Dec 2018 08:22:29 +0000 Received: from localhost ([127.0.0.1]:39187 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gVuM9-0005DJ-3S for submit@debbugs.gnu.org; Sun, 09 Dec 2018 03:22:29 -0500 Received: from eggs.gnu.org ([208.118.235.92]:33829) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gVuM5-0005D5-Lc for 33650@debbugs.gnu.org; Sun, 09 Dec 2018 03:22:28 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gVuLx-0003XO-Db for 33650@debbugs.gnu.org; Sun, 09 Dec 2018 03:22:20 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=BAYES_20 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:36533) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gVuLx-0003XK-9S; Sun, 09 Dec 2018 03:22:17 -0500 Received: from [176.228.60.248] (port=2908 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1gVuLw-0008Bu-SG; Sun, 09 Dec 2018 03:22:17 -0500 Date: Sun, 09 Dec 2018 10:22:01 +0200 Message-Id: <835zw33yae.fsf@gnu.org> From: Eli Zaretskii In-reply-to: <87va431t6w.fsf@mail.linkov.net> (message from Juri Linkov on Sun, 09 Dec 2018 01:32:47 +0200) References: <87d0qe8gon.fsf@mail.linkov.net> <831s6t7s9j.fsf@gnu.org> <87va431t6w.fsf@mail.linkov.net> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) > From: Juri Linkov > Cc: 33650@debbugs.gnu.org > Date: Sun, 09 Dec 2018 01:32:47 +0200 > > > I also wonder what would this mean for a VCS such as CVS or RCS, where > > there's no meaning of a "tree revision". I'm guessing this is why the > > old code deduced files to diff. See also the description of vc-diff > > in the Emacs manual. > > `vc-root-diff' is not applicable to VCS without tree revisions, and > the manual says nothing about this. Maybe the manual should say this > explicitly for `vc-root-diff' as it says it for `vc-print-root-log' > in (info "(emacs) VC Change Log") Yes, we should say that. > > Finally, we need documentation changes to go with this change of > > user-visible behavior. > > This feature is already documented in (info "(emacs) Old Revisions") > > ‘C-x v D’ > Compare the entire working tree to the revision you started from > (‘vc-root-diff’). With a prefix argument, prompt for two revisions > and compare their trees. > > It didn't work as documented before properly implemented by the patch. Isn't the result user-visible change in behavior? > (defun vc-version-diff (_files rev1 rev2) > - "Report diffs between revisions of the fileset in the repository history." > + "Report diffs between revisions of the fileset in the repository history. > +REV1 is an older revision, REV2 is a newer revision." We usually mention the arguments in the first line of the doc string. Something like this: Report diffs between revisions REV1 and REV2 in the repository history. I wonder whether "fileset" needs to be mentioned at all, given your changes. When does any "fileset" come into play here? > +(defun vc-root-version-diff (_files rev1 rev2) > + "Report diffs between revisions of the whole tree in the repository history. > +REV1 is an older revision, REV2 is a newer revision." Same here: please mention the arguments in the first sentence. > + (if backend > + (setq rootdir (vc-call-backend backend 'root default-directory)) There's a TAB at the beginning of this line which should be spaces. Thanks. From unknown Fri Aug 08 19:15:00 2025 X-Loop: help-debbugs@gnu.org Subject: bug#33650: 27.0.50; Root diffs between revisions Resent-From: Juri Linkov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 10 Dec 2018 00:38:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 33650 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii Cc: 33650@debbugs.gnu.org Received: via spool by 33650-submit@debbugs.gnu.org id=B33650.154440223017668 (code B ref 33650); Mon, 10 Dec 2018 00:38:03 +0000 Received: (at 33650) by debbugs.gnu.org; 10 Dec 2018 00:37:10 +0000 Received: from localhost ([127.0.0.1]:40441 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gW9ZN-0004ar-OW for submit@debbugs.gnu.org; Sun, 09 Dec 2018 19:37:10 -0500 Received: from golden.birch.relay.mailchannels.net ([23.83.209.73]:35588) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gW9ZL-0004ae-I7 for 33650@debbugs.gnu.org; Sun, 09 Dec 2018 19:37:08 -0500 X-Sender-Id: dreamhost|x-authsender|jurta@jurta.org Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id 3F2AB3E66B5; Mon, 10 Dec 2018 00:37:06 +0000 (UTC) Received: from pdx1-sub0-mail-a47.g.dreamhost.com (unknown [100.96.19.74]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id E9FAF3E36B1; Mon, 10 Dec 2018 00:37:05 +0000 (UTC) X-Sender-Id: dreamhost|x-authsender|jurta@jurta.org Received: from pdx1-sub0-mail-a47.g.dreamhost.com (pop.dreamhost.com [64.90.62.162]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384) by 0.0.0.0:2500 (trex/5.16.2); Mon, 10 Dec 2018 00:37:06 +0000 X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|jurta@jurta.org X-MailChannels-Auth-Id: dreamhost X-Well-Made-Duck: 772b44e15e6c3829_1544402226055_629348416 X-MC-Loop-Signature: 1544402226055:3287583377 X-MC-Ingress-Time: 1544402226054 Received: from pdx1-sub0-mail-a47.g.dreamhost.com (localhost [127.0.0.1]) by pdx1-sub0-mail-a47.g.dreamhost.com (Postfix) with ESMTP id A448A805B3; Sun, 9 Dec 2018 16:37:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=linkov.net; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; s=linkov.net; bh=DJvTr1POs5UuAk2EWCTeiggEdt4=; b= ZJ4+xpxZhAlK4qJupc3auJrykAN9rfQufoSQWSqerK23hLF5Sy8uQHKBgi5Dk1xP 9/ED8IleFCRlEuEbQO3Xt0+Ws7nxIgg5vjZmunKRe5ib4J/gw/JNcEnouUbLIOqa +LvebpZ+BmbJz/PQjxJQEmi7koxliVMIp8zZXQyaR5A= Received: from mail.jurta.org (m91-129-96-177.cust.tele2.ee [91.129.96.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: jurta@jurta.org) by pdx1-sub0-mail-a47.g.dreamhost.com (Postfix) with ESMTPSA id 5BB44805B0; Sun, 9 Dec 2018 16:37:03 -0800 (PST) X-DH-BACKEND: pdx1-sub0-mail-a47 From: Juri Linkov Organization: LINKOV.NET References: <87d0qe8gon.fsf@mail.linkov.net> <831s6t7s9j.fsf@gnu.org> <87va431t6w.fsf@mail.linkov.net> <835zw33yae.fsf@gnu.org> Date: Mon, 10 Dec 2018 02:04:30 +0200 In-Reply-To: <835zw33yae.fsf@gnu.org> (Eli Zaretskii's message of "Sun, 09 Dec 2018 10:22:01 +0200") Message-ID: <87efaqkzkp.fsf@mail.linkov.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-VR-OUT-STATUS: OK X-VR-OUT-SCORE: -100 X-VR-OUT-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedtkedrudeggedgvdeiucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuggftfghnshhusghstghrihgsvgdpffftgfetoffjqffuvfenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvufhofhffjgfkfgggtgesmhdtreertderjeenucfhrhhomheplfhurhhiucfnihhnkhhovhcuoehjuhhriheslhhinhhkohhvrdhnvghtqeenucfkphepledurdduvdelrdeliedrudejjeenucfrrghrrghmpehmohguvgepshhmthhppdhhvghlohepmhgrihhlrdhjuhhrthgrrdhorhhgpdhinhgvthepledurdduvdelrdeliedrudejjedprhgvthhurhhnqdhprghthheplfhurhhiucfnihhnkhhovhcuoehjuhhriheslhhinhhkohhvrdhnvghtqedpmhgrihhlfhhrohhmpehjuhhriheslhhinhhkohhvrdhnvghtpdhnrhgtphhtthhopegvlhhiiiesghhnuhdrohhrghenucevlhhushhtvghrufhiiigvpedt X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable >> > Finally, we need documentation changes to go with this change of >> > user-visible behavior. >> >> This feature is already documented in (info "(emacs) Old Revisions") >> >> =E2=80=98C-x v D=E2=80=99 >> Compare the entire working tree to the revision you started fro= m >> (=E2=80=98vc-root-diff=E2=80=99). With a prefix argument, prom= pt for two revisions >> and compare their trees. >> >> It didn't work as documented before properly implemented by the patch. > > Isn't the result user-visible change in behavior? Yes, this fix changes user-visible behavior, so perhaps it should be mentioned in NEWS. >> (defun vc-version-diff (_files rev1 rev2) >> - "Report diffs between revisions of the fileset in the repository hi= story." >> + "Report diffs between revisions of the fileset in the repository hi= story. >> +REV1 is an older revision, REV2 is a newer revision." > > We usually mention the arguments in the first line of the doc string. > Something like this: > > Report diffs between revisions REV1 and REV2 in the repository histor= y. > > I wonder whether "fileset" needs to be mentioned at all, given your > changes. When does any "fileset" come into play here? "fileset" is essential to be mentioned in `vc-version-diff' whereas the text "in the repository history" is unnecessary. >> +(defun vc-root-version-diff (_files rev1 rev2) >> + "Report diffs between revisions of the whole tree in the repository= history. >> +REV1 is an older revision, REV2 is a newer revision." > > Same here: please mention the arguments in the first sentence. As "fileset" is essential for `vc-version-diff', "whole tree" is essential for `vc-root-version-diff': --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=vc-root-version-diff.3.patch diff --git a/doc/emacs/maintaining.texi b/doc/emacs/maintaining.texi index 4527c23d9e..e92db9e419 100644 --- a/doc/emacs/maintaining.texi +++ b/doc/emacs/maintaining.texi @@ -774,8 +774,7 @@ Old Revisions @item C-x v D Compare the entire working tree to the revision you started from -(@code{vc-root-diff}). With a prefix argument, prompt for two -revisions and compare their trees. +(@code{vc-root-diff}). @item C-x v ~ Prompt for a revision of the current file, and visit it in a separate @@ -829,7 +828,9 @@ Old Revisions it displays the changes in the entire current working tree (i.e., the working tree containing the current VC fileset). If you invoke this command from a Dired buffer, it applies to the working tree containing -the directory. +the directory. With a prefix argument, prompt for two revisions and +compare the entire version-controlled directory trees (RCS, SCCS, CVS, +and SRC do not support this feature). @vindex vc-diff-switches You can customize the @command{diff} options that @kbd{C-x v =} and @@ -963,6 +964,7 @@ VC Change Log Directory Mode}) or a Dired buffer (@pxref{Dired}), it applies to the file listed on the current line. +@kindex C-x v L @findex vc-print-root-log @findex log-view-toggle-entry-display @kbd{C-x v L} (@code{vc-print-root-log}) displays a diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el index dbbc3e2038..5ff9f4d5be 100644 --- a/lisp/vc/vc.el +++ b/lisp/vc/vc.el @@ -1817,7 +1817,7 @@ vc-diff-build-argument-list-internal ;;;###autoload (defun vc-version-diff (_files rev1 rev2) - "Report diffs between revisions of the fileset in the repository history." + "Report diffs between REV1 and REV2 revisions of the fileset." (interactive (vc-diff-build-argument-list-internal)) ;; All that was just so we could do argument completion! (when (and (not rev1) rev2) @@ -1827,6 +1827,28 @@ vc-version-diff (vc-diff-internal t (vc-deduce-fileset t) rev1 rev2 (called-interactively-p 'interactive))) +;;;###autoload +(defun vc-root-version-diff (_files rev1 rev2) + "Report diffs between REV1 and REV2 revisions of the whole tree." + (interactive (vc-diff-build-argument-list-internal)) + ;; This is a mix of `vc-root-diff' and `vc-version-diff' + (when (and (not rev1) rev2) + (error "Not a valid revision range")) + (let ((backend (vc-deduce-backend)) + (default-directory default-directory) + rootdir) + (if backend + (setq rootdir (vc-call-backend backend 'root default-directory)) + (setq rootdir (read-directory-name "Directory for VC root-diff: ")) + (setq backend (vc-responsible-backend rootdir)) + (if backend + (setq default-directory rootdir) + (error "Directory is not version controlled"))) + (let ((default-directory rootdir)) + (vc-diff-internal + t (list backend (list rootdir)) rev1 rev2 + (called-interactively-p 'interactive))))) + ;;;###autoload (defun vc-diff (&optional historic not-urgent) "Display diffs between file revisions. @@ -1900,10 +1922,8 @@ vc-root-diff saving the buffer." (interactive (list current-prefix-arg t)) (if historic - ;; FIXME: this does not work right, `vc-version-diff' ends up - ;; calling `vc-deduce-fileset' to find the files to diff, and - ;; that's not what we want here, we want the diff for the VC root dir. - (call-interactively 'vc-version-diff) + ;; We want the diff for the VC root dir. + (call-interactively 'vc-root-version-diff) (when buffer-file-name (vc-buffer-sync not-urgent)) (let ((backend (vc-deduce-backend)) (default-directory default-directory) --=-=-=-- From unknown Fri Aug 08 19:15:00 2025 X-Loop: help-debbugs@gnu.org Subject: bug#33650: 27.0.50; Root diffs between revisions Resent-From: Dmitry Gutov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 10 Dec 2018 01:00:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 33650 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Juri Linkov , Eli Zaretskii Cc: 33650@debbugs.gnu.org Received: via spool by 33650-submit@debbugs.gnu.org id=B33650.154440356020041 (code B ref 33650); Mon, 10 Dec 2018 01:00:02 +0000 Received: (at 33650) by debbugs.gnu.org; 10 Dec 2018 00:59:20 +0000 Received: from localhost ([127.0.0.1]:40517 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gW9up-0005DB-UL for submit@debbugs.gnu.org; Sun, 09 Dec 2018 19:59:20 -0500 Received: from mail-wr1-f48.google.com ([209.85.221.48]:41744) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gW9uo-0005Cy-0K for 33650@debbugs.gnu.org; Sun, 09 Dec 2018 19:59:18 -0500 Received: by mail-wr1-f48.google.com with SMTP id x10so8769601wrs.8 for <33650@debbugs.gnu.org>; Sun, 09 Dec 2018 16:59:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=fRLAgsLvwsr/YCe3wtNCRvRMgbdRUUXUSGE9usf3xoU=; b=j15Yv9cWnUsotT+Aj8uoSE0Jn8FwXjn5sGY3ohB2odUPdNUFZWaWpzQnhkWg3MRTf0 rk9j5pEGkCnYKVV8wyR/A1s6Mbmv4y8/DKJpayrnGieToPtP145A0oIeDwm05Q8Vnd+g y0NcSGLqqSJdULB6WaliKvnzcT0X97q3zGKQv0WQl5o6nb7kEVhxddnwPI6ecHygjxdW A13BkKb+06dqoDkCWjCY/HVpouMQdtxZg7AMFe9UymPdOnt+tIHvTIxlie4rNrXO6LWi CR4AiFpMgDNZIarRMTveZBqZj4sMY1rp6GXgicdjAHaesERGpJ3tBoRD1Ppw4IizAHt9 h27Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:subject:to:cc:references:from:message-id :date:user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=fRLAgsLvwsr/YCe3wtNCRvRMgbdRUUXUSGE9usf3xoU=; b=W57LnxWZEkjKj5nKbP4WIl48cAflnL2UdvQwT7Oe8kfsjI84ZCco/zuex5sdj2kdxn M5GJVxp2hlTZ4++M/LG4JYo6vu34OH9hdg8BAd0/bjCb9532n+2z6+G3Z8JCbLZTFW4G 8WMmpvpqN04K4B+2Fk/C/307XMeA7M8fT1lwE1NeyxAOzVqbRto7+HfQs4lQHJl0nZqU mennj09wnC/o/KIijR/MWnTnZ549GhjqNfLrJhI4iKKkROG/WIO6hR3x6fJvDtSoe7B/ ELt3zXUxXiOoffdvrrjjLYu0Kr2Ju6PLZgVFLly0a2Phdg8tPi79kknn7vaqzbGCepY1 7YxQ== X-Gm-Message-State: AA+aEWbgf1F+nr6qWSmrD0tIfaRHf7CqIpi+AhSJ7piLZZ8GVtpaJwIY 61WD3KeEudFHZ1sm0LoWvW9KjnnI X-Google-Smtp-Source: AFSGD/WwPo0Oa53uMI/y9gPLOQQRaseuo3NyLrGmHbVzYQsXWSuIy3jJqg5qdQqgBhtlSvat8HfkgA== X-Received: by 2002:a5d:470b:: with SMTP id y11mr8120291wrq.16.1544403551868; Sun, 09 Dec 2018 16:59:11 -0800 (PST) Received: from [192.168.1.3] ([185.105.174.23]) by smtp.googlemail.com with ESMTPSA id c9sm16661164wmh.27.2018.12.09.16.59.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 09 Dec 2018 16:59:10 -0800 (PST) References: <87d0qe8gon.fsf@mail.linkov.net> <831s6t7s9j.fsf@gnu.org> <87va431t6w.fsf@mail.linkov.net> <835zw33yae.fsf@gnu.org> <87efaqkzkp.fsf@mail.linkov.net> From: Dmitry Gutov Message-ID: Date: Mon, 10 Dec 2018 02:59:08 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:64.0) Gecko/20100101 Thunderbird/64.0 MIME-Version: 1.0 In-Reply-To: <87efaqkzkp.fsf@mail.linkov.net> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: 0.1 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.9 (/) On 10.12.2018 2:04, Juri Linkov wrote: > @item C-x v D > Compare the entire working tree to the revision you started from > -(@code{vc-root-diff}). With a prefix argument, prompt for two > -revisions and compare their trees. > +(@code{vc-root-diff}). Why remove this part? Isn't it fixed in this patch? From unknown Fri Aug 08 19:15:00 2025 X-Loop: help-debbugs@gnu.org Subject: bug#33650: 27.0.50; Root diffs between revisions Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 10 Dec 2018 06:30:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 33650 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Juri Linkov Cc: 33650@debbugs.gnu.org Received: via spool by 33650-submit@debbugs.gnu.org id=B33650.154442336920948 (code B ref 33650); Mon, 10 Dec 2018 06:30:02 +0000 Received: (at 33650) by debbugs.gnu.org; 10 Dec 2018 06:29:29 +0000 Received: from localhost ([127.0.0.1]:40652 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gWF4L-0005Ro-Cc for submit@debbugs.gnu.org; Mon, 10 Dec 2018 01:29:29 -0500 Received: from eggs.gnu.org ([208.118.235.92]:43119) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gWF4J-0005Rc-Ow for 33650@debbugs.gnu.org; Mon, 10 Dec 2018 01:29:27 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gWF4B-0006a2-I1 for 33650@debbugs.gnu.org; Mon, 10 Dec 2018 01:29:22 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:58073) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gWF49-0006ZL-Mb; Mon, 10 Dec 2018 01:29:18 -0500 Received: from [176.228.60.248] (port=3827 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1gWF48-0007xF-On; Mon, 10 Dec 2018 01:29:17 -0500 Date: Mon, 10 Dec 2018 08:29:04 +0200 Message-Id: <83d0q93nf3.fsf@gnu.org> From: Eli Zaretskii In-reply-to: <87efaqkzkp.fsf@mail.linkov.net> (message from Juri Linkov on Mon, 10 Dec 2018 02:04:30 +0200) References: <87d0qe8gon.fsf@mail.linkov.net> <831s6t7s9j.fsf@gnu.org> <87va431t6w.fsf@mail.linkov.net> <835zw33yae.fsf@gnu.org> <87efaqkzkp.fsf@mail.linkov.net> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) > From: Juri Linkov > Cc: 33650@debbugs.gnu.org > Date: Mon, 10 Dec 2018 02:04:30 +0200 > > >> It didn't work as documented before properly implemented by the patch. > > > > Isn't the result user-visible change in behavior? > > Yes, this fix changes user-visible behavior, so perhaps it should be > mentioned in NEWS. I think so too. > > I wonder whether "fileset" needs to be mentioned at all, given your > > changes. When does any "fileset" come into play here? > > "fileset" is essential to be mentioned in `vc-version-diff' > whereas the text "in the repository history" is unnecessary. > > >> +(defun vc-root-version-diff (_files rev1 rev2) > >> + "Report diffs between revisions of the whole tree in the repository history. > >> +REV1 is an older revision, REV2 is a newer revision." > > > > Same here: please mention the arguments in the first sentence. > > As "fileset" is essential for `vc-version-diff', > "whole tree" is essential for `vc-root-version-diff': OK, thanks. From unknown Fri Aug 08 19:15:00 2025 X-Loop: help-debbugs@gnu.org Subject: bug#33650: 27.0.50; Root diffs between revisions Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 10 Dec 2018 06:32:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 33650 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Dmitry Gutov Cc: 33650@debbugs.gnu.org, juri@linkov.net Received: via spool by 33650-submit@debbugs.gnu.org id=B33650.154442347021468 (code B ref 33650); Mon, 10 Dec 2018 06:32:02 +0000 Received: (at 33650) by debbugs.gnu.org; 10 Dec 2018 06:31:10 +0000 Received: from localhost ([127.0.0.1]:40656 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gWF5x-0005aC-Pv for submit@debbugs.gnu.org; Mon, 10 Dec 2018 01:31:10 -0500 Received: from eggs.gnu.org ([208.118.235.92]:43712) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gWF5w-0005a0-U3 for 33650@debbugs.gnu.org; Mon, 10 Dec 2018 01:31:09 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gWF5m-0007Q3-GV for 33650@debbugs.gnu.org; Mon, 10 Dec 2018 01:31:01 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=BAYES_20 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:58116) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gWF5m-0007Pj-BD; Mon, 10 Dec 2018 01:30:58 -0500 Received: from [176.228.60.248] (port=3931 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1gWF5k-0001yZ-HQ; Mon, 10 Dec 2018 01:30:58 -0500 Date: Mon, 10 Dec 2018 08:30:43 +0200 Message-Id: <83bm5t3ncc.fsf@gnu.org> From: Eli Zaretskii In-reply-to: (message from Dmitry Gutov on Mon, 10 Dec 2018 02:59:08 +0200) References: <87d0qe8gon.fsf@mail.linkov.net> <831s6t7s9j.fsf@gnu.org> <87va431t6w.fsf@mail.linkov.net> <835zw33yae.fsf@gnu.org> <87efaqkzkp.fsf@mail.linkov.net> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) > Cc: 33650@debbugs.gnu.org > From: Dmitry Gutov > Date: Mon, 10 Dec 2018 02:59:08 +0200 > > On 10.12.2018 2:04, Juri Linkov wrote: > > @item C-x v D > > Compare the entire working tree to the revision you started from > > -(@code{vc-root-diff}). With a prefix argument, prompt for two > > -revisions and compare their trees. > > +(@code{vc-root-diff}). > > Why remove this part? Isn't it fixed in this patch? The above is the short summary of the command. The longer description does mention this feature. So I think this is in line with our style in describing commands in the manual. From unknown Fri Aug 08 19:15:00 2025 X-Loop: help-debbugs@gnu.org Subject: bug#33650: 27.0.50; Root diffs between revisions Resent-From: Juri Linkov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 10 Dec 2018 23:58:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 33650 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Dmitry Gutov Cc: 33650@debbugs.gnu.org, Eli Zaretskii Received: via spool by 33650-submit@debbugs.gnu.org id=B33650.154448623514135 (code B ref 33650); Mon, 10 Dec 2018 23:58:02 +0000 Received: (at 33650) by debbugs.gnu.org; 10 Dec 2018 23:57:15 +0000 Received: from localhost ([127.0.0.1]:42280 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gWVQI-0003fv-R6 for submit@debbugs.gnu.org; Mon, 10 Dec 2018 18:57:14 -0500 Received: from ladybird.maple.relay.mailchannels.net ([23.83.214.98]:44981) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gWVQF-0003fi-Vh for 33650@debbugs.gnu.org; Mon, 10 Dec 2018 18:57:12 -0500 X-Sender-Id: dreamhost|x-authsender|jurta@jurta.org Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id 77D315E2C9C; Mon, 10 Dec 2018 23:57:10 +0000 (UTC) Received: from pdx1-sub0-mail-a60.g.dreamhost.com (unknown [100.96.29.126]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id 3139A5E20B8; Mon, 10 Dec 2018 23:57:10 +0000 (UTC) X-Sender-Id: dreamhost|x-authsender|jurta@jurta.org Received: from pdx1-sub0-mail-a60.g.dreamhost.com (pop.dreamhost.com [64.90.62.162]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384) by 0.0.0.0:2500 (trex/5.16.2); Mon, 10 Dec 2018 23:57:10 +0000 X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|jurta@jurta.org X-MailChannels-Auth-Id: dreamhost X-Trail-Plucky: 00dfea133387622c_1544486230342_954784418 X-MC-Loop-Signature: 1544486230342:1913276538 X-MC-Ingress-Time: 1544486230342 Received: from pdx1-sub0-mail-a60.g.dreamhost.com (localhost [127.0.0.1]) by pdx1-sub0-mail-a60.g.dreamhost.com (Postfix) with ESMTP id C6F83805D5; Mon, 10 Dec 2018 15:57:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=linkov.net; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type:content-transfer-encoding; s=linkov.net; bh=cMF62M Nuk1rsokipmJqIrwtOjtQ=; b=gtEPzBfUOdGIhyYeUkMQrchFFwtleh4AuKedDO wAkuCfvWka111j31pD16Z45rKgsvxuB3b/gX6+h9WyvQGLM42Sh92XKaDmfgxJvU 4fHEO9kp72WybAoezLTWaRrGqxawN8ZWt/IglHpUuVBDzfueJSLs11NDSPc2ytS6 4zqSU= Received: from mail.jurta.org (m91-129-96-177.cust.tele2.ee [91.129.96.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: jurta@jurta.org) by pdx1-sub0-mail-a60.g.dreamhost.com (Postfix) with ESMTPSA id EDED5805E7; Mon, 10 Dec 2018 15:57:07 -0800 (PST) X-DH-BACKEND: pdx1-sub0-mail-a60 From: Juri Linkov Organization: LINKOV.NET References: <87d0qe8gon.fsf@mail.linkov.net> <831s6t7s9j.fsf@gnu.org> <87va431t6w.fsf@mail.linkov.net> <835zw33yae.fsf@gnu.org> <87efaqkzkp.fsf@mail.linkov.net> Date: Tue, 11 Dec 2018 01:55:00 +0200 In-Reply-To: (Dmitry Gutov's message of "Mon, 10 Dec 2018 02:59:08 +0200") Message-ID: <8736r5kkdn.fsf@mail.linkov.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 X-VR-OUT-STATUS: OK X-VR-OUT-SCORE: -100 X-VR-OUT-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedtkedrudegiedgudeiucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuggftfghnshhusghstghrihgsvgdpffftgfetoffjqffuvfenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvufhofhffjgfkfgggtgfgsehtkeertddtreejnecuhfhrohhmpefluhhrihcunfhinhhkohhvuceojhhurhhisehlihhnkhhovhdrnhgvtheqnecukfhppeeluddruddvledrleeirddujeejnecurfgrrhgrmhepmhhouggvpehsmhhtphdphhgvlhhopehmrghilhdrjhhurhhtrgdrohhrghdpihhnvghtpeeluddruddvledrleeirddujeejpdhrvghtuhhrnhdqphgrthhhpefluhhrihcunfhinhhkohhvuceojhhurhhisehlihhnkhhovhdrnhgvtheqpdhmrghilhhfrhhomhepjhhurhhisehlihhnkhhovhdrnhgvthdpnhhrtghpthhtohepughguhhtohhvseihrghnuggvgidrrhhunecuvehluhhsthgvrhfuihiivgeptd Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) >> @item C-x v D >> Compare the entire working tree to the revision you started from >> -(@code{vc-root-diff}). With a prefix argument, prompt for two >> -revisions and compare their trees. >> +(@code{vc-root-diff}). > > Why remove this part? Isn't it fixed in this patch? For consistency with =E2=80=98C-x v L=E2=80=99 (=E2=80=98vc-print-root-lo= g=E2=80=99) whose prefix argument is described in the longer description in (info "(emacs) VC Change Log") But since you asked I looked closer and see that e.g. a prefix argument of =E2=80=98C-x v =3D=E2=80=99 is described in the short summary in the s= ame node (info "(emacs) Old Revisions") =E2=80=98C-x v =3D=E2=80=99 Compare the work files in the current VC fileset with the versions you started from (=E2=80=98vc-diff=E2=80=99). With a prefix argum= ent, prompt for two revisions of the current VC fileset and compare them. So I installed something better. From unknown Fri Aug 08 19:15:00 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Juri Linkov Subject: bug#33650: closed (Re: bug#33650: 27.0.50; Root diffs between revisions) Message-ID: References: <87zhtdj5ss.fsf@mail.linkov.net> <87d0qe8gon.fsf@mail.linkov.net> X-Gnu-PR-Message: they-closed 33650 X-Gnu-PR-Package: emacs Reply-To: 33650@debbugs.gnu.org Date: Mon, 10 Dec 2018 23:58:04 +0000 Content-Type: multipart/mixed; boundary="----------=_1544486284-14248-1" This is a multi-part message in MIME format... ------------=_1544486284-14248-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #33650: 27.0.50; Root diffs between revisions which was filed against the emacs package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 33650@debbugs.gnu.org. --=20 33650: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D33650 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1544486284-14248-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 33650-done) by debbugs.gnu.org; 10 Dec 2018 23:57:19 +0000 Received: from localhost ([127.0.0.1]:42283 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gWVQN-0003gC-2c for submit@debbugs.gnu.org; Mon, 10 Dec 2018 18:57:19 -0500 Received: from lavender.maple.relay.mailchannels.net ([23.83.214.99]:37169) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gWVQK-0003g3-Jh for 33650-done@debbugs.gnu.org; Mon, 10 Dec 2018 18:57:17 -0500 X-Sender-Id: dreamhost|x-authsender|jurta@jurta.org Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id 649FE12516B; Mon, 10 Dec 2018 23:57:15 +0000 (UTC) Received: from pdx1-sub0-mail-a60.g.dreamhost.com (unknown [100.96.36.160]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id 150E012513A; Mon, 10 Dec 2018 23:57:15 +0000 (UTC) X-Sender-Id: dreamhost|x-authsender|jurta@jurta.org Received: from pdx1-sub0-mail-a60.g.dreamhost.com (pop.dreamhost.com [64.90.62.162]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384) by 0.0.0.0:2500 (trex/5.16.2); Mon, 10 Dec 2018 23:57:15 +0000 X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|jurta@jurta.org X-MailChannels-Auth-Id: dreamhost X-Desert-Scare: 14da78cd4fe2324b_1544486235203_375724505 X-MC-Loop-Signature: 1544486235202:2193614616 X-MC-Ingress-Time: 1544486235202 Received: from pdx1-sub0-mail-a60.g.dreamhost.com (localhost [127.0.0.1]) by pdx1-sub0-mail-a60.g.dreamhost.com (Postfix) with ESMTP id AAA1B805F1; Mon, 10 Dec 2018 15:57:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=linkov.net; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; s=linkov.net; bh=scl1gAqUT/SVFkt1v3Jp7XDyrv4=; b= nURV6SWjhuDhXm0Sm+rj8H/fvY3ezh63KqSlXQsCDgGkDqa7OatrlHepxCQSzXjh HSJT6USrUFSK4Nu9Vi0jqt5AbpAYvdO9xYU27gH/8lQWfeFSMgcUgsxR1dzoccPN C4vyzRr6yP5Lm/A7331kAhYweqPp/xDMs63thfgyHa4= Received: from mail.jurta.org (m91-129-96-177.cust.tele2.ee [91.129.96.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: jurta@jurta.org) by pdx1-sub0-mail-a60.g.dreamhost.com (Postfix) with ESMTPSA id 566F8805F0; Mon, 10 Dec 2018 15:57:12 -0800 (PST) X-DH-BACKEND: pdx1-sub0-mail-a60 From: Juri Linkov To: Eli Zaretskii Subject: Re: bug#33650: 27.0.50; Root diffs between revisions Organization: LINKOV.NET References: <87d0qe8gon.fsf@mail.linkov.net> <831s6t7s9j.fsf@gnu.org> <87va431t6w.fsf@mail.linkov.net> <835zw33yae.fsf@gnu.org> <87efaqkzkp.fsf@mail.linkov.net> <83d0q93nf3.fsf@gnu.org> Date: Tue, 11 Dec 2018 01:55:15 +0200 In-Reply-To: <83d0q93nf3.fsf@gnu.org> (Eli Zaretskii's message of "Mon, 10 Dec 2018 08:29:04 +0200") Message-ID: <87zhtdj5ss.fsf@mail.linkov.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain X-VR-OUT-STATUS: OK X-VR-OUT-SCORE: -100 X-VR-OUT-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedtkedrudegiedgudeiucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuggftfghnshhusghstghrihgsvgdpffftgfetoffjqffuvfenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvufhofhffjgfkfgggtgesthdtredttdertdenucfhrhhomheplfhurhhiucfnihhnkhhovhcuoehjuhhriheslhhinhhkohhvrdhnvghtqeenucfkphepledurdduvdelrdeliedrudejjeenucfrrghrrghmpehmohguvgepshhmthhppdhhvghlohepmhgrihhlrdhjuhhrthgrrdhorhhgpdhinhgvthepledurdduvdelrdeliedrudejjedprhgvthhurhhnqdhprghthheplfhurhhiucfnihhnkhhovhcuoehjuhhriheslhhinhhkohhvrdhnvghtqedpmhgrihhlfhhrohhmpehjuhhriheslhhinhhkohhvrdhnvghtpdhnrhgtphhtthhopegvlhhiiiesghhnuhdrohhrghenucevlhhushhtvghrufhiiigvpedt X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 33650-done Cc: 33650-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) >> > Isn't the result user-visible change in behavior? >> >> Yes, this fix changes user-visible behavior, so perhaps it should be >> mentioned in NEWS. > > I think so too. > >> As "fileset" is essential for `vc-version-diff', >> "whole tree" is essential for `vc-root-version-diff': > > OK, thanks. Pushed to master and closed. ------------=_1544486284-14248-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 6 Dec 2018 22:32:41 +0000 Received: from localhost ([127.0.0.1]:36102 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gV2CG-0005eq-Ra for submit@debbugs.gnu.org; Thu, 06 Dec 2018 17:32:41 -0500 Received: from eggs.gnu.org ([208.118.235.92]:40719) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gV2CF-0005eN-Hs for submit@debbugs.gnu.org; Thu, 06 Dec 2018 17:32:40 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gV2C9-0003CB-Gy for submit@debbugs.gnu.org; Thu, 06 Dec 2018 17:32:34 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=BAYES_20 autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:54471) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gV2C9-0003Bz-Ba for submit@debbugs.gnu.org; Thu, 06 Dec 2018 17:32:33 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50317) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gV2C8-0004JX-CV for bug-gnu-emacs@gnu.org; Thu, 06 Dec 2018 17:32:33 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gV2C5-0003Ah-74 for bug-gnu-emacs@gnu.org; Thu, 06 Dec 2018 17:32:32 -0500 Received: from bonobo.maple.relay.mailchannels.net ([23.83.214.22]:26276) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gV2C4-000393-OS for bug-gnu-emacs@gnu.org; Thu, 06 Dec 2018 17:32:29 -0500 X-Sender-Id: dreamhost|x-authsender|jurta@jurta.org Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id CC241124EC3 for ; Thu, 6 Dec 2018 22:32:26 +0000 (UTC) Received: from pdx1-sub0-mail-a68.g.dreamhost.com (unknown [100.96.19.74]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id 6AE361248DD for ; Thu, 6 Dec 2018 22:32:26 +0000 (UTC) X-Sender-Id: dreamhost|x-authsender|jurta@jurta.org Received: from pdx1-sub0-mail-a68.g.dreamhost.com (pop.dreamhost.com [64.90.62.162]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384) by 0.0.0.0:2500 (trex/5.16.2); Thu, 06 Dec 2018 22:32:26 +0000 X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|jurta@jurta.org X-MailChannels-Auth-Id: dreamhost X-Thoughtful-Drop: 1770699e5a62dfaa_1544135546610_2585954548 X-MC-Loop-Signature: 1544135546610:4002368647 X-MC-Ingress-Time: 1544135546610 Received: from pdx1-sub0-mail-a68.g.dreamhost.com (localhost [127.0.0.1]) by pdx1-sub0-mail-a68.g.dreamhost.com (Postfix) with ESMTP id 1BBEC7FE3E for ; Thu, 6 Dec 2018 14:32:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=linkov.net; h=from:to :subject:date:message-id:mime-version:content-type; s= linkov.net; bh=CAv9YdVUXWoXd7kBAkQ4G68bngU=; b=xmaCqauiy5qEDsCNN q86n3ZTLB/j3GScvGsCZOwR8JUBjnbhSoM3OgMjS/2R+9K1yCsWrjCDDip6uyTB9 QetoZW0M38bBZr9g7JBNwNiNvNjNruV9nIOUYDQAQ4ciXFqTmjDRvnB/ozOQ2//a d7gEh33Sf8v/gKD0tnylYtV0CU= Received: from mail.jurta.org (m91-129-103-7.cust.tele2.ee [91.129.103.7]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: jurta@jurta.org) by pdx1-sub0-mail-a68.g.dreamhost.com (Postfix) with ESMTPSA id 3A04D7FE3D for ; Thu, 6 Dec 2018 14:32:24 -0800 (PST) X-DH-BACKEND: pdx1-sub0-mail-a68 From: Juri Linkov To: bug-gnu-emacs@gnu.org Subject: 27.0.50; Root diffs between revisions Organization: LINKOV.NET Date: Thu, 06 Dec 2018 23:54:16 +0200 Message-ID: <87d0qe8gon.fsf@mail.linkov.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-VR-OUT-STATUS: OK X-VR-OUT-SCORE: 0 X-VR-OUT-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedtkedrudefjedgudeiudcutefuodetggdotefrodftvfcurfhrohhfihhlvgemucggtfgfnhhsuhgsshgtrhhisggvpdfftffgtefojffquffvnecuuegrihhlohhuthemuceftddtnecunecujfgurhephffvufhofffkfgggtgesmhdtreertdertdenucfhrhhomheplfhurhhiucfnihhnkhhovhcuoehjuhhriheslhhinhhkohhvrdhnvghtqeenucfkphepledurdduvdelrddutdefrdejnecurfgrrhgrmhepmhhouggvpehsmhhtphdphhgvlhhopehmrghilhdrjhhurhhtrgdrohhrghdpihhnvghtpeeluddruddvledruddtfedrjedprhgvthhurhhnqdhprghthheplfhurhhiucfnihhnkhhovhcuoehjuhhriheslhhinhhkohhvrdhnvghtqedpmhgrihhlfhhrohhmpehjuhhriheslhhinhhkohhvrdhnvghtpdhnrhgtphhtthhopegsuhhgqdhgnhhuqdgvmhgrtghssehgnhhurdhorhhgnecuvehluhhsthgvrhfuihiivgeptd X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) --=-=-= Content-Type: text/plain A VC command that still doesn't allow using diff-mode automatically thus preventing proper fontification and all other related features is `vc-root-diff' with a prefix argument HISTORIC. It has such comment: ;; FIXME: this does not work right, `vc-version-diff' ends up ;; calling `vc-deduce-fileset' to find the files to diff, and ;; that's not what we want here, we want the diff for the VC root dir. This patch fixes this omission by implementing `vc-root-version-diff' that is able to compare two revisions even on separate branches from their roots: --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=vc-root-version-diff.patch diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el index de43544864..74979e7381 100644 --- a/lisp/vc/vc.el +++ b/lisp/vc/vc.el @@ -1827,6 +1827,28 @@ vc-version-diff (vc-diff-internal t (vc-deduce-fileset t) rev1 rev2 (called-interactively-p 'interactive))) +;;;###autoload +(defun vc-root-version-diff (_files rev1 rev2) + "Report diffs between revisions of the whole tree in the repository history." + (interactive (vc-diff-build-argument-list-internal)) + ;; This is a mix of `vc-root-diff' and `vc-version-diff' + (when (and (not rev1) rev2) + (error "Not a valid revision range")) + (let ((backend (vc-deduce-backend)) + (default-directory default-directory) + rootdir) + (if backend + (setq rootdir (vc-call-backend backend 'root default-directory)) + (setq rootdir (read-directory-name "Directory for VC root-diff: ")) + (setq backend (vc-responsible-backend rootdir)) + (if backend + (setq default-directory rootdir) + (error "Directory is not version controlled"))) + (let ((default-directory rootdir)) + (vc-diff-internal + t (list backend (list rootdir)) rev1 rev2 + (called-interactively-p 'interactive))))) + ;;;###autoload (defun vc-diff (&optional historic not-urgent) "Display diffs between file revisions. @@ -1900,10 +1922,8 @@ vc-root-diff saving the buffer." (interactive (list current-prefix-arg t)) (if historic - ;; FIXME: this does not work right, `vc-version-diff' ends up - ;; calling `vc-deduce-fileset' to find the files to diff, and - ;; that's not what we want here, we want the diff for the VC root dir. - (call-interactively 'vc-version-diff) + ;; We want the diff for the VC root dir. + (call-interactively 'vc-root-version-diff) (when buffer-file-name (vc-buffer-sync not-urgent)) (let ((backend (vc-deduce-backend)) (default-directory default-directory) --=-=-=-- ------------=_1544486284-14248-1--