Subject: 26.3; Using vc-switch-backend very often. Please do not remove it.

From: Pierre Rouleau <[email-masked]>
Date: Tue, 3 Jan 2023 11:18:16 -0500

--text follows this line--
This bug report will be sent to the Bug-GNU-Emacs mailing list
and the GNU bug tracker at debbugs.gnu.org.  Please check that
the From: line contains a valid email address.  After a delay of up
to one day, you should receive an acknowledgment at that address.

Please write in English if possible, as the Emacs maintainers
usually do not have translators for other languages.

Please describe exactly what actions triggered the bug, and
the precise symptoms of the bug.  If you can, give a recipe
starting from 'emacs -Q':

The `vc-switch-backend' command was obsoleted in Emacs 28.1.
That's a problem for me, as I am often using a dual (D)VCS repository
scheme.

For example, I might have a directory tree that is a Git repository, and
some of the sub-directories are Mercurial repositories.   When using
Emacs VC support I can instruct Emacs to use Git or Mercurial when
processing the files in the directories that end-up under both (D)VCS
repositories. I use that under several OS, not only macOS (as reported
in this bug report) and not only in older Emacs (as shown in this bug
report).  I'm also using other VCS, Subversion for instance.

The reason I'm using this dual-(D)VCS scheme has to do with the ability
to easily perform backup and maintaining a separate code change history
when having to use an other VCS due to corporate reasons for contracts I
work on and therefore have no control over the choice of the main
(D)VCS.

The `vc-switch-backend' command is one of the most useful feature of the
Emacs VC backend making this easily feasible.  I'm hoping you will not
remove this useful feature from Emacs distribution.

Thanks!

If Emacs crashed, and you have the Emacs process in the gdb debugger,
please include the output from the following gdb commands:
    'bt full' and 'xbacktrace'.
For information about debugging Emacs, please read the file
/usr/local/Cellar/emacs/26.3/share/emacs/26.3/etc/DEBUG.

In GNU Emacs 26.3 (build 1, x86_64-apple-darwin18.6.0)
 of 2019-08-30 built on Mojave.local
Recent messages:
Finding changes in /Users/roup/dev/elisp/pel/pel-setup.el...done
Ispell process killed
Starting new Ispell process /usr/local/bin/aspell with default dictionary...
Mark set
Press C-c C-c when you are done editing.
Enter a change comment.  Type C-c C-c when done
Checking in /Users/roup/dev/elisp/pel/pel-setup.el...done
Saving file /Users/roup/dev/elisp/pel/pel-vcs.el...
Add 2023 to copyright? (y or n) y
Wrote /Users/roup/dev/elisp/pel/pel-vcs.el

Configured using:
 'configure --disable-dependency-tracking --disable-silent-rules
 --enable-locallisppath=/usr/local/share/emacs/site-lisp
 --infodir=/usr/local/Cellar/emacs/26.3/share/info/emacs
 --prefix=/usr/local/Cellar/emacs/26.3 --with-gnutls --without-x
 --with-xml2 --without-dbus --with-modules --without-ns
 --without-imagemagick'

Configured features:
NOTIFY ACL GNUTLS LIBXML2 ZLIB MODULES THREADS

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

Major mode: Emacs-Lisp

Minor modes in effect:
  global-undo-tree-mode: t
  undo-tree-mode: t
  display-time-mode: t
  ido-everywhere: t
  which-key-mode: t
  winner-mode: t
  key-chord-mode: t
  global-anzu-mode: t
  anzu-mode: t
  diff-auto-refine-mode: t
  lispy-mode: t
  flyspell-mode: t
  show-paren-mode: t
  recentf-mode: t
  superword-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  electric-indent-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-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: do-auto-fill
  transient-mark-mode: t
  abbrev-mode: t

