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

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

bug#50175: 28.0.50; tramp is hooked into C-x d (vc-dir) but not C-x = (v


From: Dmitry Gutov
Subject: bug#50175: 28.0.50; tramp is hooked into C-x d (vc-dir) but not C-x = (vc-doff)
Date: Thu, 26 Aug 2021 04:51:56 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0

Hi!

On 25.08.2021 18:45, Steingold wrote:
Hi Ola, Lars, Dmitry,

* Ola x Nilsson<byn.k.avyffba@nkvf.pbz>  [2021-08-25 15:26:34 +0200]:

On Mon, Aug 23 2021, Steingold wrote:

when editing a remote file, vc-dir shows the*vc-dir*  buffer correctly,
but vc-diff in the same buffer fails:

Debugger entered--Lisp error: (error "Failed (status 128): git --no-pager 
diff-index --exit-code
-p HEAD -- :(literal)/scp:remote:/path/file.py")
   signal(error ("Failed (status 128): git --no-pager diff-index --exit-code -p 
HEAD --
:(literal)/scp:remote:/path/file.py"))
   error("Failed (%s): %s" "status 128" "git --no-pager diff-index --exit-code 
-p HEAD --
:(literal)/scp:remote:/path/file.py")
   vc-do-command("*vc-diff*" 1 "git" (":(literal)/scp:remote:/path/file.py") 
"--no-pager"
"diff-index" "--exit-code" "-p" "HEAD" nil "--")
   apply(vc-do-command "*vc-diff*" 1 "git" (":(literal)/scp:remote:/path/file.py") 
("--no-pager"
"diff-index" "--exit-code" "-p" "HEAD" nil "--"))
   vc-git-command("*vc-diff*" 1 (":(literal)/scp:remote:/path/file.py") "diff-index" 
"--exit-code"
"-p" "HEAD" nil "--")
   apply(vc-git-command "*vc-diff*" 1 (":(literal)/scp:remote:/path/file.py") 
"diff-index"
"--exit-code" ("-p" "HEAD" nil "--"))
   vc-git-diff(("/scp:remote:/path/file.py") nil nil "*vc-diff*" t)
   apply(vc-git-diff (("/scp:remote:/path/file.py") nil nil "*vc-diff*" t))
   vc-call-backend(Git diff ("/scp:remote:/path/file.py") nil nil "*vc-diff*" t)
   vc-diff-internal(t (Git ("/scp:remote:/path/file.py")) nil nil t)
   vc-diff(nil t)
   funcall-interactively(vc-diff nil t)
   call-interactively(vc-diff nil nil)
   command-execute(vc-diff)

Same error on = (vc-diff) in the*vc-dir*  buffer.

I am pretty sure this is a regression from about 2-3 weeks ago.

(vc-next-action also fails)
This is the result of the git literal pathspec prefix being added in a
non-tramp-aware way.  See bug #39452.  The commits in question are

3502321403 Fix regressions in the last change
3572613550 Fix vc-git-state for filenames with wildcards
I do have all these patches, but, alas, I still see the bug.
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=39452
has no messages for 10 days, I hope it is being worked on...

We indeed applied a patch that's been lying around for a while and keep finding regressions.

Now I was curious to see how we generally avoid passing remote file names (in Tramp syntax) to Git and other VCS, and it turns out vc-do-command, which almost all calls go though, converts all file names to relative ones.

Which the new literal-pathspecs approach in vc-git conflicts with. I'm still not loving the idea of a dynamic variable to enable/disable the use of env var (fix for the problem we/I have met with the other approach), but it's becoming increasingly attractive.

That said, I've just pushed a fix (commit 2b62b2a019), please see how it works for you.





reply via email to

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