Subject: bug#9391: 24.0.50; vc-responsible-backend return wrong information about backend

From: Thierry Volpiatto <[email-masked]>
Date: Sun, 28 Aug 2011 07:57:12 +0200

Hi,
if i do from a Hg controlled directory "~/foo/bar" (or git, bzr):

(vc-responsible-backend "~/foo/bar")

It return RCS (when foo contain a RCS directory).

Same here:(of course)

(loop for i in vc-handled-backends thereis 
     (when (vc-call-backend i 'responsible-p "~/foo/bar") i))

This is due to vc-rcs-responsible-p that return wrong info.

Here a fix:

--8<---------------cut here---------------start------------->8---
(defun vc-rcs-responsible-p (file)
  "Return non-nil if RCS thinks it would be responsible for registering FILE."
  ;; TODO: check for all the patterns in vc-rcs-master-templates
  (file-directory-p (expand-file-name "RCS" (if (file-directory-p file)
                                                file (file-name-directory file)))))
--8<---------------cut here---------------end--------------->8---

In GNU Emacs 24.0.50.3 (i686-pc-linux-gnu, X toolkit, Xaw3d scroll bars)
 of 2011-08-27 on thierry-MM061
Windowing system distributor `The X.Org Foundation', version 11.0.11001000
configured using `configure  '--with-x-toolkit=lucid''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  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: fr_FR.utf8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Emacs-Lisp

Minor modes in effect:
  TeX-PDF-mode: t
  auto-image-file-mode: t
  show-paren-mode: t
  display-time-mode: t
  recentf-mode: t
  savehist-mode: t
  minibuffer-depth-indicate-mode: t
  shell-dirtrack-mode: t
  eldoc-mode: t
  diff-auto-refine-mode: t
  anything-dired-mode: t
  tooltip-mode: t
  mouse-wheel-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
  transient-mark-mode: t

Recent input:
a u s e SPC t h e SPC c o d e SPC i s SPC u n c h a 
n g e d . <return> <up> <up> <right> <right> <right> 
<right> <right> <right> <right> s <backspace> <right> 
s <backspace> <backspace> C-c C-c y <up> <up> <up> 
<right> <right> <right> <right> <right> <right> <right> 
C-M-SPC M-w <up> <left> <left> <left> <left> <left> 
C-M-SPC M-w C-z 2 M-: M-p M-p M-p M-p M-p M-p M-p M-p 
M-p <return> M-: M-p M-p M-p M-p M-p M-p M-p M-p M-p 
M-p M-p C-g C-y C-_ M-: C-y C-a ( a a d d <backspace> 
- d e a c t i <tab> SPC SPC C-y C-y <left> <left> <left> 
<left> <left> <left> <left> <left> <left> <left> <left> 
<left> <left> <left> <left> <left> <left> <left> <left> 
<left> <left> <left> <left> ' ' C-e C-e ) ) <return> 
C-z C-a <down> <right> <right> <right> <right> <right> 
C-M-SPC M-w <down> <down> <down> <down> <down> <down> 
<down> <down> M-: M-p <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <backspace> 
<backspace> <backspace> <backspace> <backspace> <backspace> 
<backspace> <backspace> <backspace> <backspace> <backspace> 
<backspace> <backspace> <backspace> <backspace> <backspace> 
<backspace> <backspace> <backspace> <backspace> <backspace> 
<backspace> <backspace> C-y C-y <return> <return> C-z 
C-a M-: M-p M-p M-p <return> M-: M-p C-k C-g C-z C-a 
<up> <up> <up> <up> <up> <up> <up> <up> <up> <right> 
<right> C-M-SPC M-w C-z C-a M-: ( C-y SPC SPC M-" M-" 
~ / l a b o / a n y t h i n g - c o n f i g - q p <right> 
) ) <return> M-: M-p C-k C-g M-x <return>

Recent messages:
Evaluating...
RCS
Quit
Mark set
Evaluating...
RCS
Quit

Scanning for dabbrevs...100%

Load-path shadows:
~/elisp/tex-site hides /usr/local/share/emacs/site-lisp/tex-site

Features:
(dabbrev vc-bzr vc-sccs vc-svn vc-cvs tla smerge-mode dvc-state
dvc-config diff dvc-cmenu dvc-about dvc-version mailalias smtpmail
sendmail shadow emacsbug epa-mail qp flow-fill smiley gnus-cite
mail-extr gnus-async gnus-bcklg gnus-ml tramp-cache tramp-sh cal-iso
find-func nndraft nnmh utf-7 nnimap utf7 nnml nnfolder rot13 netrc
network-stream starttls tls gnus-agent gnus-srvr gnus-score score-mode
nnvirtual gnus-msg nntp gnus-cache gnus-dired ido iswitchb rst make-mode
sh-script vc-rcs preview prv-emacs tex-buf reftex-vcr reftex-dcr
reftex-auc reftex imenu reftex-vars font-latex latex tex-style tex
latexenc conf-mode newcomment vc-git xgit-dvc xgit xgit-annotate
dvc-annotate xgit-log dvc-revlist xhg-dvc xhg xhg-annotate xhg-mq
xhg-log dvc-diff uniquify dvc-fileinfo bzr-core xdarcs-core xgit-core
xhg-core xmtn-minimal naquadah-theme em-unix 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-groups eshell
esh-module esh-mode align-let server slime-xref-browser slime-banner
slime-tramp slime-asdf slime-fancy slime-fontifying-fu slime-package-fu
slime-references slime-scratch slime-presentations slime-fuzzy
slime-fancy-inspector slime-c-p-c slime-editing-commands slime-autodoc
slime-parse slime-repl image-file newsticker newst-treeview
newst-plainview newst-reader newst-ticker newst-backend lpr em-term term
ehelp electric pdbtrack whitespace paren time winner mime-w3m mime
eword-decode mel path-util mime-parse std11 luna mime-def mcharset
mcs-20 mcs-e20 pces pces-e20 pces-20 broken pcustom poe w3m-load
help-mode view avoid recentf tree-widget savehist googlecl google-maps
google-maps-static google-maps-geocode google-maps-base json
simple-call-tree el-expectations el-mock csv2org iedit zop-to-char
mule-util alist pym static apel-ver product elscreen smallurl mm-url
xml-weather rectangle-utils tv-utils pcvs pcvs-parse pcvs-info pcvs-defs
auto-document autodoc mb-depth ioccur moz cl-info slime hideshow
hyperspec slime-autoloads boxquote rect ledger-config ledger esh-arg
esh-util woman man esh-toggle em-xtra flymake ipython python-mode
info-look ansi-color executable shell eldoc-eval eldoc no-word
regex-tool dired-extension image-dired yaoddmuse skeleton sgml-mode
emms-mplayer-config emms-playlist-limit emms-volume emms-volume-amixer
emms-i18n emms-history emms-score emms-stream-info
emms-metaplaylist-mode emms-bookmarks emms-lastfm-client parse-time
emms-cue emms-mode-line-icon emms-browser sort emms-playlist-sort
emms-last-played emms-player-xine emms-player-mpd tq emms-playing-time
emms-lyrics emms-url hl-line emms-tag-editor emms-mark emms-mode-line
emms-cache emms-info-ogginfo emms-info-mp3info emms-playlist-mode
emms-player-vlc emms-player-mplayer emms-info emms-streams later-do
emms-source-playlist emms-source-file emms-player-simple emms-setup emms
emms-compat dvc-init bzr-gnus tla-gnus xgit-gnus xhg-gnus gnus-art mm-uu
mml2015 mm-view mml-smime smime dig nnir gnus-sum nnoo gnus-group
gnus-undo nnmail mail-source gnus-start gnus-spec gnus-int gnus-range
gnus-win gnus gnus-ems nnheader dvc-gnus tla-core tla-autoconf tla-defs
dvc-log vc vc-dispatcher dvc-unified dvc-tips ediff-merg ediff-diff
ediff-wind ediff-help ediff-util ediff-mult ediff-init ediff
dvc-autoloads dvc-core dvc-lisp dvc-buffers dvc-ui dvc-register
dvc-utils dvc-emacs ewoc dvc-defs dvc-site psvn log-edit pcvs-util
add-log diff-mode htmlize-hack htmlize muse-colors muse-docbook
muse-texinfo texnfo-upd texinfo muse-latex muse-html muse-xml-common
muse-wiki cus-edit cus-start cus-load muse-publish muse-project
muse-protocols muse-regexps muse muse-nested-tags muse-mode
muse-autoloads org-config-thierry org-crypt cal-china lunar solar
cal-dst cal-bahai cal-islam cal-hebrew holidays hol-loaddefs vc-hg
org-wl org-w3m org-vm org-rmail org-mhe org-mew org-irc org-jsinfo
org-infojs org-html org-exp ob-exp org-exp-blocks org-info org-gnus
org-docview org-bibtex bibtex org-bbdb org-agenda appt diary-lib
diary-loaddefs org-annotation-helper org-capture org-mks remember
org-remember org-datetree config-w3m w3m doc-view jka-compr image-mode
timezone w3m-hist w3m-fb w3m-ems wid-edit w3m-ccl ccl w3m-favicon
w3m-image w3m-proc w3m-util addressbook-bookmark message rfc822 mml
mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045
ietf-drums mailabbrev mail-utils gmm-utils mailheader firefox-protocol
bookmark-uzbl-handler bookmark-firefox-handler bookmark-extensions org
ob-emacs-lisp ob-tangle ob-ref ob-lob ob-table org-footnote org-src
ob-comint ob-keys ob ob-eval org-pcomplete pcomplete org-list org-faces
org-compat org-entities org-macs noutline outline cal-menu calendar
cal-loaddefs bookmark pp init-anything-thierry descbinds-anything
shell-history anything-complete anything-show-completion
anything-obsolete anything-delicious anything-mercurial anything-stgit
anything-config browse-url rx anything-match-plugin xml url url-proxy
url-privacy url-expand url-methods url-history url-cookie url-util
url-parse url-vars mailcap grep compile comint ring tramp tramp-compat
format-spec tramp-loaddefs dired-x dired-aux dired regexp-opt ffap
thingatpt anything warnings epa-file epa derived epg epg-config
auth-source eieio byte-opt bytecomp byte-compile cconv macroexp assoc
gnus-util time-date mm-util mail-prsvr password-cache usage-memo
eev-thierry edmacro kmacro iterator eev-all eev-mini-steps
eev-browse-url eev-langs eev-compose eev-glyphs disp-table eev-insert
eev-steps eev-bounded eev easy-mmode advice help-fns advice-preload cl
w3m-wget preview-latex tex-site auto-loads info easymenu tooltip
ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar dnd
fontset image fringe lisp-mode register page menu-bar rfn-eshadow timer
select scroll-bar 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 minibuffer loaddefs button faces cus-face files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote make-network-process
dbusbind dynamic-setting system-font-setting font-render-setting
x-toolkit x multi-tty emacs)

-- 
A+ Thierry
Get my Gnupg key:
gpg --keyserver pgp.mit.edu --recv-keys 59F29997