[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#39380: 26.3: Opening files in vc-dir-mode with differing root and wo

From: Dmitry Gutov
Subject: bug#39380: 26.3: Opening files in vc-dir-mode with differing root and working dir fails
Date: Sat, 8 Feb 2020 04:20:26 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0

On 07.02.2020 17:00, Eli Zaretskii wrote:
Cc: address@hidden, address@hidden
From: Dmitry Gutov <address@hidden>
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.

They are already relative, but against the repository root.

And people want to open vc-dir buffers in any directory, not just in repository roots.

We could force the file names to be absolute, and then pipe them through file-relative-name, but that's just extra work.

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.

It's a bugfix for an older, unintended change. It's not a new behavior.

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).

Not my fault.

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:

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

It's been there for enough years, and it's the best choice I've found so far.

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?

Yes, see the description of dir-status-files in the top commentary in vc.el.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]