GNU bug report logs - #70004
30.0.50; vc-dir-mark-all-files doesn't work in *vc-dir* buffer

Previous Next

Package: emacs;

Reported by: Bartosz Kaczyński <bkaczynski <at> posteo.net>

Date: Tue, 26 Mar 2024 15:22:02 UTC

Severity: normal

Found in version 30.0.50

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 70004 in the body.
You can then email your comments to 70004 AT debbugs.gnu.org in the normal way.

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#70004; Package emacs. (Tue, 26 Mar 2024 15:22:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Bartosz Kaczyński <bkaczynski <at> posteo.net>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Tue, 26 Mar 2024 15:22:02 GMT) Full text and rfc822 format available.

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

From: Bartosz Kaczyński <bkaczynski <at> posteo.net>
To: bug-gnu-emacs <at> gnu.org
Subject: 30.0.50; vc-dir-mark-all-files doesn't work in *vc-dir* buffer
Date: Tue, 26 Mar 2024 14:17:50 +0000
As per the subject, the command for selecting files in the buffer works
only on a single file, not on all that require action. I tested it both
through the M key and via M-x. Tested using emacs -q as well with same
results.


In GNU Emacs 30.0.50 (build 2, x86_64-pc-linux-gnu, GTK+ Version
 3.24.41, cairo version 1.18.0) of 2024-03-25 built on celsius
Repository revision: f54b1d9f7b7a977ee4856c778a309c900ce9e8fa
Repository branch: master
Windowing system distributor 'SUSE LINUX', version 11.0.12302004
System Description: openSUSE Tumbleweed

Configured using:
 'configure --with-imagemagick --with-xwidgets'

Configured features:
CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ IMAGEMAGICK
JPEG JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES
NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3
THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XDBE XIM XINPUT2
XPM XWIDGETS GTK3 ZLIB

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

Major mode: Group

Minor modes in effect:
  server-mode: t
  global-company-mode: t
  company-mode: t
  doom-modeline-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  which-key-mode: t
  smartparens-global-mode: t
  global-diff-hl-mode: t
  savehist-mode: t
  recentf-mode: t
  override-global-mode: t
  gnus-topic-mode: t
  gnus-undo-mode: t
  fido-vertical-mode: t
  icomplete-vertical-mode: t
  icomplete-mode: t
  fido-mode: t
  save-place-mode: t
  global-auto-revert-mode: t
  global-hl-line-mode: t
  delete-selection-mode: t
  pixel-scroll-precision-mode: t
  minibuffer-depth-indicate-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  minibuffer-regexp-mode: t
  buffer-read-only: t
  column-number-mode: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/home/bartk/.emacs.d/elpa/ef-themes-1.6.1.0.20240322.140619/theme-loaddefs hides /usr/local/share/emacs/30.0.50/lisp/theme-loaddefs

