Subject: bug#34949: 27.0.50; Docstring of `vc-deduce-fileset' incomplete

From: Juri Linkov <[email-masked]>
Date: Sun, 05 Apr 2020 02:37:52 +0300

>> Many things were implemented under this request
>> and more could be done on another round of improvements,
>> but it would be too much for the same request,
>> so I'm closing it now.
>
> I haven't followed this bug that closely, but it seems the initial
> issue about the undocumented arguments and return values of
> vc-deduced-fileset isn't addressed yet. At least on both master and
> emacs-27 these topics are still not documented.

Thanks for the report, I checked your initial request to see what
remains to do:

> The docstring of `vc-deduce-fileset' doesn't describe the OBSERVER parameter.

OBSERVER was renamed to NOT-STATE-CHANGING a week ago in master and
described in the docstring of `vc-deduce-fileset'.

> It also doesn't explain the meaning of the return values
> FILESET-ONLY-FILES, STATE, and CHECKOUT-MODEL.

This is hard to explain because this is internal data, I even don't know
where to begin.  For example, here is some code from vc-next-action
that uses data returned from vc-deduce-fileset:

  (not (eq model 'implicit)) (eq state 'up-to-date)

Do you know what 'implicit' model means here and where to find all other
possible model values?  Also please help to find all possible states like
'up-to-date' here.  I see more states used in vc-deduce-fileset like
'missing', 'ignored', 'needs-update', but where is a complete list?