Subject: 29.1; vc-update-change-log triggers vc-not-supported update-changelog Git error

From: "Rolando Garza C." <[email-masked]>
Date: Wed, 18 Oct 2023 16:51:01 +0200

Hi.  I'm getting a "VC method not implemented for backend:
update-changelog, Git" error message upon trying to run
vc-update-change-log.

I admittedly have started to learn Emacs' VC twice, so the following
"bug" may be PEBCAK.  I encountered it in a previous test repo (in which
I already had a ChangeLog file in place) where I was trying out and
learning the key bindings.  I have replicated the same issue with no
customizations in a new repository, and I decided to report because I
remember that in a previous version of Emacs (<29), I didn't encounter
this issue and had already added a couple of entries to that changelog
file.

Environment info:
- Kernel release: 6.2.0-34-generic
- Distribution: Ubuntu 23.04 'lunar'

Guix version:
- guix (GNU Guix) 7823c6504082a0cfbd98beb301e041fb8bc4e44e

Steps to reproduce:

Start Emacs with no customizations:
     emacs -Q <RET>

(This may not be relevant, but in my Guix installation I get the
following error messages and a warning):
     Gtk-Message: 12:49:46.266: Failed to load module "canberra-gtk-module"
     Gtk-Message: 12:49:46.267: Failed to load module "canberra-gtk-module"

     ** (emacs:56729): WARNING **: 12:50:11.409: atk-bridge: 
get_device_events_reply: unknown signature

Activate debugging on error (with execute-extended-command)
     M-x toggle-debug-on-error <RET>

Create test directory:
     M-x mkdir <RET>
     ~/projects/test-vc <RET>

Visit file (find-file):
     C-x C-f ~/projects/test-vc/foo <RET>

Require VC (using eval-expression):
     M-: (require 'vc) <RET>

Create a repository:
     M-x vc-create-repo <RET>
     Git <RET>

Write anything to the file:
     This is foo. <RET>

Save (save-buffer):
     C-x C-s

For the next action, one may need to run on the following shell command,
in case gpg signing rules in git config apply to one's directory:
     git config --local commit.gpgsign false <RET>

Otherwise, here's a work-around that I wrote in Stack Overflow if one
gets the "error: gpg failed to sign the data" and "fatal: failed to
write commit" errors:
     https://stackoverflow.com/a/76909097/297570

Proceed with registering the file with VC's next action (vc-next-action,
which would proceed with C-x v i --- vc-register):
     C-x v v

Commit fileset changes with vc-next-action:
     C-x v v

Add commit message in *vc-log* buffer:
     Created foo C-c C-c

Try to add changes to ChangeLog (vc-update-change-log):
     C-x v a

This results in the following debug message:
     Debugger entered--Lisp error: (vc-not-supported update-changelog Git)
       vc-call-backend(Git update-changelog nil)
       vc-update-change-log()
       funcall-interactively(vc-update-change-log)
       command-execute(vc-update-change-log)

And the error message upon continuing:
     VC method not implemented for backend: update-changelog, Git

Please let me know if I can help to further diagnose this issue.

Thanks in advance for your help and support.

Kind regards,
Rolando

In GNU Emacs 29.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.37,
cairo version 1.16.0)
Windowing system distributor 'The X.Org Foundation', version 11.0.12201008
System Description: Ubuntu 23.04

Configured using:
  'configure
 
CONFIG_SHELL=/gnu/store/v9p25q9l5nnaixkhpap5rnymmwbhf9rp-bash-minimal-5.1.16/bin/bash
 
SHELL=/gnu/store/v9p25q9l5nnaixkhpap5rnymmwbhf9rp-bash-minimal-5.1.16/bin/bash
  --prefix=/gnu/store/438d4ibli2jbyjipzp21r4cp8qd9v832-emacs-29.1
  --enable-fast-install --with-cairo --with-modules
  --with-native-compilation=aot --disable-build-details'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES
NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3
THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER X11 XDBE XIM XINPUT2 XPM
GTK3 ZLIB

Important settings:
   value of $EMACSLOADPATH: 
/home/rolandog/.guix-profile/share/emacs/site-lisp:/home/rolandog/.guix-profile/share/emacs/site-lisp:/gnu/store/438d4ibli2jbyjipzp21r4cp8qd9v832-emacs-29.1/share/emacs/29.1/lisp
   value of $LC_MONETARY: nl_NL.UTF-8
   value of $LC_NUMERIC: nl_NL.UTF-8
   value of $LC_TIME: nl_NL.UTF-8
   value of $LANG: en_US.UTF-8
   value of $XMODIFIERS: @im=ibus
   locale-coding-system: utf-8-unix

Major mode: Fundamental

Minor modes in effect:
   tooltip-mode: t
   global-eldoc-mode: t
   show-paren-mode: t
   electric-indent-mode: t
   mouse-wheel-mode: t
   tool-bar-mode: t
   menu-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

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug cl-print byte-opt debug backtrace
cus-start cus-load jka-compr find-func vc-annotate vc-filewise thingatpt
vc-dir ewoc mule-util display-line-numbers log-edit message sendmail
mailcap yank-media puny dired dired-loaddefs rfc822 mml mml-sec
password-cache epa derived epg rfc6068 epg-config gnus-util mm-decode
mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util
ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils mailheader ring
add-log shortdoc text-property-search help-fns radix-tree misearch
multi-isearch noutline outline kmacro facemenu two-column vc-hg vc-bzr
vc-src vc-sccs vc-svn vc-cvs vc-rcs log-view pcvs-util vc-git diff-mode
easy-mmode vc vc-dispatcher time-date cl-loaddefs comp comp-cstr
warnings icons subr-x rx cl-seq cl-macs gv cl-extra help-mode bytecomp
byte-compile cl-lib 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
theme-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 inotify lcms2
dynamic-setting system-font-setting font-render-setting cairo
move-toolbar gtk x-toolkit xinput2 x multi-tty make-network-process
native-compile emacs)

Memory information:
((conses 16 162437 20274)
  (symbols 48 11213 1)
  (strings 32 35809 2073)
  (string-bytes 1 1095353)
  (vectors 16 26474)
  (vector-slots 8 744256 36866)
  (floats 8 173 115)
  (intervals 56 9221 489)
  (buffers 984 24))
-- 
Rolando Garza C.
PGP Fingerprint: B293 0425 5506 8441 0803  387A E726 BC7B EF39 923D