Load-path shadows:
/Users/roup/.emacs.d/utils/benchmark-init hides
/Users/roup/.emacs.d/elpa-complete/benchmark-init-20150905.938/benchmark-init
/Users/roup/.emacs.d/utils/benchmark-init-modes hides
/Users/roup/.emacs.d/elpa-complete/benchmark-init-20150905.938/benchmark-init-modes
/Users/roup/.emacs.d/elpa-complete/git-modes-20221127.2150/gitattributes-mode
hides
/Users/roup/.emacs.d/elpa-complete/gitattributes-mode-20210426.2132/gitattributes-mode
/Users/roup/.emacs.d/elpa-complete/git-modes-20221127.2150/gitconfig-mode
hides
/Users/roup/.emacs.d/elpa-complete/gitconfig-mode-20210426.2132/gitconfig-mode
/Users/roup/.emacs.d/elpa-complete/git-modes-20221127.2150/gitignore-mode
hides
/Users/roup/.emacs.d/elpa-complete/gitignore-mode-20210426.2132/gitignore-mode
/Users/roup/.emacs.d/utils/sr-speedbar hides
/Users/roup/.emacs.d/elpa-complete/sr-speedbar-20161025.831/sr-speedbar
/Users/roup/.emacs.d/elpa-complete/lispy-20210121.926/elpa hides
/Users/roup/.emacs.d/elpa-complete/ivy-20210311.1638/elpa
/Users/roup/.emacs.d/elpa-complete/lfe-mode-20201007.2214/lfe-indent hides
/usr/local/share/emacs/site-lisp/lfe/lfe-indent
/Users/roup/.emacs.d/elpa-complete/lfe-mode-20201007.2214/lfe-mode hides
/usr/local/share/emacs/site-lisp/lfe/lfe-mode
/Users/roup/.emacs.d/elpa-complete/lfe-mode-20201007.2214/inferior-lfe
hides /usr/local/share/emacs/site-lisp/lfe/inferior-lfe
/Users/roup/.emacs.d/elpa-complete/soap-client-3.2.0/soap-client hides
/usr/local/Cellar/emacs/26.3/share/emacs/26.3/lisp/net/soap-client
/Users/roup/.emacs.d/elpa-complete/soap-client-3.2.0/soap-inspect hides
/usr/local/Cellar/emacs/26.3/share/emacs/26.3/lisp/net/soap-inspect
/Users/roup/.emacs.d/elpa-complete/let-alist-1.0.6/let-alist hides
/usr/local/Cellar/emacs/26.3/share/emacs/26.3/lisp/emacs-lisp/let-alist
/Users/roup/.emacs.d/elpa-complete/seq-2.22/seq hides
/usr/local/Cellar/emacs/26.3/share/emacs/26.3/lisp/emacs-lisp/seq
/Users/roup/.emacs.d/elpa-complete/nadvice-0.3/nadvice hides
/usr/local/Cellar/emacs/26.3/share/emacs/26.3/lisp/emacs-lisp/nadvice

Features:
(shadow mail-extr emacsbug sendmail pel-setup pel-setup-base pel-package
pel-elpa pel-filedir pel-custom autoload lisp-mnt pel-browse browse-url
warnings ielm pp pel-lisp rectangular-region-mode pulse sort pel-mark
iedit iedit-lib mc-hide-unmatched-lines-mode mc-mark-more
mc-cycle-cursors multiple-cursors-core rect dired-aux
dired-hide-dotfiles eieio-opt ibuf-ext ibuffer ibuffer-loaddefs deadgrep
rx spinner dash s pel-numkpad misearch multi-isearch iso-transl log-edit
message rmc puny format-spec rfc822 mml mml-sec epa derived epg
gnus-util rmail rmail-loaddefs 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 whitespace vc-bzr
vc-src vc-sccs pel-vc vc-svn vc-cvs vc-rcs vc-dir ewoc vc vc-dispatcher
executable pel-whitespace time-stamp copyright pel-ccp disp-table
fill-column-indicator smex pel-undo undo-tree diff windmove
ido-completing-read+ memoize cus-edit cus-start cus-load minibuf-eldef
ace-link time pel-skels-generic counsel xdg dired-x dired dired-loaddefs
compile ido-grid ido pel-completion pel-ido pel-seq which-key
indent-tools yafolding indent-tools-indentation-of winner key-seq
pel-key-chord key-chord anzu vc-git diff-mode emacros map term/xterm
xterm tempo pel-skels-elisp pel-text-insert pel-tempo pel-skels lispy
pcase swiper cl-extra ivy flx ivy-faces ivy-overlay colir color delsel
lispy-inline subr-x thingatpt avy noutline outline easy-mmode etags
edebug lispy-tags mode-local find-func pel__hydra hydra lv pel-lispy
pel-spell-iedit flyspell ispell pel-spell imenu+ pel-imenu imenu
elec-pair paren pel_keys recentf tree-widget wid-edit two-column
pel-erlang xref project pel-xref pel-text-transform pel-read
pel-navigate cap-words superword subword pel-scroll pel-window
pel-prompt pel-syntax pel--syntax-macros pel-fs pel-ffind comint
regexp-opt ansi-color speedbar sb-image ezimage image dframe ls-lisp
time-date delight pel-autoload pel--keys-macros pel--options pel--macros
pel--base pel finder-inf geiser-impl help-fns radix-tree help-mode
geiser-custom geiser-base ring info tool-bar edmacro kmacro package
easymenu epg-config url-handlers url-parse auth-source cl-seq eieio
eieio-core cl-macs eieio-loaddefs password-cache url-vars seq byte-opt
gv bytecomp byte-compile cconv benchmark-init advice cl-loaddefs cl-lib
mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks
lisp-float-type tabulated-list replace newcomment text-mode elisp-mode
lisp-mode prog-mode register page menu-bar rfn-eshadow isearch timer
select mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame 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 minibuffer cl-preloaded nadvice loaddefs
button faces cus-face macroexp files text-properties overlay sha1 md5
base64 format env code-pages mule custom widget hashtable-print-readable
backquote threads kqueue multi-tty make-network-process emacs)

Memory information:
((conses 16 627110 231620)
 (symbols 48 46532 6)
 (miscs 40 3027 4683)
 (strings 32 178124 47215)
 (string-bytes 1 4875582)
 (vectors 16 55561)
 (vector-slots 8 1752661 208034)
 (floats 8 703 5477)
 (intervals 56 8597 5478)
 (buffers 992 55))

-- 
/Pierre