[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#34949: 27.0.50; Docstring of `vc-deduce-fileset' incomplete
From: |
Juri Linkov |
Subject: |
bug#34949: 27.0.50; Docstring of `vc-deduce-fileset' incomplete |
Date: |
Wed, 19 Feb 2020 01:36:49 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (x86_64-pc-linux-gnu) |
>> So I implemented this in vc-dired-deduce-fileset whose basic
>> algorithm was taken from vc-dir-deduce-fileset.
>> Now with this patch state changing VC operations are supported on marked
>> _files_ in dired.
>
> TBH, I'm not sure this is a win (we have VC-Dir for a reason),
Often I need to quickly commit one or a few marked files in the same
Dired directory without needlessly starting VC-Dir - this is when such
feature comes handy. Even it's possible to mark files in several
subdirectories inserted in the same Dired buffer.
> but if you really want to be able to do that in Dired, why not. Please
> feel free to install this.
Installed to master.
>> However, the need for the OBSERVER arg still remains because this patch
>> doesn't support state changing VC operations on marked _directories_ in
>> dired.
>> It raises the error in this case:
>> State changing VC operations on directories not supported in
>> `dired-mode'
>> State changing VC operations could be supported on directories as well,
>> but there are several possibilities to choose from, and I can't decide:
>> 1. On a marked directory get a state from all its files
>> (probably this variant makes no sense)
>> 2. On a marked directory get only files with a "modified" state
>> (i.e. edited/added/removed)
>
> You can check out what diff-hl-dired does in this regard (and it does use
> the dir-status-files command), though you would need to do something else
> than its merging logic.
Thanks, I use diff-hl-dired, but not realized it relies on dir-status-files.
Maybe dir-status-files could be simplified, so that it wouldn't require
a special buffer to be current, and could be called in any buffer,
but this simplification is not much needed.
> That still leaves the downside (compared to VC-Dir) of being unable to
> select individual files in subdirectories, but that's not fixable, I guess.
When calling the already supported ‘C-x v =’ (vc-diff) on a subdirectory
in Dired, it operates on all modified files, so it makes sense to commit
exactly the same files whose diffs are displayed in the *vc-diff* buffer.
The same way we could add a new command to commit all modified files
in the repository. When ‘C-x v D’ (vc-root-diff) displays the
*vc-diff* buffer with all modifications, a new command like ‘C-x v V’
could commit all of them.
>> But the latter is not easy to implement because the needed functionality
>> is missing in VC, because the only VC method that is suitable for this is
>> 'dir-status-files' to get VC files from a directory but it's too tightly
>> integrated with vc-dir and can't be easily separated, i.e. there is
>> no easy way to do something like:
>> (with-temp-buffer
>> (vc-call-backend
>> (vc-responsible-backend default-directory) 'dir-status-files
>> default-directory nil
>> (lambda (entries &optional more-to-come)
>> (message "! %S" entries))))
>
> I think the only possible problem here is that lambda is invoked
> asynchronously. But we can sleep while waiting for it.
Would it be possible to call dir-status-files synchronously?
- bug#34949: 27.0.50; Docstring of `vc-deduce-fileset' incomplete, Juri Linkov, 2020/02/17
- bug#34949: 27.0.50; Docstring of `vc-deduce-fileset' incomplete, Dmitry Gutov, 2020/02/18
- bug#34949: 27.0.50; Docstring of `vc-deduce-fileset' incomplete,
Juri Linkov <=
- bug#34949: 27.0.50; Docstring of `vc-deduce-fileset' incomplete, Juri Linkov, 2020/02/20
- bug#34949: 27.0.50; Docstring of `vc-deduce-fileset' incomplete, Dmitry Gutov, 2020/02/20
- bug#34949: 27.0.50; Docstring of `vc-deduce-fileset' incomplete, Juri Linkov, 2020/02/22
- bug#34949: 27.0.50; Docstring of `vc-deduce-fileset' incomplete, Dmitry Gutov, 2020/02/23
- bug#34949: 27.0.50; Docstring of `vc-deduce-fileset' incomplete, Juri Linkov, 2020/02/23
- bug#34949: 27.0.50; Docstring of `vc-deduce-fileset' incomplete, Dmitry Gutov, 2020/02/23
- bug#34949: 27.0.50; Docstring of `vc-deduce-fileset' incomplete, Juri Linkov, 2020/02/24
- bug#34949: 27.0.50; Docstring of `vc-deduce-fileset' incomplete, Dmitry Gutov, 2020/02/25
- bug#34949: 27.0.50; Docstring of `vc-deduce-fileset' incomplete, Juri Linkov, 2020/02/25
- bug#34949: 27.0.50; Docstring of `vc-deduce-fileset' incomplete, Dmitry Gutov, 2020/02/26