Hi All,
For my current work on the test suite I needed Ediff to be able to compare
between a working copy and a revision of a file. Ediff does that by asking the
vc support to check out a file under a different name. svn does not support
this. Neither does svn support read-only files. Ediff uses both the read-only
flag and the destination file when requesting a file.
So I added support to vc-svn.el for what Ediff wants. Others might be
interested, so I decided to submit. There might be cleaner ways to do this though.
Please comment.
Log:
[[[
Add support to vc-svn.el for Ediff diff of working copy against
revision.
* contrib/client-side/vc-svn.el
vc-svn-checkout: added support for operation
'read-only to different file' as requested by Ediff
]]]
Index: contrib/client-side/vc-svn.el
===================================================================
--- contrib/client-side/vc-svn.el (revision 6924)
+++ contrib/client-side/vc-svn.el (working copy)
@@ -294,15 +294,24 @@
passing nil.
If optional arg DESTFILE is given, it is an alternate filename to
write the contents to; we raise an error."
- (unless editable
+ (when (or (not rev) (equal rev ""))
+ (setq rev "head"))
+ (cond
+ ((and (not editable) destfile)
+ (let ((buffer (create-file-buffer destfile)))
+ (set-buffer buffer)
+ (erase-buffer)
+ (vc-svn-find-version file rev buffer)
+ (write-file destfile nil)
+ (kill-buffer buffer)))
+ (editable
(error "VC asked Subversion to check out a read-only copy of file"))
- (when destfile
+ (destfile
(error "VC asked Subversion to check out a file under another name"))
- (when (equal rev "")
- (setq rev nil))
- (apply 'vc-do-command nil 0 vc-svn-program-name file
- "update" (if rev (list "-r" rev) '()))
- (vc-file-setprop file 'vc-workfile-version nil))
+ (t
+ (apply 'vc-do-command nil 0 vc-svn-program-name file
+ "update" (list "-r" rev))
+ (vc-file-setprop file 'vc-workfile-version nil))))
(defun vc-svn-revert (file &optional contents-done)
--
COMPUTERBILD 15/03: Premium-e-mail-Dienste im Test
--------------------------------------------------
1. GMX TopMail - Platz 1 und Testsieger!
2. GMX ProMail - Platz 2 und Preis-Qualitätssieger!
3. Arcor - 4. web.de - 5. T-Online - 6. freenet.de - 7. daybyday - 8. e-Post
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sat Aug 30 23:59:05 2003