Subject: bug#4972: 23.1.50; Can't view revision log from Hg annotate buffer

From: Magnus Henoch <[email-masked]>
Date: Thu, 19 Nov 2009 14:43:19 +0000

Please write in English if possible, because the Emacs maintainers
usually do not have translators to read other languages for them.

Your bug report will be posted to the [email-masked] mailing list.

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':

When I open a file managed by Mercurial, hit C-x v g to annotate it, and
hit `l' to view the log message of the revision of the current line, I
get this:

Debugger entered--Lisp error: (wrong-number-of-arguments #[(backend files working-revision limit) "*byte code removed*" [pl-return vc-short-log dir-present files file --cl-dolist-temp-- nil file-directory-p t directory vc-call-backend print-log "*vc-change-log*" pop-to-buffer vc-exec-after let (inhibit-read-only t) quote ((quote log-view-mode)) set (make-local-variable (quote log-view-vc-backend)) (make-local-variable (quote log-view-vc-fileset)) when and ((not (eq (quote limit-unsupported) pl-return))) (goto-char (point-max)) widget-create (quote push-button) :notify lambda (&rest ignore) vc-print-log-internal * 2 (:help-echo "Show the log again, and double the number of log entries shown" "Show 2X entries") (widget-insert "    ") (quote push-button) (&rest ignore) (nil) (:help-echo "Show the log again, showing all entries" "Show unlimited entries") ((widget-setup)) (shrink-window-if-larger-than-buffer) (quote show-log-entry) ((setq vc-sentinel-movepoint (point)) (set-buffer-modified-p nil)) vc-log-short-style backend limit working-revision] 21] 3)
  vc-print-log-internal(Hg ("/home/magnus/foo.erl") "23")
  (if (not rev-at-line) (message "Cannot extract revision number from the current line") (vc-print-log-internal vc-annotate-backend (list ...) (car rev-at-line)))
  (let ((rev-at-line ...)) (if (not rev-at-line) (message "Cannot extract revision number from the current line") (vc-print-log-internal vc-annotate-backend ... ...)))
  (if (not (equal major-mode ...)) (message "Cannot be invoked outside of a vc annotate buffer") (let (...) (if ... ... ...)))
  vc-annotate-show-log-revision-at-line()
  call-interactively(vc-annotate-show-log-revision-at-line nil nil)

Doing the same with a file managed by Subversion seems to work.

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/share/emacs/23.1.50/etc/DEBUG.

In GNU Emacs 23.1.50.1 (i686-pc-linux-gnu, GTK+ Version 2.14.4)
 of 2009-11-17 on linux-b2a3
Windowing system distributor `The X.Org Foundation', version 11.0.10502000
Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: C
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=local
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Debugger

Minor modes in effect:
  diff-auto-refine-mode: t
  shell-dirtrack-mode: t
  jabber-activity-mode: t
  jabber-mode-line-mode: t
  show-paren-mode: t
  server-mode: t
  ido-everywhere: t
  icomplete-mode: t
  display-time-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  global-auto-composition-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent messages:
Loading vc-svn...done
Annotating...
Redisplaying annotation...done (Spanned from 14567.4 to 14567.4 days old)
Mark set
Annotating... done
Finding changes in /home/magnus/src/emacs/lisp/vc-annotate.el...
Reverting /home/magnus/src/emacs/lisp/vc-annotate.el...done
vc-annotate-show-log-revision-at-line
Entering debugger...

