[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#14459: git vc-annotate fails in detached HEAD state
From: |
Claudio Bley |
Subject: |
bug#14459: git vc-annotate fails in detached HEAD state |
Date: |
Fri, 24 May 2013 15:07:37 +0200 |
User-agent: |
Wanderlust/2.15.9 (Almost Unreal) SEMI/1.14.6 (Maruoka) FLIM/1.14.9 (Gojō) APEL/10.8 Emacs/24.3.50 (i386-mingw-nt6.1.7601) MULE/6.0 (HANACHIRUSATO) |
Hi.
1. I open a git versioned file with vc-git enabled in a directory
currently in detached HEAD state (e.g. after checking out a tag)
2. notice the mode line says "Git:!"
Now, when I do
C-x v g (vc-annotate)
The annotation buffer will be displayed, only saying
,----
| fatal: bad revision ''
`----
Apparently, vc-git-working-revision calls "git symbolic-ref HEAD",
which - in this case - gives:
$ git symbolic-ref HEAD
fatal: ref HEAD is not a symbolic ref
So, vc-git-working-revision returns an empty string as the current
"revision" vc-mode refers to.
M-: (vc-git-working-revision (buffer-file-name))
-> ""
When calling vc-annotate, the vc-git-annotate-command gets called with
the empty string for the rev parameter leading to the error.
This patch fixes it for me:
----------------- 8< --------------------- 8< -------------
diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el
index 06474cb..63a7115 100644
--- a/lisp/vc/vc-git.el
+++ b/lisp/vc/vc-git.el
@@ -885,7 +885,7 @@ or BRANCH^ (where \"^\" can be repeated)."
(defun vc-git-annotate-command (file buf &optional rev)
(let ((name (file-relative-name file)))
- (vc-git-command buf 'async nil "blame" "--date=iso" "-C" "-C" rev "--"
name)))
+ (vc-git-command buf 'async nil "blame" "--date=iso" "-C" "-C" (if (>
(length rev) 0) rev) "--" name)))
(declare-function vc-annotate-convert-time "vc-annotate" (time))
--
Claudio
- bug#14459: git vc-annotate fails in detached HEAD state,
Claudio Bley <=