summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lisp/ChangeLog3
-rw-r--r--lisp/vc-svn.el6
2 files changed, 8 insertions, 1 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 4501a5db72c..605b099b558 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -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 --git a/lisp/vc-svn.el b/lisp/vc-svn.el
index cbb951d60b7..553024f636d 100644
--- a/lisp/vc-svn.el
+++ b/lisp/vc-svn.el
@@ -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 @@ The changes are between FIRST-VERSION and SECOND-VERSION."
(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)