Subject: Re: bug#39380: 26.3: Opening files in vc-dir-mode with differing root and working dir fails

From: Eli Zaretskii <[email-masked]>
Date: Fri, 07 Feb 2020 16:00:52 +0200

> Cc: [email-masked], [email-masked]
> From: Dmitry Gutov <[email-masked]>
> Date: Fri, 7 Feb 2020 14:03:21 +0300
> 
> On 07.02.2020 12:53, Eli Zaretskii wrote:
> > I'll have to ask you to walk me through the change and explain how it
> > solves the original issue.
> 
> There are two changes:
> 
> 1. Having the returned file names relative to the working dir instead of 
> the repository root. For that, we change 'hg status' to 'hg status re:'.

Why do we want the file names to be relative?  If default-directory of
the buffer is set correctly, that shouldn't be necessary, and if the
file names are absolute, then the default-directory doesn't even
matter much.

> 2. Only including the files inside the working dir in the output. That 
> happens by adding '-I .' to the arguments. Otherwise, Mercurial adds, in 
> the presented scenario, an entry like '../sub2/x', which is extraneous.

This change should be in NEWS, IMO.

> > the Mercurial documentation I've read seems
> > to contradict what you are doing (e.g., it says "re:" should be
> > immediately followed by a regexp).
> 
> You can search the manual for "hg status re:".

Which only finds a single example, where this notation is not
explained at all (and which I already saw).

> I agree it's a bit unclear (it also mentions "hg help patterns" for some 
> reason), but here's an SO answer that got me this far: 
> https://stackoverflow.com/a/46743585/615245

Isn't it disturbing that we are using a feature that doesn't seem to
be documented?

But to get to the issue at hand: you are saying that "C-x v d" in a
subdirectory of the root of a Mercurial repository became broken in
Emacs 25.1?

Also, is DIR guaranteed to be the directory where FILES live?