Features:
(shadow sort emacsbug gnus-cite mail-extr gnus-demon nndraft nnmh utf-7
epa-file network-stream nsm nnfolder nnnil gnus-agent gnus-srvr
gnus-score score-mode nnvirtual gnus-msg nntp gnus-cache face-remap
pulse color display-fill-column-indicator display-line-numbers checkdoc
lisp-mnt flymake compile server company-oddmuse company-keywords
company-etags etags fileloop generator xref company-gtags
company-dabbrev-code company-dabbrev company-files company-clang
company-capf company-cmake company-semantic company-template
company-bbdb company doom-modeline doom-modeline-segments
doom-modeline-env doom-modeline-core comp comp-cstr warnings comp-run
comp-common shrink-path f s nerd-icons nerd-icons-faces nerd-icons-data
nerd-icons-data-mdicon nerd-icons-data-flicon nerd-icons-data-codicon
nerd-icons-data-devicon nerd-icons-data-sucicon nerd-icons-data-wicon
nerd-icons-data-faicon nerd-icons-data-powerline nerd-icons-data-octicon
nerd-icons-data-pomicon nerd-icons-data-ipsicon init yasnippet-snippets
yasnippet which-key smartparens advice loadhist thingatpt dash
exec-path-from-shell diff-hl log-view pcvs-util vc-dir ewoc vc
vc-dispatcher diff-mode savehist recentf tree-widget init-org ob-C
cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine
cc-vars cc-defs ob-plantuml ob-python python project compat pcase
treesit ob-shell shell cl-extra help-mode edmacro kmacro bind-key
easy-mmode init-gnus gnus-topic gnus-icalendar org-capture org-refile
org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-src
ob-comint org-pcomplete pcomplete comint ansi-osc ansi-color org-list
org-footnote org-faces org-entities noutline outline icons ob-emacs-lisp
ob-core ob-eval org-cycle org-table ol rx org-fold org-fold-core
org-keys oc org-loaddefs find-func org-version org-compat org-macs
format-spec gnus-art mm-uu mml2015 mm-view mml-smime smime gnutls dig
gnus-sum shr pixel-fill kinsoku url-file svg dom gnus-group gnus-undo
gnus-start gnus-dbus dbus xml gnus-cloud nnimap nnmail mail-source utf7
nnoo parse-time iso8601 gnus-spec gnus-int gnus-range message sendmail
yank-media puny dired dired-loaddefs rfc822 mml mml-sec epa derived epg
rfc6068 epg-config mailabbrev mailheader gnus-win gnus nnheader
gnus-util text-property-search time-date mail-utils range wid-edit
mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util
ietf-drums mail-prsvr gmm-utils icalendar diary-lib diary-loaddefs
cal-menu calendar cal-loaddefs icomplete auth-source-pass saveplace
autorevert filenotify hl-line delsel pixel-scroll cua-base ring mb-depth
cus-load ef-elea-dark-theme ef-themes finder-inf ace-window-autoloads
avy-autoloads company-autoloads devdocs-autoloads diff-hl-autoloads
doom-modeline-autoloads ef-themes-autoloads
exec-path-from-shell-autoloads markdown-mode-autoloads
multiple-cursors-autoloads nerd-icons-autoloads nov-autoloads
esxml-autoloads kv-autoloads shrink-path-autoloads f-autoloads
s-autoloads smartparens-autoloads info dash-autoloads
visual-fill-column-autoloads which-key-autoloads
yasnippet-snippets-autoloads yasnippet-autoloads package browse-url url
url-proxy url-privacy url-expand url-methods url-history url-cookie
generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse
auth-source cl-seq eieio eieio-core cl-macs password-cache json subr-x
map byte-opt gv bytecomp byte-compile url-vars cl-loaddefs cl-lib
early-init rmc iso-transl tooltip cconv eldoc paren electric uniquify
ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win
term/common-win x-dnd touch-screen tool-bar dnd fontset image regexp-opt
fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode
register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select
scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors
frame minibuffer nadvice seq simple cl-generic indonesian philippine
cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese composite emoji-zwj charscript
charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure
cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp
files window text-properties overlay sha1 md5 base64 format env
code-pages mule custom widget keymap hashtable-print-readable backquote
threads xwidget-internal dbusbind inotify lcms2 dynamic-setting
system-font-setting font-render-setting cairo gtk x-toolkit xinput2 x
multi-tty move-toolbar make-network-process native-compile emacs)

Memory information:
((conses 16 674134 284802) (symbols 48 39234 200)
 (strings 32 198732 51531) (string-bytes 1 5353457) (vectors 16 57743)
 (vector-slots 8 699109 152004) (floats 8 574 588)
 (intervals 56 536 334) (buffers 992 21))




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#70004; Package emacs. (Tue, 26 Mar 2024 16:43:02 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Bartosz Kaczyński <bkaczynski <at> posteo.net>
Cc: 70004 <at> debbugs.gnu.org
Subject: Re: bug#70004: 30.0.50;
 vc-dir-mark-all-files doesn't work in *vc-dir* buffer
Date: Tue, 26 Mar 2024 18:41:53 +0200
> From: Bartosz Kaczyński <bkaczynski <at> posteo.net>
> Date: Tue, 26 Mar 2024 14:17:50 +0000
> 
> 
> As per the subject, the command for selecting files in the buffer works
> only on a single file, not on all that require action. I tested it both
> through the M key and via M-x. Tested using emacs -q as well with same
> results.

I cannot reproduce this with the current master branch.  It is
possible that what you see is triggered by some very special
circumstances, so please try to come up with a recipe to reproduce the
problem, starting from "emacs -Q" (note: capital Q).

