Subject: 30.0.50; project-try-vc missing vc-got
From: Omar Polo <[email-masked]>
To: [email-masked]
Date: Fri, 17 Feb 2023 17:56:19 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello,

project-try-vc (IIRC) used to loop over all the vc-backends to find the
root of a project.  Now, it’s just an hardcoded list in a local
variable.  This breaks the project-* functions on Got checkouts.

I can imagine the reason of the change (avoid loading all the vc-*.el
files I guess) but it would be nice for this variable to be at least
user-configurable, otherwise we will always end up with missing entries.

(Yeah, one could add their own hooks in project-find-functions for
that, but seems replicating stuff that project.el tries to do anyway.)

Attaching a diff that temporarly works around the problem by adding the
Got -> .got mapping.

Thanks,

Omar Polo

diff /home/op/build/emacs
commit - dabd7feb950ef2dba0ce23ec74c5b141cff96a55
path + /home/op/build/emacs
blob - 2343adf4698471cf5262ce7a4340a4b0c5b5fa7e
file + lisp/progmodes/project.el
--- lisp/progmodes/project.el
+++ lisp/progmodes/project.el
@@ -506,7 +506,8 @@ project backend implementation of `project-external-ro
                                       (Bzr . ".bzr")
                                       (SVN . ,vc-svn-admin-directory)
                                       (DARCS . "_darcs")
-                                      (Fossil . ".fslckout")))
+                                      (Fossil . ".fslckout")
+                                      (Got . ".got")))
              (backend-markers
               (delete
                nil

In GNU Emacs 30.0.50 (build 1, x86_64-unknown-openbsd7.2, X toolkit,
 cairo version 1.17.8, Xaw scroll bars) of 2023-02-16 built on venera
Windowing system distributor 'The X.Org Foundation', version 11.0.12101006
System Description: OpenBSD venera 7.2 GENERIC.MP#1052 amd64

Configured using:
 'configure --prefix /home/op/opt/emacs --with-x-toolkit=lucid'

Configured features:
CAIRO DBUS FREETYPE GIF GLIB GNUTLS GSETTINGS HARFBUZZ JPEG JSON LCMS2
LIBOTF LIBXML2 M17N_FLT MODULES NOTIFY KQUEUE PDUMPER PNG RSVG THREADS
TIFF TOOLKIT_SCROLL_BARS WEBP X11 XDBE XIM XINPUT2 XPM LUCID ZLIB

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Eshell

Minor modes in effect:
  shell-dirtrack-mode: t
  eshell-prompt-mode: t
  eshell-pred-mode: t
  eshell-hist-mode: t
  eshell-cmpl-mode: t
  eshell-proc-mode: t
  eshell-arg-mode: t
  server-mode: t
  shackle-mode: t
  global-form-feed-mode: t
  electric-pair-mode: t
  savehist-mode: t
  save-place-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-quote-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tab-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  abbrev-mode: t

Load-path shadows:
~/build/emacs-libpq/pq hides /home/op/.emacs.d/elpa/pq-0.1/pq
/home/op/.emacs.d/elpa/eglot-20221020.1010/eglot hides /home/op/opt/emacs/share/emacs/30.0.50/lisp/progmodes/eglot

Features:
(shadow sort mail-extr emacsbug bug-reference noutline outline
reposition em-unix yaml-mode debug backtrace pcmpl-unix pcmpl-gnu
warnings em-term term disp-table shell ehelp em-script em-prompt em-pred
em-ls em-hist em-glob em-extpipe em-cmpl em-dirs em-basic em-banner
em-alias esh-mode esh-var pcomplete eshell esh-cmd generator esh-ext
esh-opt esh-proc esh-io esh-arg esh-module esh-groups esh-util cus-edit
cus-start cus-load wid-edit diff-mode ispell term/xterm xterm files-x
find-dired vc-got log-view compile vc-dir ewoc log-edit message sendmail
yank-media puny rfc822 mml mml-sec epa derived epg rfc6068 epg-config
gnus-util time-date mm-decode mm-bodies mm-encode mail-parse rfc2231
rfc2047 rfc2045 mm-util ietf-drums mail-prsvr mailabbrev mail-utils
gmm-utils mailheader pcvs-util add-log vc-annotate vc vc-dispatcher
mule-util display-line-numbers icons xref vc-svn cl-print ielm pp comint
ansi-osc ansi-color ring dired-aux dired-x dired dired-loaddefs puni
pulse color imenu misearch multi-isearch jka-compr find-func shortdoc
text-property-search cl-extra rx orderless project help-fns radix-tree
server shackle trace checkdoc lisp-mnt thingatpt help-mode form-feed
elec-pair savehist saveplace whitespace orderless-autoloads
fennel-mode-autoloads geiser-guile-autoloads geiser-autoloads finder-inf
gemini-mode-autoloads go-mode-autoloads haskell-mode-autoloads
lua-mode-autoloads markdown-mode-autoloads puni-autoloads easy-mmode
info sly-autoloads eglot-autoloads pq-autoloads web-mode-autoloads
yaml-mode-autoloads cider-autoloads sesman-autoloads spinner-autoloads
queue-autoloads parseedn-autoloads parseclj-autoloads
clojure-mode-autoloads vc-got-autoloads vc-fossil-autoloads package
browse-url url url-proxy url-privacy url-expand url-methods url-history
url-cookie generate-lisp-file url-domsuf url-util mailcap url-handlers
url-parse auth-source cl-seq eieio eieio-core cl-macs password-cache
json subr-x map byte-opt gv bytecomp byte-compile url-vars cl-loaddefs
cl-lib minimal-theme rmc iso-transl tooltip cconv eldoc paren electric
uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel
term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image
regexp-opt fringe tabulated-list replace newcomment text-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 nadvice seq simple cl-generic
indonesian philippine 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 emoji-zwj charscript charprop case-table epa-hook
jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs
faces cus-face macroexp files window text-properties overlay sha1 md5
base64 format env code-pages mule custom widget keymap
hashtable-print-readable backquote threads dbusbind kqueue lcms2
dynamic-setting system-font-setting font-render-setting cairo x-toolkit
xinput2 x multi-tty make-network-process emacs)

Memory information:
((conses 16 386600 40031)
 (symbols 48 21832 1)
 (strings 32 116838 2419)
 (string-bytes 1 3104440)
 (vectors 16 41495)
 (vector-slots 8 615081 20384)
 (floats 8 287 891)
 (intervals 56 5909 2186)
 (buffers 976 34))