From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Spencer Baugh Newsgroups: gmane.emacs.bugs Subject: bug#62940: 29.0.60; vc: no easy way to get diff of all outgoing changes Date: Tue, 18 Apr 2023 15:12:45 -0400 Message-ID: Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="28300"; mail-complaints-to="usenet@ciao.gmane.io" To: 62940@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue Apr 18 21:13:28 2023 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1poqlZ-0007FM-S5 for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 18 Apr 2023 21:13:25 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1poqlE-0002kz-A0; Tue, 18 Apr 2023 15:13:04 -0400 Original-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 1poqlD-0002ko-FG for bug-gnu-emacs@gnu.org; Tue, 18 Apr 2023 15:13:03 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1poqlD-0001cH-6p for bug-gnu-emacs@gnu.org; Tue, 18 Apr 2023 15:13:03 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1poqlC-0004OF-Gd for bug-gnu-emacs@gnu.org; Tue, 18 Apr 2023 15:13:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Spencer Baugh Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 18 Apr 2023 19:13:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 62940 X-GNU-PR-Package: emacs X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.168184518016865 (code B ref -1); Tue, 18 Apr 2023 19:13:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 18 Apr 2023 19:13:00 +0000 Original-Received: from localhost ([127.0.0.1]:60398 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1poqlA-0004Nw-4y for submit@debbugs.gnu.org; Tue, 18 Apr 2023 15:13:00 -0400 Original-Received: from lists.gnu.org ([209.51.188.17]:38744) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1poql3-0004Ni-Bb for submit@debbugs.gnu.org; Tue, 18 Apr 2023 15:12:58 -0400 Original-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 1poqkz-0002k4-UB for bug-gnu-emacs@gnu.org; Tue, 18 Apr 2023 15:12:50 -0400 Original-Received: from mxout5.mail.janestreet.com ([64.215.233.18]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1poqky-0001aP-JD for bug-gnu-emacs@gnu.org; Tue, 18 Apr 2023 15:12:49 -0400 Received-SPF: pass client-ip=64.215.233.18; envelope-from=sbaugh@janestreet.com; helo=mxout5.mail.janestreet.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list 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-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:260234 Archived-At: Reproduction: 1. Make some local changes and commits 2. C-x v O to see the list of local commits that will be pushed 3. But there's no quick way to get a diff combining all those changes, which is useful if you've made multiple changes to the same function over the course of multiple commits, or if you want to review your changes overall before sending them out for review, or any other things like that. C-u C-x v = lets you specify two commits to diff, and the second commit even defaults to the working revision, but there's no easy way to get the "base" commit that is before all your local changes. If you're using git, you can try to remember your upstream branch and type that in, but that's just a matter of memory. For other VCSs (e.g. hg) there's no easy way. I'm working on adding an easy way to do this in vc, but there are several ways to approach it and I wanted to check first. A. (my preferred way) Support a M-1 prefix argument for C-x v =, which will do a diff against the "base" revision, whatever that is. B. Add a new keybinding in vc-read-revision which will insert the "base" revision, so you can just use C-u C-x v = and then insert the base revision at the first prompt. Seems hard to make compatible with non-default completion frameworks. C. Add new equivalents to C-x v = and C-x v D which diff against the base revision. Seems like ugly duplication of keybindings. D. Make some way to go from a log-view like C-x v O to a diff which combines all those commits. Could be nice, but seems a little unintuitive, and also doesn't support including uncommitted changes in the diff. Thoughts, suggestions?