Subject: bug#36090: 26.1; Tramp hanging when writing version-controlled file

From: Michael Albinus <[email-masked]>
Date: Tue, 16 Jul 2019 16:44:03 +0200

Norman Gray <[email-masked]> writes:

> Michael, hello.

Hi Norman,

>> The problem was discussed already in <https://debbugs.gnu.org/18940>.
>> I've patched vc-hg.el to set HGPLAIN=1, and this works at least
>> partly. See tramp-notes-debug-4.txt:
>
> I've now read the discussion in that bug report.
>
>> Well, we could try to patch vc-hg.el, again.
>
> Myself, I think that setting HGPLAIN=1 in the hg invocation within
> vc-hg.el is by far the most elegant/straightforward/robust solution.
>
> The hg(1) manpage explicitly documents HGPLAIN as being the preferred
> way to disable 'any configuration settings that might change Mercurial's
> default output' and notes that '[t]his can be useful when scripting
> against Mercurial in the face of existing user configuration.'  Also,
> `hg help scripting` goes further, and says of HGPLAIN 'It is highly
> recommended for machines to set this variable when invoking "hg"
> processes.'
>
> That is, this seems to clearly indicate that, in all non-interactive
> invocations of Mercurial, HGPLAIN should be set; indeed, that this is
> set could almost be regarded as an integral part of Mercurial's
> scripting interface.  I suggest that _any_ invocation of 'hg' within
> vc-hg.el, local or remote, which does not ensure this is set, should be
> reported as a bug!  Might this require a lot more than adjusting
> vc-hg-command at the end of vc-hg.el? (possibly -- I'm not clear on just
> how/where vc-hg.el interacts with Tramp).

I'm not familiar with vc-hg.el. The appended patch tries to set HGPLAIN
wherever "hg" is called. Could you pls check, whether it works for you
as expected?

And in case of, Dmitry might decide, whether the patch is applicable to
vc-hg.el.

> Best wishes,
> Norman

Best regards, Michael.