From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Stephen Berman Newsgroups: gmane.emacs.bugs Subject: bug#38044: 27.0.50; There should be an easier way to look at a specific vc commit Date: Sun, 03 Nov 2019 16:43:08 +0100 Message-ID: <87r22phsoj.fsf@gmx.net> References: <87ftj5at1q.fsf@gnus.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="148878"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) Cc: 38044@debbugs.gnu.org To: Lars Ingebrigtsen Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun Nov 03 16:44:45 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1iRI3Z-000cdG-1C for geb-bug-gnu-emacs@m.gmane.org; Sun, 03 Nov 2019 16:44:45 +0100 Original-Received: from localhost ([::1]:54278 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iRI3X-0003Q6-PT for geb-bug-gnu-emacs@m.gmane.org; Sun, 03 Nov 2019 10:44:44 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:44415) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iRI2v-0003MI-O9 for bug-gnu-emacs@gnu.org; Sun, 03 Nov 2019 10:44:06 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iRI2u-0000pH-Kx for bug-gnu-emacs@gnu.org; Sun, 03 Nov 2019 10:44:05 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:54268) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iRI2u-0000pB-Dq for bug-gnu-emacs@gnu.org; Sun, 03 Nov 2019 10:44:04 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1iRI2r-0004VN-Jt for bug-gnu-emacs@gnu.org; Sun, 03 Nov 2019 10:44:04 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Stephen Berman Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 03 Nov 2019 15:44:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 38044 X-GNU-PR-Package: emacs Original-Received: via spool by 38044-submit@debbugs.gnu.org id=B38044.157279580017248 (code B ref 38044); Sun, 03 Nov 2019 15:44:01 +0000 Original-Received: (at 38044) by debbugs.gnu.org; 3 Nov 2019 15:43:20 +0000 Original-Received: from localhost ([127.0.0.1]:34856 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iRI2B-0004U7-P9 for submit@debbugs.gnu.org; Sun, 03 Nov 2019 10:43:20 -0500 Original-Received: from mout.gmx.net ([212.227.17.22]:33369) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iRI29-0004Tr-Ak for 38044@debbugs.gnu.org; Sun, 03 Nov 2019 10:43:17 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1572795790; bh=yX4UaxTPE5N6en0fl6F22xN0rCf+oHJ+kqDPU92nYh8=; h=X-UI-Sender-Class:From:To:Cc:Subject:References:Date:In-Reply-To; b=TtvqAbJC8AA/6QFWQ8UoNC3ssWeg5F1gfGD4qkg2Uc8V6IVnQTFRgh7JaiFKafmyp nfYBxVgXZD2F7sykRgvoLcDmtgvW6QfZSQSbLpX9YIHtcXn4/GN3XRmanJAUaCgF6v W63jjjHc2YN6JzuY5lGfVYJrjZZ7JlUDz81uvQxY= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Original-Received: from strobe-lfs84 ([178.6.96.234]) by mail.gmx.com (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1M1ps8-1iP6Ag2k1Y-002Egt; Sun, 03 Nov 2019 16:43:10 +0100 In-Reply-To: <87ftj5at1q.fsf@gnus.org> (Lars Ingebrigtsen's message of "Sun, 03 Nov 2019 16:17:05 +0100") X-Provags-ID: V03:K1:O6AtYyBLYFvNYkaDQ1LeKoaQRA9JPek8vy3dJTgl8kL1VuIkKkg crrdAV01ePOmb8dU9opVNcFtKtdzK8CWtIqPcvz5nbf+g0lic786hdHr9oN40gYGpezdSxE MZ4kvZWSzkYm92UqZqqZeFgfsQqmUQbuCaJivCf8ey9aD6gLClHAE3XGbCXKe4u+mLQh7Sd q0/i5uy0siwx2JYizfd4w== X-UI-Out-Filterresults: notjunk:1;V03:K0:SBuMCSQjlnk=:uNHex5wthWMcbdG5j70wU6 4Sg+1+RLAfdGzgvLzBnTvlknfh3+IHNB9pZ3qWg3ILu7SFl/CDgbeVkfJ/g0URcqdEzLjCrcp SHxyCLUdwjNs7m55m5HMzlBL2oC+tZU2qhCIaq2uRj3YVtMO2DQET/AOhRKlXtOzb9VVWqiMK 5sOlFPfdV2eCMRBGBD/MfaodF6snvgusUhFDP+pK/Bg1Iyq0zSX5wfln6YGbA80SBU2/UU6Sg mDW8XaUtmvvKEN5UNIMXvyjRb9txcsB8YKGXPteSDnDKoWK+5j20mqJOkDxd676laDbF1HMAp PYzvPt78Wb/NUFIXAV1aCuaLsZAiuHSPwuPRy4Qqf98RpstB9d5j8PI8lCtSdIeSc7ewVir9C FeQ9CDRJqKRjh3S2JaRtIiZ/Kth0xsghMezlx2a8U3t0ex3iXPgGyw7ea+KKF4Xq6wZdKwt68 4xy7BumYiOrRVCeH0zER5txLNBMVucIde+eL6jaPv6wXnoSYYuNgr2TZ+fdpCCUm1vGwYZS4a tjcXds/f5l8WYFE+oXDC2M+LldpjkLKDfwr8gB+HJHPEEqNlLeMXTTWRIutU8kG4t3CLrlPPx 22tUhwxdbDsoaaXhq0oRbqpxb25xLDBzRc1egz7ikd5cUncKlChzq0reqhLTO4Vg3WetikIV9 eE0JU13mNH68KHqcpc7LywVZms2qnjq3nmqXYor8cY9NU6AyuRoAhbE8e7bDXMVGqkRTq2ftb Rek6lKo5ug77yF7BdUA/XIjlIxTVgfwE2ZIXDlZR9GUiBUhaGP1+aLNNVvg/9nWcIMWtjCr5 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:170878 Archived-At: On Sun, 03 Nov 2019 16:17:05 +0100 Lars Ingebrigtsen wrote: > Often when discussing code changes, people will send an email saying > something like "this was fixed by ", but Emacs doesn't have a > convenient way to display that. > > For that case, Emacs should have a command that prompts for an ID > (defaulting to the ID under point), and then (unless default-directory > is already in a vc-controlled directory), prompts for the directory to > look for that ID, and then display the commit. I wrote such a command (appended below) for my own use, but it's git-specific and I don't know the innards of VC well enough to adapt it, which is why I haven't proposed it for inclusion in Emacs. Maybe some of it could be used for a VC command. Steve Berman (defun srb-git-log (&optional repo commit) "Check REPO for COMMIT and if it exists, display its commit message. Interactively, prompt for REPO, defaulting to emacs-master, and for COMMIT, defaulting to the commit hash at point. If called with a prefix argument `C-u', show the commit diff in addition to the commit message." (interactive "P") (let* ((show (equal current-prefix-arg '(4))) (git-dir (if repo (read-directory-name "Repo: " "~/src/emacs/" nil t "emacs-master") "~/src/emacs/emacs-master")) (commit0 (substring-no-properties (or commit (read-string "Commit: " nil nil (word-at-point))))) (default-directory git-dir) (output-buffer (get-buffer-create "*git log*")) (args (split-string (mapconcat #'concat (if show `("show" ,commit0) `("log" "-1" ,commit0)) " "))) ;; FIXME: output of `git branch --contains' can be ambiguous (even ;; when `git log isn't, because one hash is for a commit, one for a ;; tree?). Can use `git rev-parse --disambiguate=' to find matching ;; full hashes. (proc (progn (with-current-buffer output-buffer (erase-buffer)) (call-process "git" nil output-buffer nil "branch" "--contains" commit0)))) (when proc (with-current-buffer output-buffer (goto-char (point-min)) (unless (looking-at "[ *]") (user-error "%s is not on branch %s" commit0 (file-name-base git-dir))) (insert "Branches:\n") (goto-char (point-max)) (apply #'call-process "git" nil output-buffer nil args) (when show (with-current-buffer output-buffer (diff-mode))) (pop-to-buffer output-buffer)))))