From: Stefan Monnier Date: Wed, 27 Dec 2006 16:26:34 +0000 (+0000) Subject: (vc-arch-find-version): New function. X-Git-Tag: emacs-pretest-22.0.93~384 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=544bdc401a830937e6954365bb7806ea062205cb;p=emacs.git (vc-arch-find-version): New function. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 20380257d1d..915034d4538 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,10 @@ +2006-12-27 Stefan Monnier + + * vc-arch.el (vc-arch-find-version): New function. + + * vc-hooks.el (vc-version-backup-file-name): Revision names may be + composed of arbitrary characters (even /) in some systems. + 2006-12-27 Eli Zaretskii * international/mule-cmds.el (select-safe-coding-system-interactively): diff --git a/lisp/vc-arch.el b/lisp/vc-arch.el index a0fc8af8345..bac6c26cc93 100644 --- a/lisp/vc-arch.el +++ b/lisp/vc-arch.el @@ -406,6 +406,20 @@ Return non-nil if FILE is unchanged." (defun vc-arch-init-version () nil) +;;; Less obvious implementations. + +(defun vc-arch-find-version (file rev buffer) + (let ((out (make-temp-file "vc-out"))) + (unwind-protect + (progn + (with-temp-buffer + (vc-arch-command (current-buffer) 1 nil "file-diffs" file rev) + (call-process-region (point-min) (point-max) + "patch" nil nil nil "-R" "-o" out file)) + (with-current-buffer buffer + (insert-file-contents out))) + (delete-file out)))) + (provide 'vc-arch) ;; arch-tag: a35c7c1c-5237-429d-88ef-3d718fd2e704