]> git.eshelyaron.com Git - emacs.git/commitdiff
(vc-svn-diff): If the repository version of all the files is the same
authorGlenn Morris <rgm@gnu.org>
Mon, 27 Aug 2007 07:04:45 +0000 (07:04 +0000)
committerGlenn Morris <rgm@gnu.org>
Mon, 27 Aug 2007 07:04:45 +0000 (07:04 +0000)
as the specified OLDVERS, do a local diff.

lisp/vc-svn.el

index ddecb89d77c2dd90cd414f241d5cfce1e502e63e..0b34c30f630ce169384ab9e82ed30f5f303f1993 100644 (file)
@@ -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)