GNU bug report logs - #18883
24.4; auto-revert-mode with notify doesn't work with symlinked directories

Previous Next

Package: emacs;

Reported by: Stefan Dorn <mail <at> muflax.com>

Date: Wed, 29 Oct 2014 13:46:02 UTC

Severity: wishlist

Merged with 16113, 64061, 65904

Found in versions 24.3.50, 24.4, 29.1.50, 30.0.50

To reply to this bug, email your comments to 18883 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#18883; Package emacs. (Wed, 29 Oct 2014 13:46:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Stefan Dorn <mail <at> muflax.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Wed, 29 Oct 2014 13:46:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Stefan Dorn <mail <at> muflax.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 24.4;
 auto-revert-mode with notify doesn't work with symlinked directories
Date: Wed, 29 Oct 2014 13:44:50 +0000
auto-revert-mode doesn't work for files that are in symlinked
directories, even if the file itself is a normal file.

auto-revert-mode watches files based on (buffer-file-name), but
notify will only return events for the file's real path.

Currently, auto-revert-mode doesn't use file-notify if the file itself is a
symlink, which seems like a workaround for the same problem.
auto-revert-mode should probably watch files based on (file-truename)
instead, which seems to me like it would fix both problems.

(As a workaround, I just disabled auto-revert-use-notify for now.)



In GNU Emacs 24.4.1 (x86_64-unknown-linux-gnu, GTK+ Version 2.24.24)
 of 2014-10-24 on scabeiathrax
Windowing system distributor `The X.Org Foundation', version 11.0.11601000
System Description:	Gentoo Base System release 2.2

Configured using:
 `configure --disable-dependency-tracking
 --prefix=/nix/store/f8raqkpc9ldzs9hk03l2rr13ayyrsq2h-emacs-24.4
 --with-x-toolkit=gtk --with-xft
 --with-crt-dir=/nix/store/i11d0d4015p0vbdnjq7lb509v9pwp049-glibc-2.19/lib'

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8

Major mode: EL

Minor modes in effect:
  magit-auto-revert-mode: t
  diff-auto-refine-mode: t
  fic-mode: t
  dired-omit-mode: t
  eldoc-mode: t
  global-flycheck-mode: t
  flycheck-mode: t
  global-auto-revert-mode: t
  auto-insert-mode: t
  which-function-mode: t
  global-auto-complete-mode: t
  auto-complete-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  shell-dirtrack-mode: t
  recentf-mode: t
  ido-ubiquitous-mode: t
  flx-ido-mode: t
  ido-everywhere: t
  smartparens-global-mode: t
  smartparens-mode: t
  delete-selection-mode: t
  show-paren-mode: t
  global-subword-mode: t
  subword-mode: t
  winner-mode: t
  global-hungry-delete-mode: t
  hungry-delete-mode: t
  highlight-parentheses-mode: t
  global-undo-tree-mode: t
  undo-tree-mode: t
  global-adaptive-wrap-prefix-mode: t
  adaptive-wrap-prefix-mode: t
  savehist-mode: t
  whitespace-mode: t
  nyan-mode: t
  volatile-highlights-mode: t
  global-hl-line-mode: t
  tooltip-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  global-visual-line-mode: t
  visual-line-mode: t
  transient-mark-mode: t
  hs-minor-mode: t

