unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#20539: 24.5; magit-auto-revert-mode broken by 24.5 upgrade with change to behaviour of `let`
@ 2015-05-09 20:17 Greg A. Woods
  2015-05-09 22:26 ` Greg A. Woods
  2015-05-11  2:33 ` Stefan Monnier
  0 siblings, 2 replies; 4+ messages in thread
From: Greg A. Woods @ 2015-05-09 20:17 UTC (permalink / raw)
  To: 20539

(note this report is being sent from a different session, see below, not
the headers, for details of the environment where the problem occurs)

Normally when using magit all un-modified buffers open in files in a
given repository will be reverted to their on-dist version whenever one
presses 'g' (i.e. call magit-refresh).

This stopped happening when I upgraded from 24.4 to 24.5.

The problem occurs for both magit-90141129 and magit-1.4.1.

With the help of edebug-defun I discovered what was going wrong and the
following change now fixes the problem for me.

However I don't quite understand why `let' was being used in the way it
was and why `progn' was not being used in the way I do for the fix, or
why it worked before, but regardless it would seem to me that any change
to the behaviour of `let' in a point release is a major bug!  (though I
think I can understand why it might have gone un-noticed and it might
not actually affect very many people)

FYI, I did search through the NEWS file for changes between 24.4 and
24.5 and I didn't see anything that seemed to me to be related to `let'.

