GNU bug report logs - #25493
26.0.50; ediff merge should (optionally) show ancestor in fourth window

Previous Next

Package: emacs;

Reported by: Philipp Stephani <p.stephani2 <at> gmail.com>

Date: Fri, 20 Jan 2017 11:19:01 UTC

Severity: wishlist

Found in version 26.0.50

Done: Tino Calancha <tino.calancha <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: npostavs <at> users.sourceforge.net
To: Tino Calancha <tino.calancha <at> gmail.com>
Cc: Philipp Stephani <p.stephani2 <at> gmail.com>, 25493 <at> debbugs.gnu.org
Subject: bug#25493: 26.0.50; ediff merge should (optionally) show ancestor in fourth window
Date: Sat, 04 Mar 2017 18:06:50 -0500
Tino Calancha <tino.calancha <at> gmail.com> writes:

> Philipp Stephani <p.stephani2 <at> gmail.com> writes:
>
>> It would be very useful if ediff merge could optionally display the
>> ancestor in a fourth window, like vimdiff or meld.  See
>> https://lists.gnu.org/archive/html/emacs-devel/2017-01/msg00204.html.
>
> Following patch, by default, display the ancestor buffer and auto refine
> it in 3way merges.
> This feature can be disabled by customizing a new option.

Could you perhaps explain more in the commit messages about how the
patch works, at a high level?  It's long enough that I get lost while
reading it.

As a user, I noticed that `ediff-scroll-vertically' doesn't scroll the
ancestor buffer.

Also, I want diff refining in buffer A and B against the ancestor, not
each other.  This might be more of an addtional feature request that
doesn't necessarily need to addressed in your patch though.

> Subject: [PATCH 1/3] Show ancestor buffer in 3way merges
>
> Add an option to control if the ancestor buffer must
> be shown in 3way merges (Bug#25493).
> Add an option to control whether if show or ignore diffs with
                                   ^^
s/if/to/ I think?

>  
> +(defsubst ediff--check-ancestor-exists ()

I don't think there is reason for this to be a defsubst over a defun.

> +
> +(defun ediff-toggle-show-ancestor ()

> +    (when (eq ediff-show-ancestor
> +              (alist-get 'ediff-show-ancestor alist))
> +      (assq-delete-all 'ediff-show-ancestor alist)

I think this should be (setq alist (assq-delete-all ...))

or equivalently (cl-callf assq-delete-all alist 'ediff-show-ancestor)


> +(defun ediff-toggle-hide-equal-diffs-with-ancestor ()

> +    (when (eq ediff-hide-equal-diffs-with-ancestor
> +              (alist-get 'ediff-hide-equal-diffs-with-ancestor
> +                         alist))
> +      (assq-delete-all 'ediff-hide-equal-diffs-with-ancestor
> +                       alist)

Again here.





This bug report was last modified 8 years and 122 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.