Does this happen to you in every repository you try it?  And what VC
backend is in use? is it Git or something else?

Thanks.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#70004; Package emacs. (Wed, 27 Mar 2024 16:08:03 GMT) Full text and rfc822 format available.

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

From: Bartosz Kaczyński <bkaczynski <at> posteo.net>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 70004 <at> debbugs.gnu.org
Subject: Re: bug#70004: 30.0.50; vc-dir-mark-all-files doesn't work in
 *vc-dir* buffer
Date: Wed, 27 Mar 2024 16:07:30 +0000
Eli Zaretskii <eliz <at> gnu.org> writes:

> Does this happen to you in every repository you try it?  And what VC
> backend is in use? is it Git or something else?

Indeed. In another repository, it works correctly.

Yes, it's about a Git repository.

Thank you for checking and sorry for the confusion.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#70004; Package emacs. (Wed, 27 Mar 2024 16:56:01 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Bartosz Kaczyński <bkaczynski <at> posteo.net>
Cc: 70004 <at> debbugs.gnu.org
Subject: Re: bug#70004: 30.0.50; vc-dir-mark-all-files doesn't work in
 *vc-dir* buffer
Date: Wed, 27 Mar 2024 18:55:40 +0200
> From: Bartosz Kaczyński <bkaczynski <at> posteo.net>
> Cc: 70004 <at> debbugs.gnu.org
> Date: Wed, 27 Mar 2024 16:07:30 +0000
> 
> Eli Zaretskii <eliz <at> gnu.org> writes:
> 
> > Does this happen to you in every repository you try it?  And what VC
> > backend is in use? is it Git or something else?
> 
> Indeed. In another repository, it works correctly.
> 
> Yes, it's about a Git repository.
> 
> Thank you for checking and sorry for the confusion.

So can you try figuring out why it doesn't work correctly in that
repository?  What is different about that repository?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#70004; Package emacs. (Fri, 29 Mar 2024 11:58:02 GMT) Full text and rfc822 format available.

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

From: Bartosz Kaczyński <bkaczynski <at> posteo.net>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 70004 <at> debbugs.gnu.org
Subject: Re: bug#70004: 30.0.50; vc-dir-mark-all-files doesn't work in
 *vc-dir* buffer
Date: Fri, 29 Mar 2024 11:57:24 +0000
Eli Zaretskii <eliz <at> gnu.org> writes:

> So can you try figuring out why it doesn't work correctly in that
> repository?  What is different about that repository?

Ok, I found the dependency why it sometimes works and sometimes
doesn't. It's about the point position when changes affect files in
different directories. If the point is located in a different place than
the line where the files are, for example, a line that points to a
directory - then marking all files with the <M> key doesn't include all
files.

--8<---------------cut here---------------start------------->8---
VC backend : Git
Working dir: ~/.emacs.d/
Branch     : main
Tracking   : origin/main
Remote     : git <at> myremote.git
Stash      : Nothing stashed

                         ./
     edited              init.el
                         lisp/
     edited              lisp/init-org.el
--8<---------------cut here---------------end--------------->8---

Unlike, the <U> key, which unmark all files regardless of position.

Rather, it has nothing to do with the repository itself or the backend.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#70004; Package emacs. (Sun, 31 Mar 2024 09:18:02 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Bartosz Kaczyński <bkaczynski <at> posteo.net>
Cc: 70004 <at> debbugs.gnu.org
Subject: Re: bug#70004: 30.0.50; vc-dir-mark-all-files doesn't work in
 *vc-dir* buffer
Date: Sun, 31 Mar 2024 12:17:29 +0300
> From: Bartosz Kaczyński <bkaczynski <at> posteo.net>
> Cc: 70004 <at> debbugs.gnu.org
> Date: Fri, 29 Mar 2024 11:57:24 +0000
> 
> Eli Zaretskii <eliz <at> gnu.org> writes:
> 
> > So can you try figuring out why it doesn't work correctly in that
> > repository?  What is different about that repository?
> 
> Ok, I found the dependency why it sometimes works and sometimes
> doesn't. It's about the point position when changes affect files in
> different directories. If the point is located in a different place than
> the line where the files are, for example, a line that points to a
> directory - then marking all files with the <M> key doesn't include all
> files.
> 
> --8<---------------cut here---------------start------------->8---
> VC backend : Git
> Working dir: ~/.emacs.d/
> Branch     : main
> Tracking   : origin/main
> Remote     : git <at> myremote.git
> Stash      : Nothing stashed
> 
>                          ./
>      edited              init.el
>                          lisp/
>      edited              lisp/init-org.el
> --8<---------------cut here---------------end--------------->8---