Load-path shadows:
~/emacs/org-mode/lisp/org-html hides /usr/local/share/emacs/23.1.50/lisp/org/org-html
~/emacs/org-mode/lisp/org-table hides /usr/local/share/emacs/23.1.50/lisp/org/org-table
~/emacs/org-mode/lisp/org-bbdb hides /usr/local/share/emacs/23.1.50/lisp/org/org-bbdb
~/emacs/org-mode/lisp/org-mouse hides /usr/local/share/emacs/23.1.50/lisp/org/org-mouse
~/emacs/org-mode/lisp/org-rmail hides /usr/local/share/emacs/23.1.50/lisp/org/org-rmail
~/emacs/org-mode/lisp/org-compat hides /usr/local/share/emacs/23.1.50/lisp/org/org-compat
~/emacs/org-mode/lisp/org-latex hides /usr/local/share/emacs/23.1.50/lisp/org/org-latex
~/emacs/org-mode/lisp/org-gnus hides /usr/local/share/emacs/23.1.50/lisp/org/org-gnus
~/emacs/org-mode/lisp/org-habit hides /usr/local/share/emacs/23.1.50/lisp/org/org-habit
~/emacs/org-mode/lisp/org-exp hides /usr/local/share/emacs/23.1.50/lisp/org/org-exp
~/emacs/org-mode/lisp/org-src hides /usr/local/share/emacs/23.1.50/lisp/org/org-src
~/emacs/org-mode/lisp/org-plot hides /usr/local/share/emacs/23.1.50/lisp/org/org-plot
~/emacs/org-mode/lisp/org-publish hides /usr/local/share/emacs/23.1.50/lisp/org/org-publish
~/emacs/org-mode/lisp/org-bibtex hides /usr/local/share/emacs/23.1.50/lisp/org/org-bibtex
~/emacs/org-mode/lisp/org-xoxo hides /usr/local/share/emacs/23.1.50/lisp/org/org-xoxo
~/emacs/org-mode/lisp/org-remember hides /usr/local/share/emacs/23.1.50/lisp/org/org-remember
~/emacs/org-mode/lisp/org-crypt hides /usr/local/share/emacs/23.1.50/lisp/org/org-crypt
~/emacs/org-mode/lisp/org-timer hides /usr/local/share/emacs/23.1.50/lisp/org/org-timer
~/emacs/org-mode/lisp/org-vm hides /usr/local/share/emacs/23.1.50/lisp/org/org-vm
~/emacs/org-mode/lisp/org hides /usr/local/share/emacs/23.1.50/lisp/org/org
~/emacs/org-mode/lisp/org-mew hides /usr/local/share/emacs/23.1.50/lisp/org/org-mew
~/emacs/org-mode/lisp/org-archive hides /usr/local/share/emacs/23.1.50/lisp/org/org-archive
~/emacs/org-mode/lisp/org-indent hides /usr/local/share/emacs/23.1.50/lisp/org/org-indent
~/emacs/org-mode/lisp/org-agenda hides /usr/local/share/emacs/23.1.50/lisp/org/org-agenda
~/emacs/org-mode/lisp/org-exp-blocks hides /usr/local/share/emacs/23.1.50/lisp/org/org-exp-blocks
~/emacs/org-mode/lisp/org-id hides /usr/local/share/emacs/23.1.50/lisp/org/org-id
~/emacs/org-mode/lisp/org-install hides /usr/local/share/emacs/23.1.50/lisp/org/org-install
~/emacs/org-mode/lisp/org-datetree hides /usr/local/share/emacs/23.1.50/lisp/org/org-datetree
~/emacs/org-mode/lisp/org-clock hides /usr/local/share/emacs/23.1.50/lisp/org/org-clock
~/emacs/org-mode/lisp/org-w3m hides /usr/local/share/emacs/23.1.50/lisp/org/org-w3m
~/emacs/org-mode/lisp/org-irc hides /usr/local/share/emacs/23.1.50/lisp/org/org-irc
~/emacs/org-mode/lisp/org-inlinetask hides /usr/local/share/emacs/23.1.50/lisp/org/org-inlinetask
~/emacs/org-mode/lisp/org-mac-message hides /usr/local/share/emacs/23.1.50/lisp/org/org-mac-message
~/emacs/org-mode/lisp/org-list hides /usr/local/share/emacs/23.1.50/lisp/org/org-list
~/emacs/org-mode/lisp/org-colview hides /usr/local/share/emacs/23.1.50/lisp/org/org-colview
~/emacs/org-mode/lisp/org-mobile hides /usr/local/share/emacs/23.1.50/lisp/org/org-mobile
~/emacs/org-mode/lisp/org-attach hides /usr/local/share/emacs/23.1.50/lisp/org/org-attach
~/emacs/org-mode/lisp/org-wl hides /usr/local/share/emacs/23.1.50/lisp/org/org-wl
~/emacs/org-mode/lisp/org-info hides /usr/local/share/emacs/23.1.50/lisp/org/org-info
~/emacs/org-mode/lisp/org-macs hides /usr/local/share/emacs/23.1.50/lisp/org/org-macs
~/emacs/org-mode/lisp/org-mhe hides /usr/local/share/emacs/23.1.50/lisp/org/org-mhe
~/emacs/org-mode/lisp/org-jsinfo hides /usr/local/share/emacs/23.1.50/lisp/org/org-jsinfo
~/emacs/org-mode/lisp/org-freemind hides /usr/local/share/emacs/23.1.50/lisp/org/org-freemind
~/emacs/org-mode/lisp/org-icalendar hides /usr/local/share/emacs/23.1.50/lisp/org/org-icalendar
~/emacs/org-mode/lisp/org-feed hides /usr/local/share/emacs/23.1.50/lisp/org/org-feed
~/emacs/org-mode/lisp/org-footnote hides /usr/local/share/emacs/23.1.50/lisp/org/org-footnote
~/emacs/org-mode/lisp/org-protocol hides /usr/local/share/emacs/23.1.50/lisp/org/org-protocol
~/emacs/org-mode/lisp/org-ascii hides /usr/local/share/emacs/23.1.50/lisp/org/org-ascii
~/emacs/org-mode/lisp/org-docbook hides /usr/local/share/emacs/23.1.50/lisp/org/org-docbook
~/emacs/org-mode/lisp/org-faces hides /usr/local/share/emacs/23.1.50/lisp/org/org-faces
~/emacs/emms/lisp/tq hides /usr/local/share/emacs/23.1.50/lisp/emacs-lisp/tq

