changeset 82066:f599171df164

(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
author Dan Nicolaescu <dann@ics.uci.edu>
date Mon, 23 Jul 2007 20:51:02 +0000
parents e191c96a308d
children 54e3ba3cb7d3
files lisp/ChangeLog lisp/vc-git.el
diffstat 2 files changed, 19 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Mon Jul 23 20:37:33 2007 +0000
+++ b/lisp/ChangeLog	Mon Jul 23 20:51:02 2007 +0000
@@ -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)
--- a/lisp/vc-git.el	Mon Jul 23 20:37:33 2007 +0000
+++ b/lisp/vc-git.el	Mon Jul 23 20:51:02 2007 +0000
@@ -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