Recent input:
<left> <left> <left> <left> <left> <left> <left> <left> 
<left> <left> <left> <left> C-x C-s C-x SPC SPC <up> 
<up> <up> <up> <up> <up> <up> <up> <up> <up> <left> 
<left> <left> <left> <left> <left> <left> <left> <left> 
<left> <left> <left> <left> <up> C-h f <return> <up> 
<up> C-n C-n C-n <up> <up> <return> ( <backspace> <backspace> 
<down> <down> <down> <down> <down> C-x C-s C-n C-n 
C-n C-n C-n q C-n q C-n C-r SPC <down> <down> <down> 
<down> <down> <down> C-x SPC SPC <down> <down> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> C-x SPC SPC <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> C-h f <return> <switch-frame> <switch-frame> 
C-x g <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <up> g <tab> <tab> 
s c c t o d o C-c C-c <down> <tab> <tab> k y k y s 
s c c l u a C-a f i x SPC C-c C-c <up> <up> <up> <up> 
<up> <up> <up> <up> s c c o c a m l SPC + SPC s m l 
SPC m o e <backspace> d e s C-c C-c <down> <down> <tab> 
<up> <down> <tab> <down> <tab> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<next> <next> <home> <down> <down> <down> <down> <down> 
<tab> s c c p o i n t l e s s SPC a b b r e v SPC u 
p d a t e C-c C-c P P q C-r SPC q <up> <up> <up> <up> 
<up> <up> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <C-right> C-g <left> <left> 
<left> <left> S-SPC C-f C-f C-f M-x C-g M-w M-x r e 
p o r t b <return>

Recent messages:
Wrote /home/amon/.emacs.d/cache/undo/.!home!amon!src!emacs!config!.git!COMMIT_EDITMSG.~undo-tree~
Wrote /home/amon/src/emacs/config/.git/COMMIT_EDITMSG
Git finished
Type a prefix key to toggle it. Run 'actions' with their prefixes. '?' for more help.
Running git push -v origin master:refs/heads/master
Git finished
Type <right> to expand again, <left> to contract, SPC to reset
Quit
Mark set
Quit

Load-path shadows:
/home/amon/.emacs.d/packages/pde-0.2.16/tree-mode hides /home/amon/.emacs.d/packages/tree-mode-20121207.1538/tree-mode
/home/amon/.emacs.d/packages/css-mode-1.0/css-mode hides /nix/store/f8raqkpc9ldzs9hk03l2rr13ayyrsq2h-emacs-24.4/share/emacs/24.4/lisp/textmodes/css-mode
/home/amon/.emacs.d/packages/flymake-0.4.16/flymake hides /nix/store/f8raqkpc9ldzs9hk03l2rr13ayyrsq2h-emacs-24.4/share/emacs/24.4/lisp/progmodes/flymake
/home/amon/.emacs.d/packages/python-20120402/python hides /nix/store/f8raqkpc9ldzs9hk03l2rr13ayyrsq2h-emacs-24.4/share/emacs/24.4/lisp/progmodes/python
/home/amon/.emacs.d/packages/tabulated-list-20120406.1351/tabulated-list hides /nix/store/f8raqkpc9ldzs9hk03l2rr13ayyrsq2h-emacs-24.4/share/emacs/24.4/lisp/emacs-lisp/tabulated-list
/home/amon/.emacs.d/packages/ace-jump-mode-20140616.115/ace-jump-mode hides /home/amon/.emacs.d/local/ace-jump-mode/ace-jump-mode
/home/amon/.emacs.d/packages/ace-jump-mode-20140616.115/ace-jump-mode-pkg hides /home/amon/.emacs.d/local/ace-jump-mode/ace-jump-mode-pkg

Features:
(shadow sort mail-extr emacsbug shen-mode arc ielm conf-mode ag vc-svn
css-mode-expansions css-mode scss-mode nxml-mode-expansions rng-nxml
rng-valid rng-loc rng-uri rng-parse nxml-parse rng-match rng-dt rng-util
rng-pttrn nxml-ns nxml-mode nxml-outln nxml-rap nxml-util nxml-glyph
nxml-enc xmltok sh-script executable js2-mode-expansions
js-mode-expansions js2-mode cc-mode-expansions cc-mode cc-fonts cc-guess
cc-menus cc-styles cc-align cc-cmds cc-engine haskell-indentation
haskell-doc inf-haskell haskell-cabal haskell-utils haskell-decl-scan
haskell-mode haskell-string haskell-sort-imports haskell-align-imports
haskell-compat haskell-complete-module dabbrev the-org-mode-expansions
org org-macro org-footnote org-pcomplete org-list org-faces org-entities
org-version ob-emacs-lisp 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
org-loaddefs cal-menu calendar cal-loaddefs yaml-mode markdown-mode
smartparens-latex latex-mode-expansions latex tex-style tex dbus xml
c-eldoc smartparens-lua lua-mode autoload lisp-mnt mm-archive
url-handlers finder-inf gnutls 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 url-parse
url-vars mailcap paradox mule-util eieio-opt misearch multi-isearch
epa-file magit-key-mode magit grep diff-mode git-rebase-mode
git-commit-mode log-edit pcvs-util nix-mode
python-el-fgallina-expansions python dired-aux add-log rspec-mode
inf-ruby fic-mode flymake rhtml-mode rhtml-navigation rhtml-sgml-hacks
rhtml-ruby-hook smartparens-html html-mode-expansions sgml-mode
rhtml-erb rhtml-fonts ruby-block ruby-mode-expansions ruby-mode smie
yari smartparens-ruby enh-ruby-mode-expansions enh-ruby-mode color
server disp-table init-misc init-shell init-mail mu4e mu4e-speedbar
speedbar sb-image ezimage dframe mu4e-main mu4e-view epa derived epg
mu4e-headers mu4e-compose mu4e-draft mu4e-actions rfc2368 smtpmail
sendmail mu4e-mark mu4e-message html2text mu4e-proc mu4e-utils doc-view
jka-compr image-mode dired-open dired-hacks-utils dired-details+
dired-details dired-x wdired dired mu4e-lists mu4e-about mu4e-vars
message rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse
rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev mail-utils gmm-utils
mailheader mu4e-meta init-major-modes geiser-mode geiser-xref
geiser-racket geiser-guile geiser-repl geiser-image geiser-compile
geiser-debug geiser-company geiser-doc geiser-menu geiser-autodoc eldoc
info-look geiser-edit geiser-completion geiser-eval geiser-connection tq
geiser-syntax scheme geiser-log geiser-popup view geiser-impl
geiser-custom geiser-base ac-geiser geiser racket-mode racket-edit
racket-complete racket-eval racket-repl racket-common racket-indent
racket-font-lock racket-keywords-and-builtins racket-emacs-compat vc
vc-dispatcher flycheck pcase subr-x cl-lib-highlight autorevert
filenotify notes-mode autoinsert which-func guess-offset cc-vars cc-defs
init-auto-completion-nonsense ac-slime slime shell-command compile
arc-mode archive-mode pp hyperspec browse-url auto-complete-config
auto-complete popup haskell-yas yasnippet init-search imenu-anywhere
idomenu imenu occur-x tramp-cache tramp-sh tramp tramp-compat
auth-source gnus-util mm-util mail-prsvr password-cache tramp-loaddefs
trampver shell pcomplete comint ansi-color format-spec recentf
tree-widget smex ido-ubiquitous flx-ido flx ido kill-ring-search
init-editing elastic-tabstops help-fns+ wid-edit sticky-windows
smartparens-config smartparens delsel midnight paren yafolding fold-dwim
noutline outline hideshow superword subword number mc-jump mc-extras
mc-remove mc-cua cua-rect cua-base mc-compare multiple-cursors
mc-hide-unmatched-lines-mode mc-separate-operations
rectangular-region-mode mc-mark-pop mc-mark-more mc-cycle-cursors
mc-edit-lines multiple-cursors-core rect expand-region
text-mode-expansions er-basic-expansions thingatpt expand-region-core
expand-region-custom winner buffer-move windmove move-dup easy-mmode
custom-input-methods quail help-mode whole-line-or-region align
wcheck-mode hungry-delete highlight-parentheses undo-tree diff
adaptive-wrap desktop frameset time-date savehist saveplace init-look
diminish whitespace warnings nyan-mode etags ring volatile-highlights
automargin smooth-scrolling hl-line leuven-theme init-keys init-helpers
ample-regexps rx s ucs-normalize dash setup find-func init-load-path
ac-etags-autoloads ac-geiser-autoloads ace-link-autoloads ace-window
ace-jump-mode ace-jump-mode-autoloads adoc-mode-autoloads
ample-regexps-autoloads auto-save-buffers-enhanced-autoloads
auto-yasnippet-autoloads back-button-autoloads c-eldoc-autoloads
cl-lib-highlight-autoloads company-auctex-autoloads info easymenu
tex-site company-go-autoloads company-inf-ruby-autoloads
css-mode-autoloads diminish-autoloads dired-avfs-autoloads
dired-details+-autoloads dired-details-autoloads dired-imenu-autoloads
dired-isearch-autoloads dired-open-autoloads dired-rainbow-autoloads
dired-subtree-autoloads dired-hacks-utils-autoloads direx-grep-autoloads
elmacro-autoloads enh-ruby-mode-autoloads epoch-view-autoloads
erc-colorize-autoloads erc-nick-notify-autoloads erc-view-log-autoloads
esh-buf-stack-autoloads esh-help-autoloads
eshell-fringe-status-autoloads eshell-prompt-extras-autoloads
expand-region-autoloads f-autoloads fancy-narrow-autoloads
flx-ido-autoloads flx-autoloads flycheck-rust-autoloads
flymake-go-autoloads flymake-autoloads flymake-racket-autoloads
flymake-ruby-autoloads flymake-sass-autoloads flymake-shell-autoloads
flymake-easy-autoloads fold-dwim-autoloads fold-this-autoloads
frame-fns-autoloads free-keys-autoloads fuzzy-autoloads
git-annex-autoloads git-timemachine-autoloads go-autocomplete-autoloads
auto-complete-autoloads go-direx-autoloads direx-autoloads
go-projectile-autoloads go-eldoc-autoloads google-contacts-autoloads
google-this-autoloads graphviz-dot-mode-autoloads guess-offset-autoloads
guide-key-autoloads helm-cmd-t-autoloads helm-flycheck-autoloads
helm-git-autoloads helm-git-files-autoloads helm-git-grep-autoloads
helm-go-package-autoloads deferred-autoloads go-mode-autoloads
helm-google-autoloads google-autoloads helm-helm-commands-autoloads
helm-mode-manager-autoloads helm-package-autoloads
helm-projectile-all-autoloads helm-rb-autoloads helm-ag-r-autoloads
help-fns+-autoloads hide-lines-autoloads hide-region-autoloads
hideshowvis-autoloads highlight-indentation-autoloads
highlight-parentheses-autoloads hl-sexp-autoloads htmlize-autoloads
ibuffer-git-autoloads ido-ubiquitous-autoloads idomenu-autoloads
iedit-autoloads imenu+-autoloads imenu-anywhere-autoloads
indent-guide-autoloads inflections-autoloads kill-ring-search-autoloads
lacarte-autoloads lorem-ipsum-autoloads magit-annex-autoloads
magit-filenotify-autoloads magit-find-file-autoloads
magit-gh-pulls-autoloads gh-autoloads eieio byte-opt bytecomp
byte-compile cconv eieio-core logito-autoloads magit-tramp-autoloads
markup-faces-autoloads mc-extras-autoloads mc-jump-autoloads
memory-usage-autoloads move-dup-autoloads move-line-autoloads
mu4e-maildirs-extension-autoloads multi-eshell-autoloads
multifiles-autoloads mv-shell-autoloads nav-flash-autoloads
nix-mode-autoloads nm-autoloads notmuch-labeler-autoloads
notmuch-unread-autoloads notmuch-autoloads number-autoloads
oauth2-autoloads occur-context-resize-autoloads occur-x-autoloads
parenface-autoloads pde-autoloads peg-autoloads perspective-autoloads
phi-search-mc-autoloads phi-search-autoloads log4e-autoloads
popwin-autoloads pretty-symbols-autoloads pkg-info-autoloads
epl-autoloads python-autoloads qml-mode-autoloads quack-autoloads
rainbow-blocks-autoloads rainbow-identifiers-autoloads
rainbow-mode-autoloads regex-tool-autoloads register-channel-autoloads
request-autoloads rhtml-mode-autoloads rings-autoloads robe-autoloads
rotate-text-autoloads rubocop-autoloads ruby-block-autoloads
rust-mode-autoloads s-buffer-autoloads s-autoloads sane-term-autoloads
scss-mode-autoloads shadchen-autoloads shell-command-autoloads
shell-pop-autoloads shen-mode-autoloads skewer-mode-autoloads
simple-httpd-autoloads slime-autoloads smart-mode-line-autoloads
rich-minority-autoloads smartrep-autoloads smex-autoloads
smooth-scrolling-autoloads advice state-autoloads
sticky-windows-autoloads stumpwm-mode-autoloads
sunrise-x-checkpoints-autoloads sunrise-x-loop-autoloads
sunrise-x-mirror-autoloads sunrise-x-modeline-autoloads
sunrise-x-tabs-autoloads sunrise-x-tree-autoloads
sunrise-commander-autoloads swoop-autoloads pcre2el-autoloads
ht-autoloads tabulated-list-autoloads theme-park-mode-autoloads
tree-mode-autoloads ucs-utils-autoloads persistent-soft-autoloads
list-utils-autoloads help-fns cl-macs cl gv pcache-autoloads
undo-tree-autoloads wcheck-mode-autoloads whole-line-or-region-autoloads
workgroups-autoloads edmacro kmacro cl-loaddefs cl-lib
yaml-mode-autoloads yari-autoloads yaxception-autoloads package
epg-config 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 dbusbind gfilenotify dynamic-setting
system-font-setting font-render-setting move-toolbar gtk x-toolkit x
multi-tty emacs)

Memory information:
((conses 16 2075895 294762)
 (symbols 48 69115 0)
 (miscs 40 3457 5662)
 (strings 32 283964 120989)
 (string-bytes 1 6151183)
 (vectors 16 171841)
 (vector-slots 8 4853102 78018)
 (floats 8 25304 1923)
 (intervals 56 143586 14571)
 (buffers 960 51)
 (heap 1024 137373 9556))




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#18883; Package emacs. (Wed, 29 Oct 2014 14:12:01 GMT) Full text and rfc822 format available.

Message #8 received at 18883 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Stefan Dorn <mail <at> muflax.com>
Cc: 18883 <at> debbugs.gnu.org
Subject: Re: bug#18883: 24.4;
 auto-revert-mode with notify doesn't work with symlinked directories
Date: Wed, 29 Oct 2014 10:11:20 -0400
> auto-revert-mode watches files based on (buffer-file-name), but
> notify will only return events for the file's real path.

IIUC one way to solve this is to change auto-revert's notification
handler so it doesn't pay attention to the directory and only compares
the relative file name (after all, the hash-table should already make
sure the directories match).


        Stefan




Forcibly Merged 16113 18883. Request was from Michael Albinus <michael.albinus <at> gmx.de> to control <at> debbugs.gnu.org. (Tue, 17 Feb 2015 19:21:03 GMT) Full text and rfc822 format available.

Severity set to 'wishlist' from 'normal' Request was from Michael Albinus <michael.albinus <at> gmx.de> to control <at> debbugs.gnu.org. (Tue, 17 Feb 2015 19:23:01 GMT) Full text and rfc822 format available.

Merged 16113 18883 64061. Request was from Michael Albinus <michael.albinus <at> gmx.de> to control <at> debbugs.gnu.org. (Fri, 16 Jun 2023 08:15:02 GMT) Full text and rfc822 format available.

Merged 16113 18883 64061 65904. Request was from Michael Albinus <michael.albinus <at> gmx.de> to control <at> debbugs.gnu.org. (Wed, 13 Sep 2023 13:54:02 GMT) Full text and rfc822 format available.

This bug report was last modified 1 year and 273 days ago.

Previous Next


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