Thanks, but I still don't think I understand (or if I do, cannot
reproduce).  The command bound to 'M' is documented thus:

  Mark all files with the same state as the current one.
  With prefix argument ARG, mark all files (not directories).
  If the current entry is a directory, mark all child files.

So if point is on a directory, the files under that directory should
be marked.  In your case, if point is on the line which says "lisp/",
the file lisp/init-org.el should be marked.  Does that not happen?

Or what doesn't happen in the example you show (please also tell where
point is when you press 'M')?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#70004; Package emacs. (Tue, 02 Apr 2024 16:32:03 GMT) Full text and rfc822 format available.

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

From: Bartosz Kaczyński <bkaczynski <at> posteo.net>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 70004 <at> debbugs.gnu.org
Subject: Re: bug#70004: 30.0.50; vc-dir-mark-all-files doesn't work in
 *vc-dir* buffer
Date: Tue, 02 Apr 2024 16:31:13 +0000
Eli Zaretskii <eliz <at> gnu.org> writes:

>> --8<---------------cut here---------------start------------->8---
>> VC backend : Git
>> Working dir: ~/.emacs.d/
>> Branch     : main
>> Tracking   : origin/main
>> Remote     : git <at> myremote.git
>> Stash      : Nothing stashed
>> 
>>                          ./
>>      edited              init.el
>>                          lisp/
>>      edited              lisp/init-org.el
>> --8<---------------cut here---------------end--------------->8---
>
> Thanks, but I still don't think I understand (or if I do, cannot
> reproduce).  The command bound to 'M' is documented thus:
>
>   Mark all files with the same state as the current one.
>   With prefix argument ARG, mark all files (not directories).
>   If the current entry is a directory, mark all child files.
>
> So if point is on a directory, the files under that directory should
> be marked.  In your case, if point is on the line which says "lisp/",
> the file lisp/init-org.el should be marked.  Does that not happen?

Yes, it does but also `vc-dir-mark` works same way <m> even there is
more than one file in the same state

>
> Or what doesn't happen in the example you show (please also tell where
> point is when you press 'M')?

So, without further ado. Apparently, I didn't understand the function's
behavior correctly and simply thought that pressing the "M" (regardless
of point position) would select all files, for example, those in the
"edited" state.
Thank you for your time spent on this investigation, and clearly, it is
not a bug.

Best regards,
Bart




Reply sent to Eli Zaretskii <eliz <at> gnu.org>:
You have taken responsibility. (Tue, 02 Apr 2024 16:42:02 GMT) Full text and rfc822 format available.

Notification sent to Bartosz Kaczyński <bkaczynski <at> posteo.net>:
bug acknowledged by developer. (Tue, 02 Apr 2024 16:42:02 GMT) Full text and rfc822 format available.

Message #28 received at 70004-done <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Bartosz Kaczyński <bkaczynski <at> posteo.net>
Cc: 70004-done <at> debbugs.gnu.org
Subject: Re: bug#70004: 30.0.50; vc-dir-mark-all-files doesn't work in
 *vc-dir* buffer
Date: Tue, 02 Apr 2024 19:40:57 +0300
> From: Bartosz Kaczyński <bkaczynski <at> posteo.net>
> Cc: 70004 <at> debbugs.gnu.org
> Date: Tue, 02 Apr 2024 16:31:13 +0000
> 
> So, without further ado. Apparently, I didn't understand the function's
> behavior correctly and simply thought that pressing the "M" (regardless
> of point position) would select all files, for example, those in the
> "edited" state.
> Thank you for your time spent on this investigation, and clearly, it is
> not a bug.

OK, thanks.  I'm therefore closing this bug.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 01 May 2024 11:24:05 GMT) Full text and rfc822 format available.

This bug report was last modified 3 days ago.

Previous Next


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