Subject: bug#70004: 30.0.50; vc-dir-mark-all-files doesn't work in *vc-dir* buffer

From: Bartosz Kaczyński <[email-masked]>
Date: Tue, 02 Apr 2024 16:31:13 +0000

Eli Zaretskii <[email-masked]> writes:

>> --8<---------------cut here---------------start------------->8---
>> VC backend : Git
>> Working dir: ~/.emacs.d/
>> Branch     : main
>> Tracking   : origin/main
>> Remote     : [email-masked]
>> 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