Subject: Re: bug#51497: 29.0.50; (vc-print-log) broken over TRAMP

From: Andy Moreton <[email-masked]>
Date: Sat, 06 Nov 2021 22:11:03 +0000

On Sat 06 Nov 2021, Eli Zaretskii wrote:

>> Cc: [email-masked], [email-masked], [email-masked],
>>  [email-masked]
>> From: Dmitry Gutov <[email-masked]>
>> Date: Sat, 6 Nov 2021 22:44:55 +0300
>> 
>> > I'm a bit worried by the function relying on the fact that
>> > default-directory is the directory of the repository.  Wouldn't it be
>> > better to explicitly let-bind it inside the function?
>> 
>> We could, but notice how most of vc-git-* functions don't bind 
>> default-directory, thus relying on its implicit value. It just how VC 
>> works: expecting default-directory to have the right value around the calls.
>
> How certain are you that default-directory has the right value?
> Because if it doesn't, AFAIU all the connection-specific stuff will
> fall apart.
>
>> > A (perhaps safer) alternative for emacs-28 would be not to use
>> > :(literal) for remote repositories.  What are the disadvantages of
>> > that?
>> 
>> That would mean leaving bug#39452 unfixed on remote hosts.
>
> Only for files with wildcard characters in their names.  How
> frequently does that happen?  Also, it will be only unsolved in Emacs
> 28.

I missed the discussion in bug#39452 at the time, but while the solution
was being worked on, I used advice to stub out the literal pathspec
functions:
  (advice-add 'vc-git--literal-pathspec  :override #'identity)
  (advice-add 'vc-git--literal-pathspecs :override #'identity)

That workaround is still needed for me. Without that, nothing in vc-git
works in my environment (64bit minw64 build on win10, using cygwin bash
and git together with cygwin-mount.el from emacs wiki).

While I realise my setup is somewhat non-standard, other users may also
find that the literal pathspec code also misbehaves.

    AndyM