Package: emacs;
Reported by: sds <at> gnu.org
Date: Mon, 23 Aug 2021 22:23:01 UTC
Severity: normal
Found in version 28.0.50
Done: Dmitry Gutov <dgutov <at> yandex.ru>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 50175 in the body.
You can then email your comments to 50175 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
bug-gnu-emacs <at> gnu.org
:bug#50175
; Package emacs
.
(Mon, 23 Aug 2021 22:23:02 GMT) Full text and rfc822 format available.sds <at> gnu.org
:bug-gnu-emacs <at> gnu.org
.
(Mon, 23 Aug 2021 22:23:02 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Steingold <sds <at> gnu.org> To: bug-gnu-emacs <at> gnu.org Subject: 28.0.50; tramp is hooked into C-x d (vc-dir) but not C-x = (vc-doff) Date: Mon, 23 Aug 2021 18:09:14 -0400
when editing a remote file, vc-dir shows the *vc-dir* buffer correctly, but vc-diff in the same buffer fails: --8<---------------cut here---------------start------------->8--- 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) --8<---------------cut here---------------end--------------->8--- 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) In GNU Emacs 28.0.50 (build 5, x86_64-apple-darwin19.6.0, NS appkit-1894.60 Version 10.15.7 (Build 19H1323)) of 2021-08-23 built on 3c22fb11fdab.ant.amazon.com Repository revision: 00edc8329a6277f2e5b5204efbe503e2b7957006 Repository branch: master Windowing system distributor 'Apple', version 10.3.1894 System Description: Mac OS X 10.15.7 Configured using: 'configure --with-imagemagick --with-mailutils --with-ns PKG_CONFIG_PATH=/usr/local/opt/libxml2/lib/pkgconfig:/usr/local/opt/imagemagick/lib/pkgconfig:/usr/local/opt/gnutls/lib/pkgconfig:/usr/local/opt/jansson/lib/pkgconfig:/usr/local/opt/libtiff/lib/pkgconfig:/usr/local/opt/libpng/lib/pkgconfig:/usr/local/opt/libjpeg/lib/pkgconfig:/usr/local/opt/freetype/lib/pkgconfig' Configured features: ACL GMP GNUTLS IMAGEMAGICK JPEG JSON LCMS2 LIBXML2 MODULES NOTIFY KQUEUE NS PDUMPER PNG THREADS TIFF TOOLKIT_SCROLL_BARS ZLIB Important settings: value of $LC_MESSAGES: C value of $LANG: C locale-coding-system: utf-8-unix Major mode: Org Minor modes in effect: pyvenv-mode: t shell-dirtrack-mode: t flyspell-mode: t global-edit-server-edit-mode: t winner-mode: t which-function-mode: t url-handler-mode: t show-paren-mode: t desktop-save-mode: t tooltip-mode: t global-eldoc-mode: t electric-indent-mode: t mouse-wheel-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t column-number-mode: t line-number-mode: t auto-fill-function: org-auto-fill-function abbrev-mode: t Load-path shadows: None found. Features: (shadow sort bbdb-message mailalias cookie1 mail-extr gnus-msg emacsbug sendmail vc-mtn vc-src vc-sccs vc-svn vc-cvs vc-rcs vc-dir ewoc cl-print debug backtrace dabbrev skeleton misearch multi-isearch rx color autoload lisp-mnt mm-archive gnutls network-stream url-http url-gw nsm url-cache url-auth finder-inf package add-log vc-hg vc-bzr tramp-cache remember vc cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs bug-reference conf-mode company-oddmuse company-keywords company-etags company-gtags company-dabbrev-code company-dabbrev company-files company-clang company-template company-cmake company-bbdb yasnippet-snippets yasnippet flymake-proc flymake company-capf company pcase help-fns radix-tree elpy edmacro kmacro elpy-rpc pyvenv eshell esh-cmd esh-ext esh-opt esh-proc esh-io esh-arg esh-module esh-groups esh-util elpy-shell elpy-profile elpy-django s elpy-refactor ido grep compile etags fileloop xref project cus-edit pp cus-start python tramp-sh tramp tramp-loaddefs trampver tramp-integration files-x tramp-compat shell ls-lisp flyspell ispell org-element avl-tree generator ol-eww eww xdg url-queue thingatpt mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect gnus-search eieio-opt cl-extra help-mode speedbar ezimage dframe gnus-art mm-uu mml2015 mm-view mml-smime smime dig gnus-sum shr kinsoku svg dom browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf url-util mailcap gnus-group gnus-undo gnus-start gnus-dbus dbus xml gnus-cloud nnimap nnmail mail-source utf7 netrc nnoo parse-time gnus-spec gnus-int gnus-range message rmc puny rfc822 mml mml-sec epa derived epg epg-config mm-decode mm-bodies mm-encode mail-parse rfc2231 gmm-utils mailheader gnus-win ol-docview doc-view jka-compr image-mode exif ol-bibtex bibtex iso8601 ol-bbdb ol-w3m org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-footnote org-src ob-comint org-pcomplete pcomplete comint ansi-color org-list org-faces org-entities noutline outline org-version ob-emacs-lisp ob-core ob-eval org-table ol org-keys org-compat org-macs org-loaddefs format-spec find-func cal-x view cal-china cal-bahai cal-islam holidays hol-loaddefs bbdb-anniv cal-iso cal-hebrew lunar cal-julian solar cal-dst vc-git diff-mode easy-mmode vc-dispatcher appt diary-lib diary-loaddefs cal-menu calendar cal-loaddefs dired-aux dired dired-loaddefs midnight warnings gnus nnheader gnus-util rmail rmail-loaddefs rfc2047 rfc2045 ietf-drums text-property-search time-date mail-utils mm-util mail-prsvr wid-edit bbdb-mua bbdb-com crm mailabbrev bbdb bbdb-site timezone edit-server advice server winner ring which-func imenu url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs password-cache json subr-x map seq byte-opt gv bytecomp byte-compile cconv url-vars paren help-at-pt desktop frameset cl-loaddefs cl-lib cus-load info iso-transl tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel term/ns-win ns-win ucs-normalize mule-util term/common-win tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite charscript charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice button loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote threads kqueue cocoa ns lcms2 multi-tty make-network-process emacs) Memory information: ((conses 16 1730297 264010) (symbols 48 39892 1) (strings 32 397217 56034) (string-bytes 1 11710856) (vectors 16 113387) (vector-slots 8 1439079 162214) (floats 8 943 538) (intervals 56 172493 3877) (buffers 992 62)) -- Sam Steingold (http://sds.podval.org/) on darwin Ns 10.3.1894 http://childpsy.net http://calmchildstories.com http://steingoldpsychology.com https://jij.org https://jihadwatch.org http://think-israel.org If you do not move, you will not feel the shackles.
bug-gnu-emacs <at> gnu.org
:bug#50175
; Package emacs
.
(Wed, 25 Aug 2021 13:27:02 GMT) Full text and rfc822 format available.Message #8 received at 50175 <at> debbugs.gnu.org (full text, mbox):
From: Ola x Nilsson <ola.x.nilsson <at> axis.com> To: <sds <at> gnu.org> Cc: larsi <at> gnus.org, 50175 <at> debbugs.gnu.org, dgutov <at> yandex.ru Subject: Re: bug#50175: 28.0.50; tramp is hooked into C-x d (vc-dir) but not C-x = (vc-doff) Date: Wed, 25 Aug 2021 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 -- Ola Nilsson
bug-gnu-emacs <at> gnu.org
:bug#50175
; Package emacs
.
(Wed, 25 Aug 2021 15:46:01 GMT) Full text and rfc822 format available.Message #11 received at 50175 <at> debbugs.gnu.org (full text, mbox):
From: Steingold <sds <at> gnu.org> To: Ola x Nilsson <ola.x.nilsson <at> axis.com> Cc: larsi <at> gnus.org, 50175 <at> debbugs.gnu.org, dgutov <at> yandex.ru Subject: Re: bug#50175: 28.0.50; tramp is hooked into C-x d (vc-dir) but not C-x = (vc-doff) Date: Wed, 25 Aug 2021 11:45:07 -0400
Hi Ola, Lars, Dmitry, > * Ola x Nilsson <byn.k.avyffba <at> 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... Thank you! -- Sam Steingold (http://sds.podval.org/) on darwin Ns 10.3.1894 http://childpsy.net http://calmchildstories.com http://steingoldpsychology.com https://thereligionofpeace.com https://memri.org https://honestreporting.com Modern man is the missing link between apes and human beings.
Dmitry Gutov <dgutov <at> yandex.ru>
:sds <at> gnu.org
:Message #16 received at 50175-done <at> debbugs.gnu.org (full text, mbox):
From: Dmitry Gutov <dgutov <at> yandex.ru> To: sds <at> gnu.org, Ola x Nilsson <ola.x.nilsson <at> axis.com> Cc: larsi <at> gnus.org, 50175-done <at> debbugs.gnu.org Subject: Re: 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
Hi! On 25.08.2021 18:45, Steingold wrote: > Hi Ola, Lars, Dmitry, > >> * Ola x Nilsson<byn.k.avyffba <at> 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.
bug-gnu-emacs <at> gnu.org
:bug#50175
; Package emacs
.
(Thu, 26 Aug 2021 06:15:02 GMT) Full text and rfc822 format available.Message #19 received at 50175-done <at> debbugs.gnu.org (full text, mbox):
From: Ola x Nilsson <ola.x.nilsson <at> axis.com> To: Dmitry Gutov <dgutov <at> yandex.ru> Cc: "larsi <at> gnus.org" <larsi <at> gnus.org>, "sds <at> gnu.org" <sds <at> gnu.org>, "50175-done <at> debbugs.gnu.org" <50175-done <at> debbugs.gnu.org> Subject: Re: 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 08:14:23 +0200
On Thu, Aug 26 2021, Dmitry Gutov wrote: > Hi! > > On 25.08.2021 18:45, Steingold wrote: >> Hi Ola, Lars, Dmitry, >> >>> * Ola x Nilsson<byn.k.avyffba <at> 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: >>>> <snip> >>>> >>>> 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... Sorry, I was not as clear as I should have been. The two commits above introduced the problem. Reverting them made vc-git work over tramp for me again. > 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. I did some light testing, and vc-diff and vc-annotate work for me now with git over tramp. -- Ola Nilsson
Debbugs Internal Request <help-debbugs <at> gnu.org>
to internal_control <at> debbugs.gnu.org
.
(Thu, 23 Sep 2021 11:24:07 GMT) Full text and rfc822 format available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.