From some newer version of Emacs (I currently on 24.5.1) after some operation *vc-dir*
buffer begin to show ignored files.
I specially craft .hgignore
to make list of hg status
short. But Emacs vc-mode
doesn't respect my preference.
Is it possible to ignore ignored files?
To reproduce:
- open
*vc-dir*
- modify file
- undo changes on file from
*vc-dir*
- refresh
*vc-dir*
content
I made wrapper to diagnose problem:
#!/bin/sh
echo hg "$@" >> ~/tmp/hg.log
/usr/bin/hg "$@"
From above instruction steps I get log:
root # here I press C-x v d
id -b
id -t
status -C ./ # below I edit and save file
hg --config alias.status=status --config defaults.status= status -A hg.rst
hg --config alias.status=status --config defaults.status= status -A hg.rst
hg parent --template {rev} hg.rst
hg --config alias.status=status --config defaults.status= status -A hg.rst
hg --config alias.status=status --config defaults.status= status -A hg.rst
hg diff hg.rst # <== revert file in *vc-dir* by C-x v u
hg revert hg.rst
hg --config alias.status=status --config defaults.status= status -A hg.rst
hg root # <== here I press g
hg id -b
hg id -t
hg status -C ./
hg status -mardui -C hg.rst ./
Last command include -i
option which cause issue. Sources have:
$ grep -R -n mardu
lisp/vc/vc-hg.el:640: (concat "-mardu" (if files "i"))
which is:
(defun vc-hg-dir-status-files (dir files update-function)
(apply 'vc-hg-command (current-buffer) 'async dir "status"
(concat "-mardu" (if files "i"))
"-C" files)
(vc-run-delayed
(vc-hg-after-dir-status update-function)))
lisp/vc/vc.el
state that:
;; - dir-status-files (dir files update-function)
;; If FILES is non-nil, this function should report on all requested
;; files, including up-to-date or ignored files.
UPDATE I open bug: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=22003
I receive recommendation to type x
to clear unnecessary entry.