From unknown Mon Aug 11 18:16:36 2025 X-Loop: help-debbugs@gnu.org Subject: bug#77529: 31.0.50; [Feature Request][VC] How can I get the current revision of the buffer opened by =vc-find-revision=? Resent-From: jixiuf Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 04 Apr 2025 04:26:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 77529 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 77529@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.174374075132581 (code B ref -1); Fri, 04 Apr 2025 04:26:01 +0000 Received: (at submit) by debbugs.gnu.org; 4 Apr 2025 04:25:51 +0000 Received: from localhost ([127.0.0.1]:36650 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u0Ycp-0008TR-3j for submit@debbugs.gnu.org; Fri, 04 Apr 2025 00:25:51 -0400 Received: from lists.gnu.org ([2001:470:142::17]:40232) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u0Yci-0008T6-GL for submit@debbugs.gnu.org; Fri, 04 Apr 2025 00:25:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u0YcT-0006C5-En for bug-gnu-emacs@gnu.org; Fri, 04 Apr 2025 00:25:31 -0400 Received: from xmbghk7.mail.qq.com ([43.163.128.49]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u0YcQ-00035f-E9 for bug-gnu-emacs@gnu.org; Fri, 04 Apr 2025 00:25:28 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qq.com; s=s201512; t=1743740712; bh=v7k+Yo/JeWyCiENfWxmRauEOz+lma1se0rpNDomxhQ8=; h=From:To:Subject:Date; b=aHBdgE6ecGLu9TJ6f2VLV6opDEK+I52sI4550bOS69UcGZpYI6MjakmGLv9yFQvSK ItVLH7s0JK5fah5dJibAvwNeL9SeV9kbo41WWdeyoKJgWFUfGwQeAa1X1+bHwuW05W TgOW8KMTKMJIhNFfuY57qKzKxM+1+H3u7jd20Ehk= Received: from jxfhome ([223.72.86.67]) by newxmesmtplogicsvrszc16-0.qq.com (NewEsmtp) with SMTP id 26F8F648; Fri, 04 Apr 2025 12:09:47 +0800 X-QQ-mid: xmsmtpt1743739787thwqf0aip Message-ID: X-QQ-XMAILINFO: MmpliBmRb3iCbPFunRUvGSEHL455HM3J9/5hGrbaso1vc6fIY02JzaSv1lZpSh XkGVlUM5KQ7Zh5tv/Mckro5YfbIjmc9YN0Tk8x9xVBJhEc48ACQA7gGFBOvJt04piEms/hPAwUG0 NNMiEYa4VIFNW9VMSwSl83qRZkypo8RBnmOmG4phaNHJudprBskzPXujnYpPBJZWo98i1TJgrzmH GG1qSUC5jXieTQuThxTVnRqV9oMsIxUC+BVKSuDdWi/sB4lpVz38nJ4vI07JinZooUrm1ZbJKPnF AmTTF8FNFCPSnQrH0kq45R/SK8lvK1gOQ7XHEZEbEBqrcKPFJsRlUSC4xZAOGOa+C3wOUYuYggB5 j+qQCrbyeY94lUL0L3QXO9BiHP/rHh/eRhT1Fmg1WUUBpvlnIEQ1c0IoJvxDUQgcffJJjvrOzv/W CdQb1Ux+2HqC4RNMhw0C3BmrD0ahfyUyNTywldcfG75b7rDSRKRA4IDrtlEtBgwI8rC2NxvENBJb yeVuxp6pT9EGqYc/34/YifbWEfksobw9mhuIr6tPNLQSkL5/c9jI1K/wiLL+D8Ezo/J5uuUaHcuZ 8CSOKX0KT5uKXIoGpli2GD1dEOsCmE2Y54geWc7Awuo+DUNumXTCpolzdwLQaJMgIAGmHHk0q/Ru eIQr8Emh9VzChxEfVRYAZi3bJiN24EOJ36EMEHVktXaPx03tQPUzFhX69NQs9GF93HhfrZ5izf/L TDI9Z3zMWTPA4ZhXJmh2kKIQmNOk8f2dB86usBBC4uLuJpQ7Xbb+Fjnw3U4oaEAz6VO01O4iIyds /2qQFtJwGhomvgSORFNup9UGx9Q+aVkmPZyHMd5YDEBgraEYV0mp9dcwQtxKKLTJw79gZ21P/eUn XyXSTjCrVpJb7rak6GEj9nY+EvBczYQw9Noev9JTpB21RNuSb6BRONFOH78mw1txE712PjTWKt X-QQ-XMRINFO: OWPUhxQsoeAVDbp3OJHYyFg= From: jixiuf Date: Fri, 04 Apr 2025 12:09:47 +0800 X-OQ-MSGID: <87plhsftys.fsf@qq.com> MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=43.163.128.49; envelope-from=jixiuf@qq.com; helo=xmbghk7.mail.qq.com X-Spam_score_int: 12 X-Spam_score: 1.2 X-Spam_bar: + X-Spam_report: (1.2 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_PBL=3.335, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-Spam-Score: 0.9 (/) 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.1 (/) How can I retrieve the current revision when I'm in a buffer opened by =vc-find-revision= ? I'm attempting to write two commands: =vc-next-revision= and =vc-prev-revision=, similar to =magit-blob-next= and =magit-blob-previous=. Currently, I obtain the revision from the buffer name (which might support Git), but I don't consider this to be the best approach. Should we add a local variable called =vc-revision=, similar to =vc-parent-buffer=? Alternatively, should Emacs implement =vc-next-revision= and =vc-prev-revision= directly in =vc.el=? ---------------------------------- ;;;###autoload (defun vc-next-revision () "Visit the next revision which modified the current file." (interactive) (let* ((buffname (buffer-name)) (prev-buffer (current-buffer)) (parent-buffer vc-parent-buffer) (fileset-arg (vc-deduce-fileset nil t)) (backend (car fileset-arg)) (filename (car (cadr fileset-arg))) rev next) (when parent-buffer ;; FIXME: support other bankend for find rev? (when (string-match "^\\([^~]+?\\)\\(?:\\.~\\([^~]+\\)~\\)?$" buffname) (setq rev (match-string 2 buffname))) (setq next (vc-call-backend backend 'next-revision filename rev)) (kill-buffer prev-buffer) (if next (switch-to-buffer (vc-find-revision filename next)) (find-file filename) (user-error "vc timemachine: You have reached the end of time"))))) ;;;###autoload (defun vct-prev-revision () "Visit the prev revision which modified the current file." (interactive) (let* ((buffname (buffer-name)) (cur-buffer (current-buffer)) (parent-buffer vc-parent-buffer) (fileset-arg (vc-deduce-fileset nil t)) (backend (car fileset-arg)) (filename (car (cadr fileset-arg))) rev prev) ;; FIXME: support other bankend for find rev? (when (string-match "^\\([^~]+?\\)\\(?:\\.~\\([^~]+\\)~\\)?$" buffname) (setq rev (match-string 2 buffname))) (if rev (setq prev (vc-call-backend backend 'previous-revision filename rev)) (setq prev (vc-short-revision filename))) (if prev (progn (switch-to-buffer (vc-find-revision filename prev)) (when parent-buffer (kill-buffer cur-buffer))) (user-error "vc timemachine: You have reached the beginning of time")))) From unknown Mon Aug 11 18:16:36 2025 X-Loop: help-debbugs@gnu.org Subject: bug#77529: 31.0.50; [Feature Request][VC] How can I get the current revision of the buffer opened by =vc-find-revision=? Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 04 Apr 2025 11:04:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 77529 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: jixiuf Cc: 77529@debbugs.gnu.org Received: via spool by 77529-submit@debbugs.gnu.org id=B77529.174376458316196 (code B ref 77529); Fri, 04 Apr 2025 11:04:02 +0000 Received: (at 77529) by debbugs.gnu.org; 4 Apr 2025 11:03:03 +0000 Received: from localhost ([127.0.0.1]:37219 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u0epC-0004DA-LD for submit@debbugs.gnu.org; Fri, 04 Apr 2025 07:03:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46154) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u0epA-0004Ce-JR for 77529@debbugs.gnu.org; Fri, 04 Apr 2025 07:03:01 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u0ep4-0002PX-5u; Fri, 04 Apr 2025 07:02:54 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=+JaLfqSavgMdPxesOJV1cQ10hN88W4sKbikCsASnMNU=; b=bBRTIpBxb3sB PiuPasBnpJnxJ92vww/cGiwmOLOR9s1j+ULB7z34ddTdGeXhfFaeNPn8V2ec6VECtwifOlQxArN+f O1kfQ6f/nEe3CGzveliLe7QxmGkTk89poABrD0uQY3xyvobGfHjpzqDbEQTPCPQdLAFJibJCcWFRG hqAznmQG/0Ch8v5fZAprm9uwiM014EWN9IeQhLhXuf8LooJS31ja4zBoXqP8ErK6KK4f+lzLYg+PN GHvTxMecQ2Ogx+BhMlEfU9FQb3GYF0zuvEGQu1ZpZPmC03D7czG+Eu3CWFeMxw1GEfTqaYVycYmOF 6blYKajw25UeLxPQAYqMgQ==; Date: Fri, 04 Apr 2025 14:02:50 +0300 Message-Id: <86y0wgxk85.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: (bug-gnu-emacs@gnu.org) References: X-Spam-Score: -2.3 (--) 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: -3.3 (---) > Date: Fri, 04 Apr 2025 12:09:47 +0800 > From: jixiuf via "Bug reports for GNU Emacs, > the Swiss army knife of text editors" > > How can I retrieve the current revision when I'm in a buffer opened by > =vc-find-revision= ? > > I'm attempting to write two commands: =vc-next-revision= and > =vc-prev-revision=, similar to =magit-blob-next= and > =magit-blob-previous=. Emacs already has vc-git-next-revision, so if you need this only for Git, the function is already there, you just need to wrap it with a command. As for vc-prev-revision, isn't that just SHA^, where SHA is the hash of the revision used to call vc-prev-revision? From unknown Mon Aug 11 18:16:36 2025 X-Loop: help-debbugs@gnu.org Subject: bug#77529: 31.0.50; [Feature Request][VC] How can I get the current revision of the buffer opened by =vc-find-revision=? Resent-From: jixiuf Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 05 Apr 2025 07:42:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 77529 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii Cc: 77529@debbugs.gnu.org Received: via spool by 77529-submit@debbugs.gnu.org id=B77529.17438389119548 (code B ref 77529); Sat, 05 Apr 2025 07:42:02 +0000 Received: (at 77529) by debbugs.gnu.org; 5 Apr 2025 07:41:51 +0000 Received: from localhost ([127.0.0.1]:41336 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u0yA3-0002Tv-Eo for submit@debbugs.gnu.org; Sat, 05 Apr 2025 03:41:51 -0400 Received: from out203-205-221-245.mail.qq.com ([203.205.221.245]:50885) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u0y9x-0002TZ-Rs for 77529@debbugs.gnu.org; Sat, 05 Apr 2025 03:41:49 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qq.com; s=s201512; t=1743838890; bh=OlRR1yIizg57wsFF9gaQD3Tuc4iQmc8l0ogTpIw/AUo=; h=From:To:Cc:Subject:In-Reply-To:References:Date; b=IcE4DS+k7vShSdzrK2DjlEWw8Yn5uKTjZX5Mt3UXxRSaMMQc+V45q6ayrwKY4Dvdz Nn+k5XUNM2oPEAvHSO/7n1G7oeiwPTuzl93zZG6q5knttLEN2RKunEWn2hJjNQcegt 3LGBy/YMTKyfHg1RiImjOy8arzARlFp5m2K16eBk= Received: from jxfhome ([223.72.86.67]) by newxmesmtplogicsvrszgpua8-1.qq.com (NewEsmtp) with SMTP id A5C8B429; Sat, 05 Apr 2025 15:41:28 +0800 X-QQ-mid: xmsmtpt1743838888twpqpjycj Message-ID: X-QQ-XMAILINFO: M7uElAZZZMmFmcI1WG3MciaosDx0MjZ2q7wT57mOF2xkrozIqcrFPIqU06/oQz 1NzT34Q9ztKgskx/1qadCYc34fMFxS47fIu9/4vZXzWNJDBzYjsoivuuGEfoipR9FYHdvwtmkrur Yc5zU2S7cp8EpNBY8k0tr8rAfpji13l7k1Rmu+TmFAoeppGGcfMthHa544e93R81KsN4On3ySeCh etVq3ePMhEWNnpvRKSYjAOtgLbNV6rAalItzTc6ByJDkG0w1vyedCPIXLGiz+5GOOg/oWDfjbyWZ k3K4PfVUcRhIF9kqbTpK1x3w62NxJTOH+dIhPVe2BCUzVX5QiDt6YpndqddCtEhTIYywpbDi5kRt cPHvpicaIKP/aRSwW9bNIgqU3Pl5SUTzfaYZl6B4JjRSxa+j6/d+1y37KYW+XGzqivuO7/n9M+J+ f48jVU5fxH4KHVskGQgAHaXYK5yHR2IlFJ+HTlzep3/CuPra2eWt1PbQnJyka7SIh/2Kp3aKMBJK tr2XFiY7ron0+Ma9i6EpZrdiQ7GhE2AhOqqk8+CMT9f/+rNVwPeoh+CddHy+XuEND5L2bW87Z2pm K5HNaK8EQn2XwE8ae1on6ojkUulKlD8ZWv7IWaAyOxlxozjtYkCG4ovzjf+flFBA9HRJ8SY2kZY9 gSAQau07R+5kjk5NgSX37lPRbj19Mb3BY4sCBv25v33nsz0LNS4UPfAe2S9OZ5ARF5alNUX7Yh1/ 4NeD+wvqItK0tvKPwgYZ1Hr9f1GmzYW4aAun07L/bmVsOlP2g4Y2cObPkkE121fZNGnGocz6fQQ7 sXurD/fVYu/d69Uo7ozkWr+wivpvGuiOZRuQQDUbAUo+ottcIWo4km87NwoebpYu+5sWQhITeUHt 5bPRP23/bfK9KRvLe6kZ0EKzyHuKBY96ZrEBFNeObkEfx4ZMg1iowAJFUEo6LoCaMDofIFQZdvrz dNjVWFz+c= X-QQ-XMRINFO: NyFYKkN4Ny6FSmKK/uo/jdU= From: jixiuf In-Reply-To: <86y0wgxk85.fsf@gnu.org> References: <86y0wgxk85.fsf@gnu.org> Date: Sat, 05 Apr 2025 15:41:28 +0800 X-OQ-MSGID: <87y0wf5a3b.fsf@qq.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 3.6 (+++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Eli Zaretskii writes: > > Emacs already has vc-git-next-revision, so if you need this only > for Git, the function is already there, you just need to wrap it with > a command. > > As for vc-prev-revision, isn't that just S [...] Content analysis details: (3.6 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (jixiuf[at]qq.com) 0.0 RCVD_IN_VALIDITY_RPBL_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. [203.205.221.245 listed in bl.score.senderscore.com] -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [203.205.221.245 listed in list.dnswl.org] 0.0 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. [203.205.221.245 listed in sa-trusted.bondedsender.org] 0.4 RDNS_DYNAMIC Delivered to internal network by host with dynamic-looking rDNS 3.2 HELO_DYNAMIC_IPADDR Relay HELO'd using suspicious hostname (IP addr 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: 2.6 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Eli Zaretskii writes: > > Emacs already has vc-git-next-revision, so if you need this only > for Git, the function is already there, you just need to wrap it with > a command. > > As for vc-prev-revision, isn't that just S [...] Content analysis details: (2.6 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. [203.205.221.245 listed in sa-accredit.habeas.com] 0.0 RCVD_IN_VALIDITY_RPBL_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. [203.205.221.245 listed in bl.score.senderscore.com] -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [203.205.221.245 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (jixiuf[at]qq.com) 0.4 RDNS_DYNAMIC Delivered to internal network by host with dynamic-looking rDNS -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager 3.2 HELO_DYNAMIC_IPADDR Relay HELO'd using suspicious hostname (IP addr 1) Eli Zaretskii writes: > > Emacs already has vc-git-next-revision, so if you need this only > for Git, the function is already there, you just need to wrap it with > a command. > > As for vc-prev-revision, isn't that just SHA^, where SHA is the hash > of the revision used to call vc-prev-revision? But how can I get the SHA of the current revision when I am in a buffer opened by =3Dvc-find-revision=3D? Getting the SHA from the buffer name is not easy, as shown in the demo below: - 7f855b5297b..: Eli Zaretskii 2023-01-07 ; Fix description of etc/DOC=20=20 - (origin/emacs-29)e9341119fe4..: Eli Zaretskii 2023-01-07 ; Fix documentat= ion of etc/DOC=20=20 - cae528457cb..: Eli Zaretskii 2023-01-01 ; Add 2023 to copyright years.=20= =20 (vc-git-previous-revision "doc/lispref/help.texi" "7f855b5297b")=20=20 =3D> "remotes/origin/emacs-29"=20=20 (vc-git-next-revision "doc/lispref/help.texi" "cae528457cb")=20=20 =3D> "remotes/origin/emacs-29"=20=20 (vc-find-revision "doc/lispref/help.texi" "remotes/origin/emacs-29")=20=20 =3D> buffer-name: help.texi.~remotes_origin_emacs-29~=20=20 As you can see, the SHA is "remotes_origin_emacs-29" (obtained from the buffer name). I don=E2=80=99t know the true branch/tag name of "remotes_origin_emacs-29"; it could be "remotes/origin/emacs-29" or "remotes_origin_emacs-29." From unknown Mon Aug 11 18:16:36 2025 X-Loop: help-debbugs@gnu.org Subject: bug#77529: 31.0.50; [Feature Request][VC] How can I get the current revision of the buffer opened by =vc-find-revision=? Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 05 Apr 2025 07:57:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 77529 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: jixiuf Cc: 77529@debbugs.gnu.org Received: via spool by 77529-submit@debbugs.gnu.org id=B77529.174383976112059 (code B ref 77529); Sat, 05 Apr 2025 07:57:01 +0000 Received: (at 77529) by debbugs.gnu.org; 5 Apr 2025 07:56:01 +0000 Received: from localhost ([127.0.0.1]:41362 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u0yNl-00038G-7p for submit@debbugs.gnu.org; Sat, 05 Apr 2025 03:56:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37034) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u0yNi-00037r-17 for 77529@debbugs.gnu.org; Sat, 05 Apr 2025 03:55:59 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u0yNa-00044v-D1; Sat, 05 Apr 2025 03:55:52 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=os253GozeXyhrtMWwvc9mWNpDJtG7uL/O2z3uH0IaBQ=; b=XBvvT7lsLQQ6 ks3fQ6UrdnPdcLlD3s45iYLwtZMSzQewcEXGgHXtfcol/KMh1fgLnhEsoFuGnEdSr86UEl7isjXtg csznFNnDGXLh1iP5jOwTL5bx21a3ArhAqbbwbPRFfz9+bJLhbDlwG0tYDO2IfsRKZnbtdpWdfRvP0 EiuavSyW+dZYWTakLzSDT5hf4YgitFwh2xPhgnyppHvIIboH5EcjkjfAPt78QmwjsnIeWjlWEni9N XHk5vk1s0kWCZZcK8kc8CMAhBiM2BMt+D80Xb29Hv6EkJ4XOIv8xD4hDenL3ZT1/UGBErw8sL9o+P ayFNrZRort1YoGgIdI0SvQ==; Date: Sat, 05 Apr 2025 10:55:44 +0300 Message-Id: <86iknjxcsf.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: (message from jixiuf on Sat, 05 Apr 2025 15:41:28 +0800) References: <86y0wgxk85.fsf@gnu.org> X-Spam-Score: -2.3 (--) 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: -3.3 (---) > From: jixiuf > Cc: 77529@debbugs.gnu.org > Date: Sat, 05 Apr 2025 15:41:28 +0800 > > Eli Zaretskii writes: > > > > > Emacs already has vc-git-next-revision, so if you need this only > > for Git, the function is already there, you just need to wrap it with > > a command. > > > > As for vc-prev-revision, isn't that just SHA^, where SHA is the hash > > of the revision used to call vc-prev-revision? > > But how can I get the SHA of the current revision when I am in a buffer > opened by =vc-find-revision=? That's the argument with which vc-find-revision was called, right? So the only change we might need is to record the revision in some buffer-local variable, if we don't already do that (don't we show the revision of the mode line?). From unknown Mon Aug 11 18:16:36 2025 X-Loop: help-debbugs@gnu.org Subject: bug#77529: 31.0.50; [Feature Request][VC] How can I get the current revision of the buffer opened by =vc-find-revision=? Resent-From: jixiuf Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 05 Apr 2025 09:54:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 77529 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii Cc: 77529@debbugs.gnu.org Received: via spool by 77529-submit@debbugs.gnu.org id=B77529.1743846829797 (code B ref 77529); Sat, 05 Apr 2025 09:54:01 +0000 Received: (at 77529) by debbugs.gnu.org; 5 Apr 2025 09:53:49 +0000 Received: from localhost ([127.0.0.1]:41591 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u10Dl-0000Cn-7I for submit@debbugs.gnu.org; Sat, 05 Apr 2025 05:53:49 -0400 Received: from out203-205-221-173.mail.qq.com ([203.205.221.173]:35042) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u10Dg-0000CM-Un for 77529@debbugs.gnu.org; Sat, 05 Apr 2025 05:53:46 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qq.com; s=s201512; t=1743846814; bh=mG3wCN6LbXv2BGhPxImy+0rpIUCA3WugM8jtyFw47yc=; h=From:To:Cc:Subject:In-Reply-To:References:Date; b=gtT/Nr3jhzAeigji6eimw8fXKr4cKB5tomkKqyMm/8ud9v3iDtCRdc4oTnmNMsxPP xLGewZH/gNsqkTyc+yzkrh4ng8uJa4TY1teS7Qx1V6v0TWiVLAcGBAKJ5yxStlAAp9 Vl+2yF/uIfNEtVEoLT1VCv/gu2Rp6xVDFKZTlcqc= Received: from jxfhome ([223.72.86.67]) by newxmesmtplogicsvrsza29-0.qq.com (NewEsmtp) with SMTP id D5A1EE72; Sat, 05 Apr 2025 17:53:26 +0800 X-QQ-mid: xmsmtpt1743846806t76aykbcv Message-ID: X-QQ-XMAILINFO: NDgMZBR9sMma0UMENf87MmyjM6qpid+u4jnmvTxU4gIJhmsqEhvOjcqtU7sdso jK68inHt5orlBdVZyFPEDGYVDG9D4/2ch2m/LaiaRzqkJqljr4oR/MUp138R41vCpRzoHIyBTzE4 /4wpdSNKe7UvyVRZaRJecF0zxB28gjxaJy1kaG/WYTER90TlkpROr+zys0zeZK6rMcznzDfCCCuF gPRQGlaY34aHYBiog52hQTzWA6bjPFksO3Aa5SUhNgmM128Pj7AHpfQKMfVCPssXMsCNxJHX+E1K mNWI9bZPBwrZaY6ge+HIwI/GYu/ZkQjAdDVOaF/aA/p9dPgq9rUHAJgtjFBIEwZK2LZBs3JPCzPt upd7jWntmKXgmDxtu4Sv75fiDq500o6vJK4cBA2KgOC13pG8eRxBVobwYkFm7CQ6jwRn2cqlAov9 b8uwUpZf7vu8QAoS8w2qRyShKkZLcg9Pz0NqgVnCreNpuRZXQrYQKPtxEIretD4UTWIv++sk8KA+ rt0LorfyuzAt0ZkDurzcRDakNzWwM3KXEaJfDmneVSWU2YdI6l1zMTw4KRTav5qT50Sk1yBMmJRL AGkmxQd+nIY1Hy5F3IqrBtip+D3Su2xU4GMse1ByjVpO0cbye5N3aYJHe3PD3OD+k4JfTwzDjR7J ZiouT/R/R4wShG8fY9pQCSkvNQ33KtYDQE8Mp6Aa6+RfYrI1HgyeLji58z9sppruVb/AuYpdBR+n LcNXFrw7VzHM4f9MQW2E+X0bGqW/MuwLP3wvps2epzDUvt3u2g1WYevHNLERvQhge/a8RBQ/heR5 4b2zS2OeKQ/2fqAp23lbk3mAZhO1pnUE1TO0fX2xGK6wegqBb66PQFP81IOrhttPhxRohvzzNi+N ZhHs3ZdbjfrDRPKrojgNAFdvWMa7VZ0Ga+MJCffnVzG7kzFAEWznRsbwCZQmgQYrqZ0CBLGCpkAC kcajFcr/iXRIOivcdhhPrk7Pb0DiBKnC3iF1RNGc43pdbjMpOsmg== X-QQ-XMRINFO: OWPUhxQsoeAVDbp3OJHYyFg= From: jixiuf In-Reply-To: <86iknjxcsf.fsf@gnu.org> References: <86y0wgxk85.fsf@gnu.org> <86iknjxcsf.fsf@gnu.org> Date: Sat, 05 Apr 2025 17:53:25 +0800 X-OQ-MSGID: <87cydr6iju.fsf@qq.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" 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" --=-=-= Content-Type: text/plain Eli Zaretskii writes: >> But how can I get the SHA of the current revision when I am in a buffer >> opened by =vc-find-revision=? > > That's the argument with which vc-find-revision was called, right? So > the only change we might need is to record the revision in some > buffer-local variable, if we don't already do that (don't we show the > revision of the mode line?). Yes a buffer-local. the 'revision' on the mode line is part of buffer name, not always a revision. (vc-find-revision "doc/lispref/help.texi" "remotes/origin/emacs-29" 'Git) --=-=-= Content-Type: image/jpeg Content-Disposition: inline; filename=20250405-174822.jpg Content-Transfer-Encoding: base64 Content-Description: screenshot of modeline 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 --=-=-=-- From unknown Mon Aug 11 18:16:36 2025 X-Loop: help-debbugs@gnu.org Subject: bug#77529: 31.0.50; [Feature Request][VC] How can I get the current revision of the buffer opened by =vc-find-revision=? Resent-From: Sean Whitton Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 06 Apr 2025 00:27:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 77529 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii Cc: jixiuf , 77529@debbugs.gnu.org Received: via spool by 77529-submit@debbugs.gnu.org id=B77529.174389921921509 (code B ref 77529); Sun, 06 Apr 2025 00:27:01 +0000 Received: (at 77529) by debbugs.gnu.org; 6 Apr 2025 00:26:59 +0000 Received: from localhost ([127.0.0.1]:45347 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u1Dqk-0005ap-DH for submit@debbugs.gnu.org; Sat, 05 Apr 2025 20:26:59 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:41974) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u1Dqg-0005aW-Tw for 77529@debbugs.gnu.org; Sat, 05 Apr 2025 20:26:56 -0400 DKIM-Signature: a=rsa-sha256; b=BkZg/M6N/wB/9Z1OoOWINKv5VDIcS3NxjWQMVehrHEzVPCDfyLpeBflMlya2bOfXb304NJnsqTQAOJNjbtWhN40IEErdVcN61t8uYSJbPM8XPOGSri6xjMREQbr1CpQ9xjLrYRQ6KlNBhlv7SU5nLaVXahKq3JcgpkXn7M/mHydq6u1bC9duUigAZfrfhUHIHZLWz9JD5mFE/7r7tiUrpHTin4MdOSV6Ix68VTmpnVpkI8oRsXvcWfqWzyzUN/YsMg32clDuUlcsT5N9PFMg1woMBbd+y5exvK14fc5PIuovSfEwLD5tZJBs+Hv71zF3WkWCwXOe0E7yRsOvM8b1cA==; s=purelymail1; d=spwhitton.name; v=1; bh=BWMwlRb8eicRj4ThERDBldl3FYh4wE8QrrhDh9QEJs8=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=J/5jirqlxzl7SI9/GDC/uP//Ss6MvLBm+fGGaXXRfq5cUOnhioCjw3ezBJ8YqsU4WvepkUvDIdjZt7rvN7QjacFRmULY3HGF4gDwU8L/anCGYrVoTBj4CDo71iK0o3gyfT10MaNBRSWYsxp1lLLI4W/7mrBmQZH6SSSoSoay6HgZigavF/aRjZpQ68Jip6Ol3AukLphoNHciLMfJcUAocnhgF3gUpTEFk6ZJ1l8vrjU56yG9S2XO8iPB5FMEyWkg5FoWJnERd6iEEUZLsmle6X80MWukbZE4cs+UA4GuP2IkvdI7amt9hctfRcZ9skyIgIx1TdKZnFYguWFuxhZ4dQ==; s=purelymail1; d=purelymail.com; v=1; bh=BWMwlRb8eicRj4ThERDBldl3FYh4wE8QrrhDh9QEJs8=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 77529@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id -362822753; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Sun, 06 Apr 2025 00:26:45 +0000 (UTC) Received: by melete.silentflame.com (Postfix, from userid 1000) id 0C1CD7E369F; Sun, 06 Apr 2025 08:26:39 +0800 (CST) From: Sean Whitton In-Reply-To: References: <86y0wgxk85.fsf@gnu.org> <86iknjxcsf.fsf@gnu.org> Date: Sun, 06 Apr 2025 08:26:39 +0800 Message-ID: <87o6xanni8.fsf@melete.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" 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 Hello, I have a work-in-progress patch to improve things in this area that I'm testing, please find attached. -- Sean Whitton --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=0001-New-buffer-local-vc-buffer-overriding-fileset-and-vc.patch >From 989aa74743fc64a51bf7ae3a9c3f970f1268670e Mon Sep 17 00:00:00 2001 From: Sean Whitton Date: Fri, 4 Apr 2025 10:49:57 +0800 Subject: [PATCH] New buffer-local vc-buffer-overriding-fileset and vc-buffer-revision * lisp/vc/vc.el (vc-buffer-overriding-fileset) (vc-buffer-revision): New variables. (vc-find-revision-save, vc-find-revision-no-save): Set them. (vc-deduce-fileset): Respect vc-buffer-overriding-fileset. * lisp/vc/vc-annotate.el (vc-annotate-parent-file) (vc-annotate-parent-rev): Delete. (vc-annotate): Respect vc-buffer-overriding-fileset and vc-buffer-revision. This makes 'C-x v g' work from buffers generated by 'C-x v ~' (bug#5424). Set the two variables in the newly prepared buffer. (vc-annotate-working-revision) (vc-annotate-extract-revision-at-line) (vc-annotate-revision-at-line, vc-annotate-warp-revision) (vc-annotate-goto-line): * lisp/vc/vc-svn.el (vc-annotate-parent-rev) (vc-svn-annotate-current-time): Use vc-buffer-overriding-fileset instead of vc-annotate-parent-file, vc-buffer-revision instead of vc-annotate-parent-rev. * etc/NEWS: Announce the new variables. --- etc/NEWS | 12 ++++ lisp/vc/vc-annotate.el | 131 ++++++++++++++++++++++------------------- lisp/vc/vc-svn.el | 4 +- lisp/vc/vc.el | 58 +++++++++++++----- 4 files changed, 126 insertions(+), 79 deletions(-) diff --git a/etc/NEWS b/etc/NEWS index 61474af7fcb..ff421d7bce0 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -2097,6 +2097,18 @@ sleep state. 'advertised-undo', 'advertised-widget-backward', and 'dired-advertised-find-file'. +** VC + +--- +*** New buffer-local variable 'vc-buffer-overriding-fileset'. +This can be used to override the behavior of 'vc-deduce-fileset'. +This replaces and generalizes the old 'vc-annotate-parent-file'. + +--- +*** New buffer-local variable 'vc-buffer-revision'. +This specifies the revision to which the buffer's contents corresponds. +This replaces and generalizes the old 'vc-annotate-parent-rev'. + * Changes in Emacs 31.1 on Non-Free Operating Systems diff --git a/lisp/vc/vc-annotate.el b/lisp/vc/vc-annotate.el index 1be6bab09a5..e47ab426ef4 100644 --- a/lisp/vc/vc-annotate.el +++ b/lisp/vc/vc-annotate.el @@ -194,8 +194,6 @@ vc-annotate-ratio ;; internal buffer-local variables (defvar vc-annotate-backend nil) -(defvar vc-annotate-parent-file nil) -(defvar vc-annotate-parent-rev nil) (defvar vc-annotate-parent-display-mode nil) (defconst vc-annotate-font-lock-keywords @@ -368,7 +366,7 @@ vc-annotate-display-select (defvar vc-sentinel-movepoint) ;;;###autoload -(defun vc-annotate (file rev &optional display-mode buf move-point-to vc-bk) +(defun vc-annotate (file rev &optional display-mode buf move-point-to backend) "Display the edit history of the current FILE using colors. This command creates a buffer that shows, for each line of the current @@ -389,7 +387,7 @@ vc-annotate If MOVE-POINT-TO is given, move the point to that line. -If VC-BK is given used that VC backend. +If BACKEND is given, use that VC backend. Customization variables: @@ -401,22 +399,25 @@ vc-annotate should be applied to the background or to the foreground." (interactive (save-current-buffer - (vc-ensure-vc-buffer) - (list buffer-file-name - (let ((def (funcall (if vc-annotate-use-short-revision - #'vc-short-revision - #'vc-working-revision) - buffer-file-name))) - (if (null current-prefix-arg) def - (vc-read-revision - (format-prompt "Annotate from revision" def) - (list buffer-file-name) nil def))) - (if (null current-prefix-arg) - vc-annotate-display-mode - (float (string-to-number - (read-string (format-prompt "Annotate span days" 20) - nil nil "20"))))))) - (vc-ensure-vc-buffer) + (let ((name (if (length= (cadr vc-buffer-overriding-fileset) 1) + (caadr vc-buffer-overriding-fileset) + (vc-ensure-vc-buffer) + buffer-file-name))) + (list name + (let ((def (or vc-buffer-revision + (funcall (if vc-annotate-use-short-revision + #'vc-short-revision + #'vc-working-revision) + name)))) + (if (null current-prefix-arg) def + (vc-read-revision + (format-prompt "Annotate from revision" def) + (list name) nil def))) + (if (null current-prefix-arg) + vc-annotate-display-mode + (float (string-to-number + (read-string (format-prompt "Annotate span days" 20) + nil nil "20")))))))) (setq vc-annotate-display-mode display-mode) ;Not sure why. --Stef (let* ((temp-buffer-name (format "*Annotate %s (rev %s)*" (buffer-name) rev)) (temp-buffer-show-function 'vc-annotate-display-select) @@ -435,31 +436,33 @@ vc-annotate (rename-buffer temp-buffer-name t) ;; In case it had to be uniquified. (setq temp-buffer-name (buffer-name)))) - (with-output-to-temp-buffer temp-buffer-name - (let ((backend (or vc-bk (vc-backend file))) - (coding-system-for-read buffer-file-coding-system)) - ;; For a VC backend running on DOS/Windows, it's normal to - ;; produce CRLF EOLs even if the original file has Unix EOLs, - ;; which will show ^M characters in the Annotate buffer. (One - ;; known case in point is "svn annotate".) Prevent that by - ;; forcing DOS EOL decoding. - (if (memq system-type '(windows-nt ms-dos)) - (setq coding-system-for-read - (coding-system-change-eol-conversion coding-system-for-read - 'dos))) - (vc-call-backend backend 'annotate-command file - (get-buffer temp-buffer-name) rev) - ;; we must setup the mode first, and then set our local - ;; variables before the show-function is called at the exit of - ;; with-output-to-temp-buffer - (with-current-buffer temp-buffer-name - (unless (equal major-mode 'vc-annotate-mode) - (vc-annotate-mode)) - (setq-local vc-annotate-backend backend) - (setq-local vc-annotate-parent-file file) - (setq-local vc-annotate-parent-rev rev) - (setq-local vc-annotate-parent-display-mode display-mode) - (kill-local-variable 'revert-buffer-function)))) + (let ((backend (or backend + (car vc-buffer-overriding-fileset) + (vc-backend file))) + (coding-system-for-read buffer-file-coding-system)) + (with-output-to-temp-buffer temp-buffer-name + ;; For a VC backend running on DOS/Windows, it's normal to + ;; produce CRLF EOLs even if the original file has Unix EOLs, + ;; which will show ^M characters in the Annotate buffer. (One + ;; known case in point is "svn annotate".) Prevent that by + ;; forcing DOS EOL decoding. + (if (memq system-type '(windows-nt ms-dos)) + (setq coding-system-for-read + (coding-system-change-eol-conversion coding-system-for-read + 'dos))) + (vc-call-backend backend 'annotate-command file + (get-buffer temp-buffer-name) rev) + ;; we must setup the mode first, and then set our local + ;; variables before the show-function is called at the exit of + ;; with-output-to-temp-buffer + (with-current-buffer temp-buffer-name + (unless (equal major-mode 'vc-annotate-mode) + (vc-annotate-mode)) + (setq-local vc-annotate-backend backend) + (setq-local vc-buffer-overriding-fileset `(,backend (,file))) + (setq-local vc-buffer-revision rev) + (setq-local vc-annotate-parent-display-mode display-mode) + (kill-local-variable 'revert-buffer-function)))) (with-current-buffer temp-buffer-name (vc-run-delayed @@ -494,8 +497,8 @@ vc-annotate-working-revision (interactive) (if (not (equal major-mode 'vc-annotate-mode)) (message "Cannot be invoked outside of a vc annotate buffer") - (let ((warp-rev (vc-working-revision vc-annotate-parent-file))) - (if (equal warp-rev vc-annotate-parent-rev) + (let ((warp-rev (vc-working-revision (cadr vc-buffer-overriding-fileset)))) + (if (equal warp-rev vc-buffer-revision) (message "Already at revision %s" warp-rev) (vc-annotate-warp-revision warp-rev))))) @@ -507,7 +510,7 @@ vc-annotate-extract-revision-at-line 'annotate-extract-revision-at-line))) (if (or (null rev) (consp rev)) rev - (cons rev vc-annotate-parent-file)))) + (cons rev (cadr vc-buffer-overriding-fileset))))) (defun vc-annotate-revision-at-line () "Visit the annotation of the revision identified in the current line." @@ -517,8 +520,8 @@ vc-annotate-revision-at-line (let ((rev-at-line (vc-annotate-extract-revision-at-line))) (if (not rev-at-line) (message "Cannot extract revision number from the current line") - (if (and (equal (car rev-at-line) vc-annotate-parent-rev) - (string= (cdr rev-at-line) vc-annotate-parent-file)) + (if (and (equal (car rev-at-line) vc-buffer-revision) + (string= (cdr rev-at-line) (cadr vc-buffer-overriding-fileset))) (message "Already at revision %s" rev-at-line) (vc-annotate-warp-revision (car rev-at-line) (cdr rev-at-line))))))) @@ -644,27 +647,33 @@ vc-annotate-warp-revision (newrev nil)) (cond ((and (integerp revspec) (> revspec 0)) - (setq newrev vc-annotate-parent-rev) + (setq newrev vc-buffer-revision) (while (and (> revspec 0) newrev) (setq newrev (vc-call-backend vc-annotate-backend 'next-revision - (or file vc-annotate-parent-file) newrev)) + (or file + (cadr vc-buffer-overriding-fileset)) + newrev)) (setq revspec (1- revspec))) (unless newrev (message "Cannot increment %d revisions from revision %s" - revspeccopy vc-annotate-parent-rev))) + revspeccopy vc-buffer-revision))) ((and (integerp revspec) (< revspec 0)) - (setq newrev vc-annotate-parent-rev) + (setq newrev vc-buffer-revision) (while (and (< revspec 0) newrev) (setq newrev (vc-call-backend vc-annotate-backend 'previous-revision - (or file vc-annotate-parent-file) newrev)) + (or file + (cadr vc-buffer-overriding-fileset)) + newrev)) (setq revspec (1+ revspec))) (unless newrev (message "Cannot decrement %d revisions from revision %s" - (- 0 revspeccopy) vc-annotate-parent-rev))) + (- 0 revspeccopy) vc-buffer-revision))) ((stringp revspec) (setq newrev revspec)) (t (error "Invalid argument to vc-annotate-warp-revision"))) (when newrev - (vc-annotate (or file vc-annotate-parent-file) newrev + (vc-annotate (or file + (cadr vc-buffer-overriding-fileset)) + newrev vc-annotate-parent-display-mode buf ;; Pass the current line so that vc-annotate will @@ -757,13 +766,13 @@ vc-annotate-goto-line (let ((line (save-restriction (widen) (line-number-at-pos))) - (rev vc-annotate-parent-rev)) + (rev vc-buffer-revision) + (file (cadr vc-buffer-overriding-fileset))) (pop-to-buffer (or (and (buffer-live-p vc-parent-buffer) vc-parent-buffer) - (and (file-exists-p vc-annotate-parent-file) - (find-file-noselect vc-annotate-parent-file)) - (error "File not found: %s" vc-annotate-parent-file))) + (and (file-exists-p file) (find-file-noselect file)) + (error "File not found: %s" file))) (save-restriction (widen) (goto-char (point-min)) diff --git a/lisp/vc/vc-svn.el b/lisp/vc/vc-svn.el index e81636552b5..079aa3c0a22 100644 --- a/lisp/vc/vc-svn.el +++ b/lisp/vc/vc-svn.el @@ -791,10 +791,8 @@ vc-svn-annotate-time-of-rev ;; Arbitrarily assume 10 commits per day. (/ (string-to-number rev) 10.0)) -(defvar vc-annotate-parent-rev) - (defun vc-svn-annotate-current-time () - (vc-svn-annotate-time-of-rev vc-annotate-parent-rev)) + (vc-svn-annotate-time-of-rev vc-buffer-revision)) (defconst vc-svn-annotate-re "[ \t]*\\([0-9]+\\)[ \t]+[^\t ]+ ") diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el index 2db2a017525..cb39317e85b 100644 --- a/lisp/vc/vc.el +++ b/lisp/vc/vc.el @@ -1181,6 +1181,19 @@ vc-deduce-backend (declare-function vc-dir-deduce-fileset "vc-dir" (&optional state-model-only-files)) (declare-function dired-vc-deduce-fileset "dired-aux" (&optional state-model-only-files not-state-changing)) +(defvar-local vc-buffer-overriding-fileset nil + "Specialized, static value for `vc-deduce-fileset' for this buffer. +If non-nil, this should be a list of length 2 or 5. +See `vc-deduce-fileset' regarding these possible forms. +If this list is of length 2, it will be used only when the +STATE-MODEL-ONLY-FILES argument to `vc-deduce-fileset' is nil.") + +(defvar-local vc-buffer-revision nil + "VCS revision to which this buffer's contents corresponds. +Functions which set this should also set `vc-buffer-overriding-fileset' +such that the buffer's local variables also specify a VC backend, +rendering the value of this variable unambiguous.") + (defun vc-deduce-fileset (&optional not-state-changing allow-unregistered state-model-only-files) @@ -1220,6 +1233,14 @@ vc-deduce-fileset (set-buffer (buffer-base-buffer))) (let (backend) (cond + ((and vc-buffer-overriding-fileset + (not (or (length= vc-buffer-overriding-fileset 2) + (length= vc-buffer-overriding-fileset 5)))) + (error "Invalid value for `vc-buffer-overriding-fileset' %S" + vc-buffer-overriding-fileset)) + ((and (or (not state-model-only-files) + (length= vc-buffer-overriding-fileset 5)) + vc-buffer-overriding-fileset)) ((derived-mode-p 'vc-dir-mode) (vc-dir-deduce-fileset state-model-only-files)) ((derived-mode-p 'dired-mode) @@ -1262,6 +1283,9 @@ vc-deduce-fileset (list buffer-file-name)))) (t (error "File is not under version control"))))) +;; This function should possibly honor `vc-buffer-overriding-fileset' +;; when the fileset consists of a single file, but only if that file is +;; part of the current working revision, i.e., actually on disk now. (defun vc-ensure-vc-buffer () "Make sure that the current buffer visits a version-controlled file." (cond @@ -2401,7 +2425,8 @@ vc-find-revision-save Saves the buffer to the file." (let ((automatic-backup (vc-version-backup-file-name file revision)) (filebuf (or (get-file-buffer file) (current-buffer))) - (filename (vc-version-backup-file-name file revision 'manual))) + (filename (vc-version-backup-file-name file revision 'manual)) + (backend (or backend (vc-backend file)))) (unless (file-exists-p filename) (if (file-exists-p automatic-backup) (rename-file automatic-backup filename nil) @@ -2419,19 +2444,19 @@ vc-find-revision-save ;; Change buffer to get local value of ;; vc-checkout-switches. (with-current-buffer filebuf - (if backend - (vc-call-backend backend 'find-revision file revision outbuf) - (vc-call find-revision file revision outbuf))))) + (vc-call-backend backend 'find-revision + file revision outbuf)))) (setq failed nil)) (when (and failed (file-exists-p filename)) (delete-file filename)))) (vc-mode-line file)) (message "Checking out %s...done" filename))) - (let ((result-buf (find-file-noselect filename))) + (let ((result-buf (find-file-noselect filename)) + (file (file-relative-name file (file-name-directory filename)))) (with-current-buffer result-buf - ;; Set the parent buffer so that things like - ;; C-x v g, C-x v l, ... etc work. - (setq-local vc-parent-buffer filebuf)) + (setq-local vc-parent-buffer filebuf + vc-buffer-overriding-fileset `(,backend (,file)) + vc-buffer-revision revision)) result-buf))) (defun vc-find-revision-no-save (file revision &optional backend buffer) @@ -2440,9 +2465,11 @@ vc-find-revision-no-save `buffer-file-name' to the name constructed from the file name and the revision number. Unlike `vc-find-revision-save', doesn't save the buffer to the file." - (let* ((buffer (when (buffer-live-p buffer) buffer)) + (let* ((buffer (and (buffer-live-p buffer) buffer)) (filebuf (or buffer (get-file-buffer file) (current-buffer))) - (filename (unless buffer (vc-version-backup-file-name file revision 'manual)))) + (filename (and (not buffer) + (vc-version-backup-file-name file revision 'manual))) + (backend (or backend (vc-backend file)))) (unless (and (not buffer) (or (get-file-buffer filename) (file-exists-p filename))) @@ -2453,9 +2480,7 @@ vc-find-revision-no-save (unless buffer (setq buffer-file-name filename)) (let ((outbuf (current-buffer))) (with-current-buffer filebuf - (if backend - (vc-call-backend backend 'find-revision file revision outbuf) - (vc-call find-revision file revision outbuf)))) + (vc-call-backend backend 'find-revision file revision outbuf))) (decode-coding-inserted-region (point-min) (point-max) file) (after-insert-file-set-coding (- (point-max) (point-min))) (goto-char (point-min)) @@ -2483,9 +2508,12 @@ vc-find-revision-no-save (kill-buffer (get-file-buffer filename))))))) (let ((result-buf (or buffer (get-file-buffer filename) - (find-file-noselect filename)))) + (find-file-noselect filename))) + (file (file-relative-name file (file-name-directory filename)))) (with-current-buffer result-buf - (setq-local vc-parent-buffer filebuf)) + (setq-local vc-parent-buffer filebuf + vc-buffer-overriding-fileset `(,backend (,file)) + vc-buffer-revision revision)) result-buf))) ;; Header-insertion code -- 2.49.0 --=-=-=-- From unknown Mon Aug 11 18:16:36 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: jixiuf Subject: bug#77529: closed (Fixed by vc-buffer-overriding-fileset, vc-buffer-revision changeset) Message-ID: References: <87lds773rz.fsf@melete.silentflame.com> X-Gnu-PR-Message: they-closed 77529 X-Gnu-PR-Package: emacs Reply-To: 77529@debbugs.gnu.org Date: Fri, 11 Apr 2025 03:54:03 +0000 Content-Type: multipart/mixed; boundary="----------=_1744343643-8892-1" This is a multi-part message in MIME format... ------------=_1744343643-8892-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #77529: 31.0.50; [Feature Request][VC] How can I get the current revision o= f the buffer opened by =3Dvc-find-revision=3D? 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 77529@debbugs.gnu.org. --=20 77529: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D77529 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1744343643-8892-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 77529-done) by debbugs.gnu.org; 11 Apr 2025 03:53:25 +0000 Received: from localhost ([127.0.0.1]:48067 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u35SH-0002Hz-DC for submit@debbugs.gnu.org; Thu, 10 Apr 2025 23:53:25 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:57066) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u35SF-0002Ha-7h for 77529-done@debbugs.gnu.org; Thu, 10 Apr 2025 23:53:23 -0400 DKIM-Signature: a=rsa-sha256; b=jkErE9QBGS4N+QqlSkTpMCukoFQemOwTJkUlPazz0Pyev+eU8zNGkgj62t/aTiXv95lpY3aO+j+shzS3aV4hu+PpGHxPaSNYnTYdBFoLazstmOLNcMNilpWKGVqz6oEYrtFT6pmVzEortOcby2IZaJNIzJ4J6wO4JNlsp+sq/aj97/tOWHytS0bBXasiIZ2WANqAvFlDGs67b5g/4cgvl5ny0FGDeLN+ZiAULMKB3PDADFvOJDtWZ8tlm7AOrYyh7t1lV3pgb/4toI9SdftYDzhr6wo0wArNVycZVUpDiychn+Kq8NiByqeJosDibfRFRnX1inyynP6F8sAe03H7TQ==; s=purelymail2; d=spwhitton.name; v=1; bh=KtaGYXb37P5+vInd1tooecE7N0ZSsUh7AR0pmJfKoj8=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=Npiz9+t1y9QhR/ccLUTaLHuIxdf4i8/e9pJ3EH93xl4WOJRaHoFFIXLYBTNXW6b1yhiWexi0pNYbLu5zd0LcuiG6OVWSMs7Ntn6tiYpbDyPCXwwK5CiUEcgqKm37GaXAKSU1ulg1hgRFku+Iz6PCUCfQq4koAKIAO5TlJ7kKoBuslBNXiy6I9ZNf2Ivyn227q8A97u8e70lUiRIsiE4Q0X/xRIpSJZW8QLTN9NTljgNwaaNNFvSw47K/1+NC6DjBesF47KPUr9+vLapIKwotEsDFZpFOLSiUh/SvWiBc7AmyJ+v8QDeYfDHDreUTzvkcPPJSjgL+OqajG5eaERQnww==; s=purelymail2; d=purelymail.com; v=1; bh=KtaGYXb37P5+vInd1tooecE7N0ZSsUh7AR0pmJfKoj8=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 77529-done@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id 481762047; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Fri, 11 Apr 2025 03:53:09 +0000 (UTC) Received: by melete.silentflame.com (Postfix, from userid 1000) id C1D717EF94C; Fri, 11 Apr 2025 11:53:04 +0800 (CST) From: Sean Whitton To: 5424-done@debbugs.gnu.org, 77529-done@debbugs.gnu.org Subject: Fixed by vc-buffer-overriding-fileset, vc-buffer-revision changeset Date: Fri, 11 Apr 2025 11:53:04 +0800 Message-ID: <87lds773rz.fsf@melete.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77529-done 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 (-) Version 31.1 These should now be fixed on master. -- Sean Whitton ------------=_1744343643-8892-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 4 Apr 2025 04:25:51 +0000 Received: from localhost ([127.0.0.1]:36650 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u0Ycp-0008TR-3j for submit@debbugs.gnu.org; Fri, 04 Apr 2025 00:25:51 -0400 Received: from lists.gnu.org ([2001:470:142::17]:40232) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u0Yci-0008T6-GL for submit@debbugs.gnu.org; Fri, 04 Apr 2025 00:25:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u0YcT-0006C5-En for bug-gnu-emacs@gnu.org; Fri, 04 Apr 2025 00:25:31 -0400 Received: from xmbghk7.mail.qq.com ([43.163.128.49]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u0YcQ-00035f-E9 for bug-gnu-emacs@gnu.org; Fri, 04 Apr 2025 00:25:28 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qq.com; s=s201512; t=1743740712; bh=v7k+Yo/JeWyCiENfWxmRauEOz+lma1se0rpNDomxhQ8=; h=From:To:Subject:Date; b=aHBdgE6ecGLu9TJ6f2VLV6opDEK+I52sI4550bOS69UcGZpYI6MjakmGLv9yFQvSK ItVLH7s0JK5fah5dJibAvwNeL9SeV9kbo41WWdeyoKJgWFUfGwQeAa1X1+bHwuW05W TgOW8KMTKMJIhNFfuY57qKzKxM+1+H3u7jd20Ehk= Received: from jxfhome ([223.72.86.67]) by newxmesmtplogicsvrszc16-0.qq.com (NewEsmtp) with SMTP id 26F8F648; Fri, 04 Apr 2025 12:09:47 +0800 X-QQ-mid: xmsmtpt1743739787thwqf0aip Message-ID: X-QQ-XMAILINFO: MmpliBmRb3iCbPFunRUvGSEHL455HM3J9/5hGrbaso1vc6fIY02JzaSv1lZpSh XkGVlUM5KQ7Zh5tv/Mckro5YfbIjmc9YN0Tk8x9xVBJhEc48ACQA7gGFBOvJt04piEms/hPAwUG0 NNMiEYa4VIFNW9VMSwSl83qRZkypo8RBnmOmG4phaNHJudprBskzPXujnYpPBJZWo98i1TJgrzmH GG1qSUC5jXieTQuThxTVnRqV9oMsIxUC+BVKSuDdWi/sB4lpVz38nJ4vI07JinZooUrm1ZbJKPnF AmTTF8FNFCPSnQrH0kq45R/SK8lvK1gOQ7XHEZEbEBqrcKPFJsRlUSC4xZAOGOa+C3wOUYuYggB5 j+qQCrbyeY94lUL0L3QXO9BiHP/rHh/eRhT1Fmg1WUUBpvlnIEQ1c0IoJvxDUQgcffJJjvrOzv/W CdQb1Ux+2HqC4RNMhw0C3BmrD0ahfyUyNTywldcfG75b7rDSRKRA4IDrtlEtBgwI8rC2NxvENBJb yeVuxp6pT9EGqYc/34/YifbWEfksobw9mhuIr6tPNLQSkL5/c9jI1K/wiLL+D8Ezo/J5uuUaHcuZ 8CSOKX0KT5uKXIoGpli2GD1dEOsCmE2Y54geWc7Awuo+DUNumXTCpolzdwLQaJMgIAGmHHk0q/Ru eIQr8Emh9VzChxEfVRYAZi3bJiN24EOJ36EMEHVktXaPx03tQPUzFhX69NQs9GF93HhfrZ5izf/L TDI9Z3zMWTPA4ZhXJmh2kKIQmNOk8f2dB86usBBC4uLuJpQ7Xbb+Fjnw3U4oaEAz6VO01O4iIyds /2qQFtJwGhomvgSORFNup9UGx9Q+aVkmPZyHMd5YDEBgraEYV0mp9dcwQtxKKLTJw79gZ21P/eUn XyXSTjCrVpJb7rak6GEj9nY+EvBczYQw9Noev9JTpB21RNuSb6BRONFOH78mw1txE712PjTWKt X-QQ-XMRINFO: OWPUhxQsoeAVDbp3OJHYyFg= From: jixiuf To: bug-gnu-emacs@gnu.org Subject: 31.0.50; [Feature Request][VC] How can I get the current revision of the buffer opened by =vc-find-revision=? X-Debbugs-Cc: Date: Fri, 04 Apr 2025 12:09:47 +0800 X-OQ-MSGID: <87plhsftys.fsf@qq.com> MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=43.163.128.49; envelope-from=jixiuf@qq.com; helo=xmbghk7.mail.qq.com X-Spam_score_int: 12 X-Spam_score: 1.2 X-Spam_bar: + X-Spam_report: (1.2 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_PBL=3.335, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-Spam-Score: 0.9 (/) 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: -0.1 (/) How can I retrieve the current revision when I'm in a buffer opened by =vc-find-revision= ? I'm attempting to write two commands: =vc-next-revision= and =vc-prev-revision=, similar to =magit-blob-next= and =magit-blob-previous=. Currently, I obtain the revision from the buffer name (which might support Git), but I don't consider this to be the best approach. Should we add a local variable called =vc-revision=, similar to =vc-parent-buffer=? Alternatively, should Emacs implement =vc-next-revision= and =vc-prev-revision= directly in =vc.el=? ---------------------------------- ;;;###autoload (defun vc-next-revision () "Visit the next revision which modified the current file." (interactive) (let* ((buffname (buffer-name)) (prev-buffer (current-buffer)) (parent-buffer vc-parent-buffer) (fileset-arg (vc-deduce-fileset nil t)) (backend (car fileset-arg)) (filename (car (cadr fileset-arg))) rev next) (when parent-buffer ;; FIXME: support other bankend for find rev? (when (string-match "^\\([^~]+?\\)\\(?:\\.~\\([^~]+\\)~\\)?$" buffname) (setq rev (match-string 2 buffname))) (setq next (vc-call-backend backend 'next-revision filename rev)) (kill-buffer prev-buffer) (if next (switch-to-buffer (vc-find-revision filename next)) (find-file filename) (user-error "vc timemachine: You have reached the end of time"))))) ;;;###autoload (defun vct-prev-revision () "Visit the prev revision which modified the current file." (interactive) (let* ((buffname (buffer-name)) (cur-buffer (current-buffer)) (parent-buffer vc-parent-buffer) (fileset-arg (vc-deduce-fileset nil t)) (backend (car fileset-arg)) (filename (car (cadr fileset-arg))) rev prev) ;; FIXME: support other bankend for find rev? (when (string-match "^\\([^~]+?\\)\\(?:\\.~\\([^~]+\\)~\\)?$" buffname) (setq rev (match-string 2 buffname))) (if rev (setq prev (vc-call-backend backend 'previous-revision filename rev)) (setq prev (vc-short-revision filename))) (if prev (progn (switch-to-buffer (vc-find-revision filename prev)) (when parent-buffer (kill-buffer cur-buffer))) (user-error "vc timemachine: You have reached the beginning of time")))) ------------=_1744343643-8892-1--