@@ -741,22 +741,26 @@ Return a list of line overlays used."
741741 (lambda (ref-changes )
742742 (when (buffer-live-p orig)
743743 (let ((ref-changes (diff-hl-adjust-changes ref-changes changes))
744- (base (diff-hl--target-buffer orig)))
744+ (base (diff-hl--target-buffer orig))
745+ (has-changes (or changes ref-changes)))
745746 (dolist (buf (buffer-list ))
746747 (when (and (buffer-live-p buf)
747- (eq (diff-hl--target-buffer buf) base)
748+ (or (eq buf base)
749+ (eq (buffer-base-buffer buf) base))
748750 (buffer-local-value 'diff-hl-mode buf))
749751 (with-current-buffer buf
752+ (diff-hl-remove-overlays)
750753 (let (reuse)
751- (diff-hl-remove-overlays)
752- (let ((diff-hl-highlight-function
753- diff-hl-highlight-reference-function)
754- (diff-hl-fringe-face-function
755- diff-hl-fringe-reference-face-function))
756- (setq reuse (diff-hl--update-overlays ref-changes nil )))
757- (diff-hl--update-overlays changes reuse)
758- (when (not (or changes ref-changes))
759- (diff-hl--autohide-margin))))))))))))))
754+ (when ref-changes
755+ (let ((diff-hl-highlight-function
756+ diff-hl-highlight-reference-function)
757+ (diff-hl-fringe-face-function
758+ diff-hl-fringe-reference-face-function))
759+ (setq reuse (diff-hl--update-overlays ref-changes nil ))))
760+ (when changes
761+ (diff-hl--update-overlays changes reuse)))
762+ (unless has-changes
763+ (diff-hl--autohide-margin)))))))))))))
760764
761765(defun diff-hl--resolve (value-or-buffer cb )
762766 (if (listp value-or-buffer)
0 commit comments