# HG changeset patch
# User Stefan Monnier <monnier@iro.umontreal.ca>
# Date 1104707663 0
# Node ID d30f6c6ad0b5ecaa26ffbd961ccb02548043591e
# Parent  f3839cb9f16c86e51e19c0650eed01bc9c41d12a
(vc-svn-diff): Stay local if possible.  From Karl Chen <quarl@cs.berkeley.edu>.

diff -r f3839cb9f16c -r d30f6c6ad0b5 lisp/ChangeLog
--- a/lisp/ChangeLog	Sun Jan 02 23:11:26 2005 +0000
+++ b/lisp/ChangeLog	Sun Jan 02 23:14:23 2005 +0000
@@ -5,6 +5,9 @@
 
 2005-01-02  Stefan  <monnier@iro.umontreal.ca>
 
+	* vc-svn.el (vc-svn-diff): Stay local if possible.
+	From Karl Chen <quarl@cs.berkeley.edu>.
+
 	* vc-arch.el (vc-arch-workfile-version): Handle the empty-branch case.
 
 	* files.el (hack-local-variables): Fix last change.
diff -r f3839cb9f16c -r d30f6c6ad0b5 lisp/vc-svn.el
--- a/lisp/vc-svn.el	Sun Jan 02 23:11:26 2005 +0000
+++ b/lisp/vc-svn.el	Sun Jan 02 23:14:23 2005 +0000
@@ -1,6 +1,6 @@
 ;;; vc-svn.el --- non-resident support for Subversion version-control
 
-;; Copyright (C) 1995, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+;; Copyright (C) 1995, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
 ;;           Free Software Foundation, Inc.
 
 ;; Author:      FSF (see vc.el for full credits)
@@ -352,6 +352,10 @@
 (defun vc-svn-diff (file &optional oldvers newvers buffer)
   "Get a difference report using SVN between two versions of FILE."
   (unless buffer (setq buffer "*vc-diff*"))
+  (if (and oldvers (equal oldvers (vc-workfile-version file)))
+      ;; Use nil rather than the current revision because svn handles it
+      ;; better (i.e. locally).
+      (setq oldvers nil))
   (if (string= (vc-workfile-version file) "0")
       ;; This file is added but not yet committed; there is no master file.
       (if (or oldvers newvers)