Subject: bug#24082: 25.1; vc-dir for CVS repositories list all files as if from toplevel directory

From: [email-masked] (Jérémie Courrèges-Anglas)
Date: Sat, 08 Oct 2016 17:13:27 +0200

Dmitry Gutov <[email-masked]> writes:

> Hi!

Hi,

> On 07.10.2016 17:45, Jérémie Courrèges-Anglas wrote:
>>
>> I see this regression using 25.1 (tarball) and emacs-26.0.50 (git).
>>
>> Reverting
>>
>>   http://git.savannah.gnu.org/cgit/emacs.git/commit/lisp/vc/vc-cvs.el?id=fa7f79e8234c60ae425f7c3cf1b9486765a7111e
>>
>> fixes the problem here.
>
> I wonder how that could be possible: reverting it gives me a characterp
> error. But if you mean just replacing `files' with `dir', that seems to
> work, at the cost of possible performance overhead with larger
> repositories.

Oops, sorry.  Yes indeed, I only replaced `files' with `dir'.

> Could you try the more complex patch that has been posted here? You can
> view it at https://debbugs.gnu.org/cgi/bugreport.cgi?bug=24082#15.
>
> In particular, I'd like to know whether it fixes this bug for you,

It does.

> and
> whether it works well with all CVS repositories you work with.

Works fine, there are some differences.

With just `files' replaced with `dir':

--8<--
VC backend : CVS
Working dir: /usr/ports/editors/
Repository : /cvs
Module     : ports/editors

                         ./
                         emacs/
    edited               emacs/Makefile
    edited               emacs/distinfo
                         emacs/patches/
    edited               emacs/patches/patch-Makefile_in
    edited               emacs/patches/patch-configure
    removed              emacs/patches/patch-src_unexelf_c
                         emacs/pkg/
    edited               emacs/pkg/PFRAG.no-no_x11
    edited               emacs/pkg/PLIST
-->8--

With the patch in
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=24082#15:

--8<--
VC backend : CVS
Working dir: /usr/ports/editors/
Repository : /cvs
Module     : ports/editors

                         ./
    unregistered         .//emacs-wip
                         emacs/
    edited               .//emacs/Makefile
    edited               .//emacs/distinfo
                         emacs/patches/
    edited               .//emacs/patches/patch-Makefile_in
    edited               .//emacs/patches/patch-configure
    unregistered         .//emacs/patches/patch-lisp_vc_vc-cvs_el
    unregistered         .//emacs/patches/patch-lisp_vc_vc_el
    removed              .//emacs/patches/patch-src_unexelf_c
                         emacs/pkg/
    edited               .//emacs/pkg/PFRAG.no-no_x11
    edited               .//emacs/pkg/PLIST
-->8--

So the patched version shows unregistered files and directories, which
is good, but has formatting artifacts (`.//' above).  Also, pressing `='
on `.//emacs-wip', I get the following in *Messages*:

...
Traversing directory /usr/ports/editors/...done
Finding changes in /usr/ports/editors/emacs-wip...
vc-find-backend-function: Cannot open load file: No such file or directory, vc-nil

even though the directory contains a CVS dir, and cvs(1) works fine in
it.  I don't think it's a big problem though.

-- 
jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF  DDCC 0DFA 74AE 1524 E7EE