Subject: bug#79126: vc-switch-working-tree does not work if there is no matching file

From: Dmitry Gutov <[email-masked]>
Date: Wed, 30 Jul 2025 15:30:18 +0300

On 30/07/2025 14:04, Sean Whitton wrote:

>> I guess some of these could be improved in project-find-matching-file (support
>> for more major modes?) but semantically it seems like vc-switch-working-tree
>> should try harder. Falling back to visiting the worktree root in Dired, if it
>> doesn't find a better choice.
> 
> I was thinking I would implement switching between Dired directories and
> VC-Dir buffers in project-find-matching-file, yeah.

Cool, either place sounds good to me.

> Maybe when the file doesn't exist we could fall back to going only as
> high up the tree as we need to.  So for example if foo/bar.el doesn't
> exist in the other worktree but foo/ does, invoking
> vc-switch-working-tree would go to a dired buffer visiting foo/.

Sounds reasonable.

> The last resort fallback could possibly be to call project-switch-project?

Probably not - it would show the prompt a second time, right?

And the last step in the algorithm from the previous paragraph would 
visit the worktree root, I think, so there shouldn't be a scenario of a 
complete failure.