Features:
(shadow emacsbug vc-svn make-mode descr-text vc-git locate jka-compr
vc-annotate log-view imenu pp log-edit pcvs-util add-log diff-mode vc
vc-dispatcher grep vc-hg etags org-clock warnings newcomment find-func
debug mule-util face-remap w3-style rect w3-forms url-cache url-http
w3-hot url-file url-dired w3-toolbar w3-emacs w3-props url-auth w3
w3-menu url-news url-irc url-gw cus-edit w3-emulate w3-parse
w3-fast-parse w3-display w3-mouse w3-imap url-handlers w3-widget w3-vars
w3-keymap w3-cus css font devices ange-ftp w3-cfg w3-compat org-feed
org-w3m org-wl org-vm org-rmail org-mhe org-mew org-irc org-jsinfo
org-infojs org-html org-exp org-exp-blocks org-agenda org-info org-gnus
org-bibtex org-bbdb org org-footnote org-src org-list org-faces
org-compat org-macs noutline outline multi-isearch quail help-mode view
browse-url em-unix em-term term ehelp electric em-script em-prompt em-ls
em-hist em-pred em-glob em-dirs em-cmpl em-basic esh-opt em-banner
em-alias esh-var esh-io esh-cmd esh-ext esh-proc esh-arg esh-groups
eshell esh-module esh-mode esh-util tramp-imap epa epg imap-hash
tramp-gw tramp-fish tramp-smb tramp-cache tramp-ftp tramp-cmds tramp
shell tramp-compat trampver copyright mailalias smtpmail bbdb-gui
gnus-cite smiley ansi-color flow-fill gnus-async gnus-bcklg sort gnus-ml
disp-table nndoc parse-time nnfolder utf-7 utf7 auth-source nnimap imap
byte-opt bytecomp byte-compile nndraft nnmh nnml gnus-agent gnus-srvr
gnus-score score-mode nnvirtual nntp gnus-cache spam spam-stat gnus-uu
yenc gnus-msg goto-addr thingatpt sasl-digest hmac-md5 jabber-gmail
jabber-keepalive jabber-bookmarks jabber-private jabber jabber-awesome
jabber-osd jabber-wmii jabber-xmessage jabber-festival jabber-sawfish
jabber-ratpoison jabber-screen jabber-socks5 jabber-ft-server
jabber-si-server jabber-ft-client jabber-ft-common jabber-si-client
jabber-si-common jabber-feature-neg jabber-truncate jabber-time
jabber-autoaway jabber-vcard-avatars jabber-chatstates jabber-events
jabber-vcard jabber-avatar jabber-activity jabber-watch jabber-modeline
jabber-ahc-presence jabber-ahc jabber-version jabber-ourversion
jabber-muc-nick-completion hippie-exp jabber-browse jabber-search
jabber-register jabber-roster jabber-presence assoc jabber-muc
jabber-newdisco jabber-widget jabber-disco jabber-chat ewoc
jabber-history jabber-chatbuffer jabber-alert jabber-iq jabber-keymap
jabber-core jabber-sasl sasl sasl-anonymous sasl-login sasl-plain fsm
jabber-logon jabber-conn srv dns starttls tls jabber-xml xml jabber-menu
eldoc paren server ido icomplete time cus-start cus-load
emms-playlist-sort emms-last-played emms-info-libtag emms-lastfm
emms-url emms-playing-time emms-mode-line url url-proxy url-privacy
url-expand url-methods url-history url-cookie url-util url-parse
url-vars emms-cache emms-info-ogginfo emms-info-mp3info emms-info
later-do emms-playlist-mode emms-player-vlc emms-player-mplayer
emms-player-simple emms-source-playlist emms-source-file dired
emms-setup emms emms-compat bbdb-gnus gnus-art mm-uu mml2015 epg-config
mm-view smime dig gnus-sum nnoo gnus-group gnus-undo nnmail mail-source
format-spec gnus-start gnus-spec gnus-int gnus-range message sendmail
ecomplete mml easymenu mml-sec password-cache mm-decode mm-bodies
mm-encode mailcap mail-parse rfc2231 rfc2047 rfc2045 qp ietf-drums
gmm-utils mailheader canlock sha1 hex-util hashcash gnus-win gnus
gnus-ems nnheader gnus-util netrc time-date mail-utils mm-util
mail-prsvr wid-edit bbdb-snarf mail-extr rfc822 bbdb-com mailabbrev
bbdb-autoloads bbdb regexp-opt timezone patmatch erl-service derived
derl erlext epmd net-fsm erl wrangler easy-mmode erlang flymake compile
comint ring w3-auto edmacro kmacro org-redmine cl cl-19 org-install
uniquify advice help-fns advice-preload vc-p4 p4-lowlevel lfe-mode
erlang-web-template tempo erlang-start jabber-autoloads jabber-util
tooltip ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd
font-setting tool-bar dnd fontset image fringe lisp-mode register page
menu-bar rfn-eshadow timer select scroll-bar mldrag mouse jit-lock
font-lock syntax facemenu font-core frame cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew
greek romanian slovak czech european ethiopic indian cyrillic chinese
case-table epa-hook jka-cmpr-hook help simple abbrev loaddefs button
minibuffer faces cus-face text-properties overlay md5 base64 format env
code-pages mule custom widget hashtable-print-readable backquote
make-network-process dbusbind font-render-setting system-font-setting
gtk x-toolkit x multi-tty emacs)