From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Noam Postavsky Newsgroups: gmane.emacs.bugs Subject: bug#11320: [PATCH 2/2] Useful behavior for ediff-inferior-compare-regions when merging with an ancestor Date: Fri, 11 May 2018 22:03:04 -0400 Message-ID: <87d0y1ljfr.fsf@gmail.com> References: <1335209306-81494-1-git-send-email-dave@boostpro.com> <1335209306-81494-3-git-send-email-dave@boostpro.com> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Trace: blaine.gmane.org 1526090531 6279 195.159.176.226 (12 May 2018 02:02:11 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Sat, 12 May 2018 02:02:11 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) Cc: 11320@debbugs.gnu.org To: Dave Abrahams Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sat May 12 04:02:07 2018 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fHJrK-0001V4-FX for geb-bug-gnu-emacs@m.gmane.org; Sat, 12 May 2018 04:02:07 +0200 Original-Received: from localhost ([::1]:35983 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fHJtR-0001Xz-Et for geb-bug-gnu-emacs@m.gmane.org; Fri, 11 May 2018 22:04:17 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:45446) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fHJtH-0001XW-JK for bug-gnu-emacs@gnu.org; Fri, 11 May 2018 22:04:09 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fHJtC-00015u-Hg for bug-gnu-emacs@gnu.org; Fri, 11 May 2018 22:04:07 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:50922) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fHJtC-00015d-Br for bug-gnu-emacs@gnu.org; Fri, 11 May 2018 22:04:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1fHJtB-0005dc-SF for bug-gnu-emacs@gnu.org; Fri, 11 May 2018 22:04:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Noam Postavsky Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 12 May 2018 02:04:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 11320 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 11320-submit@debbugs.gnu.org id=B11320.152609059421615 (code B ref 11320); Sat, 12 May 2018 02:04:01 +0000 Original-Received: (at 11320) by debbugs.gnu.org; 12 May 2018 02:03:14 +0000 Original-Received: from localhost ([127.0.0.1]:58819 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fHJsP-0005cZ-OC for submit@debbugs.gnu.org; Fri, 11 May 2018 22:03:13 -0400 Original-Received: from mail-it0-f49.google.com ([209.85.214.49]:40846) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fHJsO-0005cL-1v for 11320@debbugs.gnu.org; Fri, 11 May 2018 22:03:12 -0400 Original-Received: by mail-it0-f49.google.com with SMTP id j186-v6so4406924ita.5 for <11320@debbugs.gnu.org>; Fri, 11 May 2018 19:03:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=TJ9bXODVL89Ji7YlX/18q+KLSrP0vh5765bTmsvvUQo=; b=Nxw3iBIQanJVzY/g9XbR5XT6KPKBj12RatXR2DkTMIIDyMh0V7akbtOuKziZdyT/d1 ma1/cJchw6UgE95l7DkmzOOBsnOnec8V5U1ZgHovSMDLdVzg6ZgWmwS6dQ+4e9UacnVO XTpHdft9DnMUKr+1PqSrFxs4IvXCqbdwDdvxfjw5PXUZqc+lBsa3ktgqdTu8yfLWfWRH j8xErY64r1jT/aPGPQnpqY8p2fwWqsDfVOfjH3T+KSzI+DoVvKg5VP8lfuk3FTVx2Yj+ lAI4myEw8VX2SMyMkPdgXIovg/R2jhXcqEhfiWSxRxIQNGWr+8JC/RLYcmX7YAjiNODw T96g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=TJ9bXODVL89Ji7YlX/18q+KLSrP0vh5765bTmsvvUQo=; b=NEZqeUfxMyEC+NpSKX6GxbJbDwYodWUVlPNI0sFImTW/nhDSnu3vn2/VDGeszlQycM oi3cwEkHyTgbresv83vId2LzIr/EUSg3jnDwY6lPsdPFeEQxJZxzyqBg4S6wf1rP7CjY wGFRQdrfcOJY4Xd+/SYUvLNb3k4PzAdc9uKp/6aCm7VaignNZ6I49tGo2xC4mf90n0ri No4OliRB0OKQW6Ewz8BaMBUo/AKxM0fonbADvgzEYxHh8Dr+yP6pPF5QK14rP55z+oBZ AYc7jSQKef0TkIl0bEU7A1JGH0V4aKD0uj26xtMuIYky4dlzvbrfSfBL8v+BdBNQ5MI+ uAJg== X-Gm-Message-State: ALKqPwdCP8khUZNODVAtX0tIemBOUuXY7VoHoZgqGxN0HkSCEDGuJzPF 8EWE4fBxnWva10cBaKNp4Alg0Q== X-Google-Smtp-Source: AB8JxZpEoWd/qx2Pt+sn1qAp5B7trQlV3Nn/XYVIqCC5EuSGmvTAAcgeTC229N/dCYpG4urrWJbE1g== X-Received: by 2002:a24:5bc8:: with SMTP id g191-v6mr183811itb.9.1526090586132; Fri, 11 May 2018 19:03:06 -0700 (PDT) Original-Received: from zebian (cbl-45-2-119-34.yyz.frontiernetworks.ca. [45.2.119.34]) by smtp.googlemail.com with ESMTPSA id c38-v6sm2221071ioj.62.2018.05.11.19.03.05 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 11 May 2018 19:03:05 -0700 (PDT) In-Reply-To: <1335209306-81494-3-git-send-email-dave@boostpro.com> (Dave Abrahams's message of "Mon, 23 Apr 2012 15:28:26 -0400") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:146131 Archived-At: --=-=-= Content-Type: text/plain Dave Abrahams writes: > The default, when "comparing currently-highlighted difference regions" > was to compare the selected region to the entire conflict in the merge > buffer. Right, this is pretty useless. > - (if (and (ediff-valid-difference-p ediff-current-difference) > + (when (and (ediff-valid-difference-p ediff-current-difference) > (y-or-n-p "Compare currently highlighted difference regions? ")) > - (setq use-current-diff-p t)) > + (setq use-current-diff-p t) > + (if ediff-merge-with-ancestor-job > + (setq bufB ediff-ancestor-buffer))) Would it make sense to ask about ancestor vs merge buffer even before the "currently highlighted" query? I don't quite see why those two should be tied together. Although with the patch below, it might be too many queries, perhaps it's better to only ask when given a prefix arg or something. --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=0001-Let-ediff-compare-against-ancestor-buffer-Bug-11320.patch Content-Description: patch >From b503830af00e38ba0d510467dea957e95668a74b Mon Sep 17 00:00:00 2001 From: Noam Postavsky Date: Fri, 11 May 2018 21:56:56 -0400 Subject: [PATCH] Let ediff '=' compare against ancestor buffer (Bug#11320) * lisp/vc/ediff-util.el (ediff-inferior-compare-regions): Ask user whether to compare against the ancestor or merge buffer. Use read-multiple-choice for A vs B buffer query. --- lisp/vc/ediff-util.el | 31 +++++++++++++------------------ 1 file changed, 13 insertions(+), 18 deletions(-) diff --git a/lisp/vc/ediff-util.el b/lisp/vc/ediff-util.el index 104a578268..c121df9eca 100644 --- a/lisp/vc/ediff-util.el +++ b/lisp/vc/ediff-util.el @@ -3546,25 +3546,20 @@ ediff-inferior-compare-regions (ediff-paint-background-regions 'unhighlight) (cond ((ediff-merge-job) - (setq bufB ediff-buffer-C) + (setq bufB (if (and ediff-ancestor-buffer + (y-or-n-p "Compare against ancestor buffer?")) + ediff-ancestor-buffer + ediff-buffer-C)) ;; ask which buffer to compare to the merge buffer - (while (cond ((eq answer ?A) - (setq bufA ediff-buffer-A - possibilities '(?B)) - nil) - ((eq answer ?B) - (setq bufA ediff-buffer-B - possibilities '(?A)) - nil) - ((equal answer "")) - (t (beep 1) - (message "Valid values are A or B") - (sit-for 2) - t)) - (let ((cursor-in-echo-area t)) - (message - "Which buffer to compare to the merge buffer (A or B)? ") - (setq answer (capitalize (read-char-exclusive)))))) + (setq answer (car (read-multiple-choice + (format "Which buffer to compare to the %s buffer?" + (if (eq bufB ediff-ancestor-buffer) + "ancestor" "merge")) + '((?a "A") + (?b "B"))))) + (if (eq answer ?a) + (setq bufA ediff-buffer-A) + (setq bufA ediff-buffer-B))) ((ediff-3way-comparison-job) ;; ask which two buffers to compare -- 2.11.0 --=-=-=--