summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog6
-rw-r--r--lisp/vc-git.el27
2 files changed, 19 insertions, 14 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 1c2cb6e9529..09572aa1cd5 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,9 @@
+2007-07-23 Alexandre Julliard <julliard@winehq.org>
+
+ * vc-git.el (vc-git-delete-file, vc-git-rename-file): New functions.
+ (vc-git-find-version): Use the result of ls-files as a parameter
+ for cat-file
+
2007-07-23 Michael Albinus <michael.albinus@gmx.de>
* net/tramp.el (tramp-perl-file-attributes)
diff --git a/lisp/vc-git.el b/lisp/vc-git.el
index f1a9d009f12..d65d8428e61 100644
--- a/lisp/vc-git.el
+++ b/lisp/vc-git.el
@@ -2,7 +2,7 @@
;; Copyright (C) 2006, 2007 Free Software Foundation, Inc.
-;; Author: Alexandre Julliard
+;; Author: Alexandre Julliard <julliard@winehq.org>
;; Keywords: tools
;; This file is part of GNU Emacs.
@@ -101,8 +101,8 @@
;; - next-version (file rev) ??
;; - check-headers () ??
;; - clear-headers () ??
-;; - delete-file (file) COMMENTED OUT, VERIFY IF CORRECT
-;; - rename-file (old new) COMMENTED OUT, VERIFY IF CORRECT
+;; - delete-file (file) OK
+;; - rename-file (old new) OK
;; - find-file-hook () PROBABLY NOT NEEDED
;; - find-file-not-found-hook () PROBABLY NOT NEEDED
@@ -237,10 +237,14 @@
(defun vc-git-find-version (file rev buffer)
(let ((coding-system-for-read 'binary)
- (coding-system-for-write 'binary))
+ (coding-system-for-write 'binary)
+ (fullname (substring
+ (vc-git--run-command-string
+ file "ls-files" "-z" "--full-name" "--")
+ 0 -1)))
(vc-git-command
buffer 0
- (concat (if rev rev "HEAD") ":" file) "cat-file" "blob")))
+ (concat (if rev rev "HEAD") ":" fullname) "cat-file" "blob")))
(defun vc-git-checkout (file &optional editable rev)
(vc-git-command nil0 file "checkout" (or rev "HEAD")))
@@ -383,16 +387,11 @@
(point)
(progn (forward-line 1) (1- (point))))))))))
-;; XXX verify this is correct
-;; (defun vc-git-delete-file (file)
-;; (condition-case ()
-;; (delete-file file)
-;; (file-error nil))
-;; (vc-git-command nil 0 file "update-index" "--remove"))
+(defun vc-git-delete-file (file)
+ (vc-git-command nil 0 file "rm" "-f" "--"))
-;; XXX verify this is correct
-;; (defun vc-git-rename-file (old new)
-;; (vc-git-command nil 0 new old "mv"))
+(defun vc-git-rename-file (old new)
+ (vc-git-command nil 0 (list old new) "mv" "-f" "--"))
;; Internal commands