unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Dmitry Gutov <dgutov@yandex.ru>
To: sds@gnu.org, Ola x Nilsson <ola.x.nilsson@axis.com>
Cc: larsi@gnus.org, 50175-done@debbugs.gnu.org
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	[thread overview]
Message-ID: <9109d282-192c-22ec-6010-4e1f3cc97d9e@yandex.ru> (raw)
In-Reply-To: <lzeeahil4s.fsf@3c22fb11fdab.ant.amazon.com>

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	other threads:[~2021-08-26  1:51 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-23 22:09 bug#50175: 28.0.50; tramp is hooked into C-x d (vc-dir) but not C-x = (vc-doff) Steingold
2021-08-25 13:26 ` Ola x Nilsson
2021-08-25 15:45   ` Steingold
2021-08-26  1:51     ` Dmitry Gutov [this message]
2021-08-26  6:14       ` Ola x Nilsson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=9109d282-192c-22ec-6010-4e1f3cc97d9e@yandex.ru \
    --to=dgutov@yandex.ru \
    --cc=50175-done@debbugs.gnu.org \
    --cc=larsi@gnus.org \
    --cc=ola.x.nilsson@axis.com \
    --cc=sds@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).