summaryrefslogtreecommitdiff
path: root/lisp/vc-git.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/vc-git.el')
-rw-r--r--lisp/vc-git.el10
1 files changed, 7 insertions, 3 deletions
diff --git a/lisp/vc-git.el b/lisp/vc-git.el
index 7895251be0e..64bcbeb0b2b 100644
--- a/lisp/vc-git.el
+++ b/lisp/vc-git.el
@@ -155,7 +155,6 @@
"Git-specific version of `dir-state'."
;; FIXME: This can't set 'ignored yet
(with-temp-buffer
- (buffer-disable-undo) ;; Because these buffers can get huge
(vc-git-command (current-buffer) nil nil "ls-files" "-t" "-c" "-m" "-o")
(goto-char (point-min))
(let ((status-char nil)
@@ -168,19 +167,24 @@
(line-end-position))))
(cond
;; The rest of the possible states in "git ls-files -t" output:
- ;; R removed/deleted
;; K to be killed
;; should not show up in vc-dired, so don't deal with them
;; here.
((eq status-char ?H)
+ (vc-file-setprop file 'vc-backend 'Git)
(vc-file-setprop file 'vc-state 'up-to-date))
+ ((eq status-char ?R)
+ (vc-file-setprop file 'vc-backend 'Git)
+ (vc-file-setprop file 'vc-state 'removed))
((eq status-char ?M)
+ (vc-file-setprop file 'vc-backend 'Git)
(vc-file-setprop file 'vc-state 'edited))
((eq status-char ?C)
+ (vc-file-setprop file 'vc-backend 'Git)
(vc-file-setprop file 'vc-state 'edited))
((eq status-char ??)
(vc-file-setprop file 'vc-backend 'none)
- (vc-file-setprop file 'vc-state 'nil)))
+ (vc-file-setprop file 'vc-state nil)))
(forward-line)))))
(defun vc-git-working-revision (file)