[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#68174: 30.0.50; Project and VC disagree about what repository we're
From: |
Dmitry Gutov |
Subject: |
bug#68174: 30.0.50; Project and VC disagree about what repository we're in |
Date: |
Tue, 2 Jan 2024 05:31:20 +0200 |
User-agent: |
Mozilla Thunderbird |
Hi!
On 31/12/2023 15:26, Sean Whitton wrote:
X-debbugs-cc:juri@linkov.net
Hello,
1. emacs -q
2. (setopt vc-deduce-backend-nonvc-modes t)
3. C-x C-f ~/src/dotfiles/.emacs.d/init.el RET
4. C-x p p ~/src/emacs/ RET o C-x v L
5. (project-root (project-current)) => "~/src/emacs/"
6. C-x v +
- git pull is attempted in ~/src/dotfiles/.
You're in a*vc-change-log* for emacs.git, and (project-current) returns
the correct project. But C-x v + operates in ~/src/dotfiles/.
Thanks for the report.
I general, the problem looks unsolvable (or at least hard) because
various VC-related buffers look back on the fileset that spawned them
through the variable vc-parent-buffer. And that one is often just set to
the buffer that was previous before the current one was created (in
vc-setup-buffer).
This particular case though seems fixed with this patch, please test:
diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el
index 3cd835a9d6b..82051740b8f 100644
--- a/lisp/vc/vc.el
+++ b/lisp/vc/vc.el
@@ -1074,6 +1074,7 @@ vc-expand-dirs
(defvar vc-dir-backend)
(defvar log-view-vc-backend)
+(defvar log-view-vc-fileset)
(defvar log-edit-vc-backend)
(defvar diff-vc-backend)
(defvar diff-vc-revisions)
@@ -1155,6 +1156,8 @@ vc-deduce-fileset
(vc-state buffer-file-name)
(vc-checkout-model backend buffer-file-name))
(list backend (list buffer-file-name))))
+ ((derived-mode-p 'log-view-mode)
+ (list log-view-vc-backend log-view-vc-fileset))
((and (buffer-live-p vc-parent-buffer)
;; FIXME: Why this test? --Stef
(or (buffer-file-name vc-parent-buffer)
- bug#68174: 30.0.50; Project and VC disagree about what repository we're in,
Dmitry Gutov <=