emacs-bug-tracker
[Top][All Lists]
Advanced

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

bug#68174: closed (30.0.50; Project and VC disagree about what repositor


From: GNU bug Tracking System
Subject: bug#68174: closed (30.0.50; Project and VC disagree about what repository we're in)
Date: Wed, 03 Jan 2024 00:14:02 +0000

Your message dated Wed, 3 Jan 2024 02:13:07 +0200
with message-id <08d721c2-905e-4818-8c87-b1de6481d0e6@gutov.dev>
and subject line Re: bug#68174: 30.0.50; Project and VC disagree about what 
repository we're in
has caused the debbugs.gnu.org bug report #68174,
regarding 30.0.50; Project and VC disagree about what repository we're in
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs@gnu.org.)


-- 
68174: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=68174
GNU Bug Tracking System
Contact help-debbugs@gnu.org with problems
--- Begin Message --- Subject: 30.0.50; Project and VC disagree about what repository we're in Date: Sun, 31 Dec 2023 13:26:06 +0000 User-agent: Gnus/5.13 (Gnus v5.13)
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/.

-- 
Sean Whitton



--- End Message ---
--- Begin Message --- Subject: Re: bug#68174: 30.0.50; Project and VC disagree about what repository we're in Date: Wed, 3 Jan 2024 02:13:07 +0200 User-agent: Mozilla Thunderbird
Version: 30.1

On 02/01/2024 15:28, Eli Zaretskii wrote:
Date: Tue, 2 Jan 2024 15:10:53 +0200
Cc: 68174@debbugs.gnu.org, juri@linkov.net
From: Dmitry Gutov <dmitry@gutov.dev>

On 02/01/2024 10:55, Sean Whitton wrote:
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)
Yup, that works, thanks!

Very good.

Eli, do you think we could add this to emacs-29 as well?

It would help the users of 29.2 avoid the described bug when/if they
upgrade to the latest project.el. Probably not very urgent, but OTOH the
change looks pretty safe.

If it's safe, you'd need to convince me.  Because just by looking at
it, I don't have a clear idea what else it could affect.

It's not a trivial transformation, but it's semantically sound: log-view-mode saves -- or one might say caches -- the backend and the fileset in its own variables locally (referenced in the diff above). The commands in log-view.el (of which there are several) use those vars rather than look up vc-parent-buffer, so the values should be correct.

And the use
case is pretty rare, AFAICT.  So I tend to be happier with this on
master.

Ok, I'll push it to master for now.


--- End Message ---

reply via email to

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