aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/vc-svn.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/vc-svn.el')
-rw-r--r--lisp/vc-svn.el11
1 files changed, 11 insertions, 0 deletions
diff --git a/lisp/vc-svn.el b/lisp/vc-svn.el
index ddecb89d77..0b34c30f63 100644
--- a/lisp/vc-svn.el
+++ b/lisp/vc-svn.el
@@ -399,6 +399,17 @@ The changes are between FIRST-VERSION and SECOND-VERSION."
(defun vc-svn-diff (files &optional oldvers newvers buffer)
"Get a difference report using SVN between two versions of fileset FILES."
+ (and oldvers
+ (catch 'no
+ (dolist (f files)
+ (or (equal oldvers (vc-workfile-version f))
+ (throw 'no nil)))
+ t)
+ ;; Use nil rather than the current revision because svn handles
+ ;; it better (i.e. locally). Note that if _any_ of the files
+ ;; has a different revision, we fetch the lot, which is
+ ;; obviously sub-optimal.
+ (setq oldvers nil))
(let* ((switches
(if vc-svn-diff-switches
(vc-switches 'SVN 'diff)