changeset 74940:f0d812b53a76

(vc-arch-find-version): New function.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Wed, 27 Dec 2006 16:26:34 +0000
parents e58390f88130
children e7574ee349e7
files lisp/ChangeLog lisp/vc-arch.el
diffstat 2 files changed, 21 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Wed Dec 27 16:25:42 2006 +0000
+++ b/lisp/ChangeLog	Wed Dec 27 16:26:34 2006 +0000
@@ -1,3 +1,10 @@
+2006-12-27  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* 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  <eliz@gnu.org>
 
 	* international/mule-cmds.el (select-safe-coding-system-interactively):
--- a/lisp/vc-arch.el	Wed Dec 27 16:25:42 2006 +0000
+++ b/lisp/vc-arch.el	Wed Dec 27 16:26:34 2006 +0000
@@ -406,6 +406,20 @@
 
 (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