diff -u /Users/gaw/.emacs.d/elpa/magit-1.4.1/magit.el\~ /Users/gaw/.emacs.d/elpa/magit-1.4.1/magit.el
--- /Users/gaw/.emacs.d/elpa/magit-1.4.1/magit.el~	2015-05-09 12:37:36.000000000 -0700
+++ /Users/gaw/.emacs.d/elpa/magit-1.4.1/magit.el	2015-05-09 13:04:57.000000000 -0700
@@ -4065,7 +4065,8 @@
               (and file (string-prefix-p topdir file)
                    (not (string-prefix-p gitdir file))
                    (member (file-relative-name file topdir) tracked)
-                   (let ((auto-revert-mode t))
+                   (progn
+                     (auto-revert-mode t)
                      (auto-revert-handler)
                      (run-hooks 'magit-revert-buffer-hook))))))))))
 


In GNU Emacs 24.5.1 (x86_64-apple-darwin13.4.0, X toolkit, Xaw3d scroll bars)
 of 2015-05-01 on lithium.local
Windowing system distributor `The X.Org Foundation', version 11.0.11502000
Configured using:
 `configure --prefix=/usr/local/Cellar/emacs/24.5
 --enable-locallisppath=/usr/local/share/emacs/site-lisp
 --infodir=/usr/local/Cellar/emacs/24.5/share/info/emacs --without-dbus
 --without-gnutls --with-x --with-gif=no --with-tiff=no --with-jpeg=no
 'LDFLAGS=-lfreetype -lfontconfig''

Important settings:
  value of $LANG: POSIX
  locale-coding-system: nil

Major mode: Magit

Minor modes in effect:
  auto-image-file-mode: t
  display-time-mode: t
  timeclock-mode-line-display: t
  normal-erase-is-backspace-mode: t
  show-paren-mode: t
  magit-auto-revert-mode: t
  shell-dirtrack-mode: t
  diff-auto-refine-mode: t
  tooltip-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent messages:
Contacting host: marmalade-repo.org:80
Opening TLS connection to `marmalade-repo.org'...
Opening TLS connection with `openssl s_client -connect marmalade-repo.org:443 -no_ssl2 -ign_eof'...done
Opening TLS connection to `marmalade-repo.org'...done

Contacting host: marmalade-repo.org:80

GNU Emacs 24.5.1 (x86_64-apple-darwin13.4.0, X toolkit, Xaw3d scroll bars) of 2015-05-01 on lithium.local
 [4 times]
Mark saved where search started [2 times]

Load-path shadows:
/Users/gaw/.emacs.d/elpa/git-rebase-mode-1.0.0/git-rebase-mode hides /Users/gaw/lib/elisp/git-rebase-mode
/Users/gaw/.emacs.d/elpa/git-commit-mode-1.0.0/git-commit-mode hides /Users/gaw/lib/elisp/git-commit-mode
/Users/gaw/.emacs.d/elpa/magit-90141129/magit hides /Users/gaw/lib/elisp/magit/magit
/Users/gaw/.emacs.d/elpa/magit-90141129/magit-wip hides /Users/gaw/lib/elisp/magit/magit-wip
/Users/gaw/.emacs.d/elpa/magit-90141129/magit-key-mode hides /Users/gaw/lib/elisp/magit/magit-key-mode
/Users/gaw/.emacs.d/elpa/magit-90141129/magit-blame hides /Users/gaw/lib/elisp/magit/magit-blame
/Users/gaw/.emacs.d/elpa/magit-90141129/magit-autoloads hides /Users/gaw/lib/elisp/magit/magit-autoloads
/Users/gaw/.emacs.d/elpa/org-20150504/ox hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ox
/Users/gaw/.emacs.d/elpa/org-20150504/ox-texinfo hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ox-texinfo
/Users/gaw/.emacs.d/elpa/org-20150504/ox-publish hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ox-publish
/Users/gaw/.emacs.d/elpa/org-20150504/ox-org hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ox-org
/Users/gaw/.emacs.d/elpa/org-20150504/ox-odt hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ox-odt
/Users/gaw/.emacs.d/elpa/org-20150504/ox-md hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ox-md
/Users/gaw/.emacs.d/elpa/org-20150504/ox-man hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ox-man
/Users/gaw/.emacs.d/elpa/org-20150504/ox-latex hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ox-latex
/Users/gaw/.emacs.d/elpa/org-20150504/ox-icalendar hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ox-icalendar
/Users/gaw/.emacs.d/elpa/org-20150504/ox-html hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ox-html
/Users/gaw/.emacs.d/elpa/org-20150504/ox-beamer hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ox-beamer
/Users/gaw/.emacs.d/elpa/org-20150504/ox-ascii hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ox-ascii
/Users/gaw/.emacs.d/elpa/org-20150504/org hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/org
/Users/gaw/.emacs.d/elpa/org-20150504/org-w3m hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/org-w3m
/Users/gaw/.emacs.d/elpa/org-20150504/org-version hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/org-version
/Users/gaw/.emacs.d/elpa/org-20150504/org-timer hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/org-timer
/Users/gaw/.emacs.d/elpa/org-20150504/org-table hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/org-table
/Users/gaw/.emacs.d/elpa/org-20150504/org-src hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/org-src
/Users/gaw/.emacs.d/elpa/org-20150504/org-rmail hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/org-rmail
/Users/gaw/.emacs.d/elpa/org-20150504/org-protocol hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/org-protocol
/Users/gaw/.emacs.d/elpa/org-20150504/org-plot hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/org-plot
/Users/gaw/.emacs.d/elpa/org-20150504/org-pcomplete hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/org-pcomplete
/Users/gaw/.emacs.d/elpa/org-20150504/org-mouse hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/org-mouse
/Users/gaw/.emacs.d/elpa/org-20150504/org-mobile hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/org-mobile
/Users/gaw/.emacs.d/elpa/org-20150504/org-mhe hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/org-mhe
/Users/gaw/.emacs.d/elpa/org-20150504/org-macs hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/org-macs
/Users/gaw/.emacs.d/elpa/org-20150504/org-macro hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/org-macro
/Users/gaw/.emacs.d/elpa/org-20150504/org-loaddefs hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/org-loaddefs
/Users/gaw/.emacs.d/elpa/org-20150504/org-list hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/org-list
/Users/gaw/.emacs.d/elpa/org-20150504/org-irc hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/org-irc
/Users/gaw/.emacs.d/elpa/org-20150504/org-install hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/org-install
/Users/gaw/.emacs.d/elpa/org-20150504/org-inlinetask hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/org-inlinetask
/Users/gaw/.emacs.d/elpa/org-20150504/org-info hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/org-info
/Users/gaw/.emacs.d/elpa/org-20150504/org-indent hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/org-indent
/Users/gaw/.emacs.d/elpa/org-20150504/org-id hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/org-id
/Users/gaw/.emacs.d/elpa/org-20150504/org-habit hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/org-habit
/Users/gaw/.emacs.d/elpa/org-20150504/org-gnus hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/org-gnus
/Users/gaw/.emacs.d/elpa/org-20150504/org-footnote hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/org-footnote
/Users/gaw/.emacs.d/elpa/org-20150504/org-feed hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/org-feed
/Users/gaw/.emacs.d/elpa/org-20150504/org-faces hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/org-faces
/Users/gaw/.emacs.d/elpa/org-20150504/org-eshell hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/org-eshell
/Users/gaw/.emacs.d/elpa/org-20150504/org-entities hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/org-entities
/Users/gaw/.emacs.d/elpa/org-20150504/org-element hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/org-element
/Users/gaw/.emacs.d/elpa/org-20150504/org-docview hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/org-docview
/Users/gaw/.emacs.d/elpa/org-20150504/org-datetree hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/org-datetree
/Users/gaw/.emacs.d/elpa/org-20150504/org-ctags hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/org-ctags
/Users/gaw/.emacs.d/elpa/org-20150504/org-crypt hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/org-crypt
/Users/gaw/.emacs.d/elpa/org-20150504/org-compat hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/org-compat
/Users/gaw/.emacs.d/elpa/org-20150504/org-colview hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/org-colview
/Users/gaw/.emacs.d/elpa/org-20150504/org-clock hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/org-clock
/Users/gaw/.emacs.d/elpa/org-20150504/org-capture hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/org-capture
/Users/gaw/.emacs.d/elpa/org-20150504/org-bibtex hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/org-bibtex
/Users/gaw/.emacs.d/elpa/org-20150504/org-bbdb hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/org-bbdb
/Users/gaw/.emacs.d/elpa/org-20150504/org-attach hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/org-attach
/Users/gaw/.emacs.d/elpa/org-20150504/org-archive hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/org-archive
/Users/gaw/.emacs.d/elpa/org-20150504/org-agenda hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/org-agenda
/Users/gaw/.emacs.d/elpa/org-20150504/ob hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob
/Users/gaw/.emacs.d/elpa/org-20150504/ob-tangle hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-tangle
/Users/gaw/.emacs.d/elpa/org-20150504/ob-table hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-table
/Users/gaw/.emacs.d/elpa/org-20150504/ob-sqlite hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-sqlite
/Users/gaw/.emacs.d/elpa/org-20150504/ob-sql hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-sql
/Users/gaw/.emacs.d/elpa/org-20150504/ob-shen hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-shen
/Users/gaw/.emacs.d/elpa/org-20150504/ob-sh hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-sh
/Users/gaw/.emacs.d/elpa/org-20150504/ob-screen hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-screen
/Users/gaw/.emacs.d/elpa/org-20150504/ob-scheme hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-scheme
/Users/gaw/.emacs.d/elpa/org-20150504/ob-scala hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-scala
/Users/gaw/.emacs.d/elpa/org-20150504/ob-sass hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-sass
/Users/gaw/.emacs.d/elpa/org-20150504/ob-ruby hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-ruby
/Users/gaw/.emacs.d/elpa/org-20150504/ob-ref hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-ref
/Users/gaw/.emacs.d/elpa/org-20150504/ob-python hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-python
/Users/gaw/.emacs.d/elpa/org-20150504/ob-plantuml hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-plantuml
/Users/gaw/.emacs.d/elpa/org-20150504/ob-picolisp hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-picolisp
/Users/gaw/.emacs.d/elpa/org-20150504/ob-perl hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-perl
/Users/gaw/.emacs.d/elpa/org-20150504/ob-org hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-org
/Users/gaw/.emacs.d/elpa/org-20150504/ob-octave hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-octave
/Users/gaw/.emacs.d/elpa/org-20150504/ob-ocaml hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-ocaml
/Users/gaw/.emacs.d/elpa/org-20150504/ob-mscgen hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-mscgen
/Users/gaw/.emacs.d/elpa/org-20150504/ob-maxima hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-maxima
/Users/gaw/.emacs.d/elpa/org-20150504/ob-matlab hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-matlab
/Users/gaw/.emacs.d/elpa/org-20150504/ob-makefile hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-makefile
/Users/gaw/.emacs.d/elpa/org-20150504/ob-lob hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-lob
/Users/gaw/.emacs.d/elpa/org-20150504/ob-lisp hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-lisp
/Users/gaw/.emacs.d/elpa/org-20150504/ob-lilypond hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-lilypond
/Users/gaw/.emacs.d/elpa/org-20150504/ob-ledger hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-ledger
/Users/gaw/.emacs.d/elpa/org-20150504/ob-latex hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-latex
/Users/gaw/.emacs.d/elpa/org-20150504/ob-keys hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-keys
/Users/gaw/.emacs.d/elpa/org-20150504/ob-js hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-js
/Users/gaw/.emacs.d/elpa/org-20150504/ob-java hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-java
/Users/gaw/.emacs.d/elpa/org-20150504/ob-io hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-io
/Users/gaw/.emacs.d/elpa/org-20150504/ob-haskell hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-haskell
/Users/gaw/.emacs.d/elpa/org-20150504/ob-gnuplot hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-gnuplot
/Users/gaw/.emacs.d/elpa/org-20150504/ob-fortran hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-fortran
/Users/gaw/.emacs.d/elpa/org-20150504/ob-exp hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-exp
/Users/gaw/.emacs.d/elpa/org-20150504/ob-eval hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-eval
/Users/gaw/.emacs.d/elpa/org-20150504/ob-emacs-lisp hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-emacs-lisp
/Users/gaw/.emacs.d/elpa/org-20150504/ob-dot hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-dot
/Users/gaw/.emacs.d/elpa/org-20150504/ob-ditaa hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-ditaa
/Users/gaw/.emacs.d/elpa/org-20150504/ob-css hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-css
/Users/gaw/.emacs.d/elpa/org-20150504/ob-core hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-core
/Users/gaw/.emacs.d/elpa/org-20150504/ob-comint hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-comint
/Users/gaw/.emacs.d/elpa/org-20150504/ob-clojure hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-clojure
/Users/gaw/.emacs.d/elpa/org-20150504/ob-calc hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-calc
/Users/gaw/.emacs.d/elpa/org-20150504/ob-awk hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-awk
/Users/gaw/.emacs.d/elpa/org-20150504/ob-asymptote hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-asymptote
/Users/gaw/.emacs.d/elpa/org-20150504/ob-R hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-R
/Users/gaw/.emacs.d/elpa/org-20150504/ob-C hides /usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/org/ob-C

Features:
(shadow sort mail-extr emacsbug diff-hl-dired diff-hl face-remap vc-hg
vc-dir pcase rng-loc rng-uri rng-parse rng-match rng-dt rng-util
rng-pttrn nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-latex
ox-icalendar ox-html table ox-ascii ox-publish ox org-element org-table
org-agenda esh-var esh-io esh-cmd esh-opt esh-ext esh-proc esh-arg eldoc
esh-groups eshell esh-module esh-mode esh-util doc-view image-mode dired
bibtex org-id org org-macro org-footnote org-pcomplete org-list
org-faces org-entities org-version ob-emacs-lisp org-loaddefs gnus-sum
nnoo gnus-group gnus-undo nnmail mail-source gnus-start gnus-spec
gnus-int gnus-range gnus-win gnus gnus-ems nnheader rx ob-octave foldout
noutline outline calc calc-loaddefs calc-macs ob ob-tangle ob-ref ob-lob
ob-table ob-exp org-src ob-keys ob-comint ob-core ob-eval org-compat
org-macs websocket cl-macs cl gv bindat autoload lisp-mnt tar-mode
parse-time mm-archive network-stream starttls url-http tls url-gw
url-cache url-auth url url-proxy url-privacy url-expand url-methods
url-history url-cookie url-domsuf url-util mailcap url-handlers
url-parse url-vars finder-inf log-view vc-annotate flyspell pp wid-edit
descr-text debug eieio-opt speedbar sb-image ezimage dframe apropos
etags misearch multi-isearch pcmpl-unix vc-git cc-langs mule-util
image-file time sendmail timeclock solar cal-dst appt diary-lib
diary-loaddefs cal-menu calendar cal-loaddefs ispell hippie-exp warnings
cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine
cc-vars cc-defs pcvs vc-cvs pcvs-parse pcvs-info pcvs-defs ewoc
find-func browse-url paren sh-script smie executable magit-key-mode
magit view tramp tramp-compat auth-source eieio byte-opt bytecomp
byte-compile cl-extra cconv eieio-core gnus-util password-cache
tramp-loaddefs trampver shell pcomplete advice help-mode epa derived epg
diff-mode autorevert filenotify git-rebase-mode thingatpt
git-commit-mode server log-edit easy-mmode message format-spec rfc822
mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047
rfc2045 ietf-drums mm-util help-fns mail-prsvr mailabbrev mail-utils
gmm-utils mailheader pcvs-util add-log grep compile comint ansi-color
ring jka-compr memory-usage-autoloads edmacro kmacro cl-loaddefs cl-lib
info easymenu package epg-config vc vc-dispatcher time-date tooltip
electric uniquify ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd
tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment
lisp-mode prog-mode register page menu-bar rfn-eshadow timer select
scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cham
georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese hebrew greek romanian slovak czech european ethiopic
indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple
abbrev minibuffer nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote make-network-process
dynamic-setting font-render-setting x-toolkit x multi-tty emacs)

Memory information:
((conses 16 941394 123416)
 (symbols 48 75209 0)
 (miscs 40 3004 2439)
 (strings 32 151755 21349)
 (string-bytes 1 4426324)
 (vectors 16 48841)
 (vector-slots 8 1594851 136319)
 (floats 8 736 854)
 (intervals 56 80437 3025)
 (buffers 960 56))

-- 
						Greg A. Woods

+1 250 762-7675                                RoboHack <woods@robohack.ca>
Planix, Inc. <woods@planix.com>      Secrets of the Weird <woods@weird.com>





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#20539: 24.5; magit-auto-revert-mode broken by 24.5 upgrade with change to behaviour of `let`
  2015-05-09 20:17 bug#20539: 24.5; magit-auto-revert-mode broken by 24.5 upgrade with change to behaviour of `let` Greg A. Woods
@ 2015-05-09 22:26 ` Greg A. Woods
  2017-12-08  1:43   ` Noam Postavsky
  2015-05-11  2:33 ` Stefan Monnier
  1 sibling, 1 reply; 4+ messages in thread
From: Greg A. Woods @ 2015-05-09 22:26 UTC (permalink / raw)
  To: 20539

So, it appears I (and perhaps edbug) was confused between the function
`auto-revert-mode' and the variable of the same name!  I should know
better!

So the problem is more likely just that `auto-revert-handler' is not
behaving quite the same way in 24.5 as it did before, specifically with
respect to the value of the `auto-revert-mode' variable.  Since it is
explicitly marked as an internal function I retract my suggestion that
the change is in any way a major bug in 24.5.

My proposed fix is no doubt wrong too as I think it will just force
auto-revert-mode on for each buffer it tries to revert.

I've reported the issue to the magit maintainers on github and hopefully
someone can find a suitable work-around, though perhaps the real fix will
involve enhancing autorevert to make it more amenable to non-interactive
interaction with other modules.

For my own use I think my hack works anyway because I think I do always
want auto-revert-mode for all buffers visiting files in any repository
I'm working in.

Sorry for any confusion w.r.t. `let'!

-- 
						Greg A. Woods

+1 250 762-7675                                RoboHack <woods@robohack.ca>
Planix, Inc. <woods@planix.com>      Secrets of the Weird <woods@weird.com>





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#20539: 24.5; magit-auto-revert-mode broken by 24.5 upgrade with change to behaviour of `let`
  2015-05-09 20:17 bug#20539: 24.5; magit-auto-revert-mode broken by 24.5 upgrade with change to behaviour of `let` Greg A. Woods
  2015-05-09 22:26 ` Greg A. Woods
@ 2015-05-11  2:33 ` Stefan Monnier
  1 sibling, 0 replies; 4+ messages in thread
From: Stefan Monnier @ 2015-05-11  2:33 UTC (permalink / raw)
  To: Greg A. Woods; +Cc: 20539

> +++ /Users/gaw/.emacs.d/elpa/magit-1.4.1/magit.el	2015-05-09 13:04:57.000000000 -0700
> @@ -4065,7 +4065,8 @@
>                (and file (string-prefix-p topdir file)
>                     (not (string-prefix-p gitdir file))
>                     (member (file-relative-name file topdir) tracked)
> -                   (let ((auto-revert-mode t))
> +                   (progn
> +                     (auto-revert-mode t)
>                       (auto-revert-handler)
>                       (run-hooks 'magit-revert-buffer-hook))))))))))
 
I see you've figured that the above patch won't really do what you want,
and that calling auto-revert-handler is a bad idea here.

I think it should just check if the buffer is modified and if not call
revert-buffer.  The obvious other place where such a code can be found
is in PCL-CVS where we did the exact same thing for the same reasons
(before auto-revert-mode existed):

      (unless (or (null buffer)
		  (memq (cvs-fileinfo->type fileinfo) '(MESSAGE UNKNOWN))
		  ;; FIXME: check whether revert is really needed.
		  ;; `(verify-visited-file-modtime buffer)' doesn't cut it
		  ;; because it only looks at the time stamp (it ignores
		  ;; read-write changes) which is not changed by `commit'.
		  (buffer-modified-p buffer))
	(with-current-buffer buffer
	  (ignore-errors
	    (revert-buffer 'ignore-auto 'dont-ask 'preserve-modes)
	    ;; `preserve-modes' avoids changing the (minor) modes.  But we
	    ;; do want to reset the mode for VC, so we do it explicitly.
	    (vc-find-file-hook)
	    (when (eq (cvs-fileinfo->type fileinfo) 'CONFLICT)
	      (smerge-start-session))))))))



-- Stefan





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#20539: 24.5; magit-auto-revert-mode broken by 24.5 upgrade with change to behaviour of `let`
  2015-05-09 22:26 ` Greg A. Woods
@ 2017-12-08  1:43   ` Noam Postavsky
  0 siblings, 0 replies; 4+ messages in thread
From: Noam Postavsky @ 2017-12-08  1:43 UTC (permalink / raw)
  To: Greg A. Woods; +Cc: 20539

# not an Emacs bug
tags 20539 notabug
close 20539
quit

"Greg A. Woods" <woods@robohack.ca> writes:

> I've reported the issue to the magit maintainers on github and hopefully
> someone can find a suitable work-around, though perhaps the real fix will
> involve enhancing autorevert to make it more amenable to non-interactive
> interaction with other modules.

AFAIK, with current magit, magit-auto-revert-mode is now functional in
all recent Emacs versions.





^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-12-08  1:43 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-05-09 20:17 bug#20539: 24.5; magit-auto-revert-mode broken by 24.5 upgrade with change to behaviour of `let` Greg A. Woods
2015-05-09 22:26 ` Greg A. Woods
2017-12-08  1:43   ` Noam Postavsky
2015-05-11  2:33 ` Stefan Monnier

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).