Skip to content

Commit

Permalink
contrib/emacs/vc-git.el: support vc-version-other-window
Browse files Browse the repository at this point in the history
Currently, the vc-git-checkout function uses `git checkout' to fetch a
file from the git repository to the working copy.  However, it is
completely ignoring the input argument that specifies the destination
file.  `git-checkout' does not support specifying this, so we have to
use `git-cat-file', capture the output in a buffer and then save it.

Signed-off-by: Junio C Hamano <junkio@cox.net>
  • Loading branch information
Sam Vilain authored and Junio C Hamano committed Jan 26, 2007
1 parent 1b55593 commit fd73423
Showing 1 changed file with 26 additions and 1 deletion.
27 changes: 26 additions & 1 deletion contrib/emacs/vc-git.el
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,10 @@
(let ((name (file-relative-name file)))
(eq 0 (apply #'call-process "git" nil (get-buffer "*Messages") nil (append args (list name))))))

(defun vc-git--run-command-out (output &rest args)
"Run a git command, output to output."
(eq 0 (apply #'call-process "git" nil output nil (append args))))

(defun vc-git-registered (file)
"Check whether FILE is registered with git."
(with-temp-buffer
Expand Down Expand Up @@ -120,7 +124,28 @@
(vc-git--run-command file "commit" "-m" comment "--only" "--")))

(defun vc-git-checkout (file &optional editable rev destfile)
(vc-git--run-command file "checkout" (or rev "HEAD")))
(if destfile
(let ((mybuff (get-buffer-create "vc-git-checkout-tmp")))
(let ((rv
(vc-git--run-command-out
mybuff "cat-file" "blob"
(concat (or rev "HEAD")
":"
(let ((output (vc-git--run-command-string
(file-relative-name file)
"ls-files" "--full-name")))
(string-match "\\(.*\\)" output)
(match-string 1 output))
)))
)
(if rv
(save-current-buffer
(set-buffer mybuff)
(set-visited-file-name destfile t)
(save-buffer)
)
rv)))
(vc-git--run-command file "checkout" (or rev "HEAD"))))

(defun vc-git-annotate-command (file buf &optional rev)
; FIXME: rev is ignored
Expand Down

0 comments on commit fd73423

Please sign in to comment.