emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] trunk r113620: * lisp/vc/log-view.el (log-view-diff): Extr


From: Dmitry Gutov
Subject: [Emacs-diffs] trunk r113620: * lisp/vc/log-view.el (log-view-diff): Extract `log-view-diff-common',
Date: Wed, 31 Jul 2013 12:23:10 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 113620
revision-id: address@hidden
parent: address@hidden
fixes bug: http://debbugs.gnu.org/14989
committer: Dmitry Gutov <address@hidden>
branch nick: trunk
timestamp: Wed 2013-07-31 15:22:10 +0300
message:
  * lisp/vc/log-view.el (log-view-diff): Extract `log-view-diff-common',
  use it.
  (log-view-diff-changeset): Same.
  (log-view-diff-common): Call backend command `previous-revision'
  to find out the previous revision, in both cases.  Swap the
  variables `to' and `fr', so that `fr' usually refers to the
  earlier revision.
modified:
  lisp/ChangeLog                 changelog-20091113204419-o5vbwnq5f7feedwu-1432
  lisp/vc/log-view.el            logview.el-20091113204419-o5vbwnq5f7feedwu-1777
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2013-07-31 07:32:58 +0000
+++ b/lisp/ChangeLog    2013-07-31 12:22:10 +0000
@@ -1,3 +1,13 @@
+2013-07-31  Dmitry Gutov  <address@hidden>
+
+       * vc/log-view.el (log-view-diff): Extract `log-view-diff-common',
+       use it.
+       (log-view-diff-changeset): Same.
+       (log-view-diff-common): Call backend command `previous-revision'
+       to find out the previous revision, in both cases.  Swap the
+       variables `to' and `fr', so that `fr' usually refers to the
+       earlier revision (Bug#14989).
+
 2013-07-31  Kan-Ru Chen  <address@hidden>
 
        * ibuf-ext.el (ibuffer-filter-by-filename):

=== modified file 'lisp/vc/log-view.el'
--- a/lisp/vc/log-view.el       2013-06-11 06:36:06 +0000
+++ b/lisp/vc/log-view.el       2013-07-31 12:22:10 +0000
@@ -562,19 +562,7 @@
   (interactive
    (list (if (use-region-p) (region-beginning) (point))
          (if (use-region-p) (region-end) (point))))
-  (let ((fr (log-view-current-tag beg))
-        (to (log-view-current-tag end)))
-    (when (string-equal fr to)
-      (save-excursion
-        (goto-char end)
-        (log-view-msg-next)
-        (setq to (log-view-current-tag))))
-    (vc-diff-internal
-     t (list log-view-vc-backend
-            (if log-view-per-file-logs
-                (list (log-view-current-file))
-              log-view-vc-fileset))
-     to fr)))
+  (log-view-diff-common beg end))
 
 (defun log-view-diff-changeset (beg end)
   "Get the diff between two revisions.
@@ -589,20 +577,29 @@
   (interactive
    (list (if (use-region-p) (region-beginning) (point))
          (if (use-region-p) (region-end) (point))))
-  (when (eq (vc-call-backend log-view-vc-backend 'revision-granularity) 'file)
+  (log-view-diff-common beg end t))
+
+(defun log-view-diff-common (beg end &optional whole-changeset)
+  (when (and whole-changeset
+             (eq (vc-call-backend log-view-vc-backend 'revision-granularity)
+                 'file))
     (error "The %s backend does not support changeset diffs" 
log-view-vc-backend))
-  (let ((fr (log-view-current-tag beg))
-        (to (log-view-current-tag end)))
+  (let ((to (log-view-current-tag beg))
+        (fr (log-view-current-tag end)))
     (when (string-equal fr to)
       ;; TO and FR are the same, look at the previous revision.
-      (setq to (vc-call-backend log-view-vc-backend 'previous-revision nil 
fr)))
+      (setq fr (vc-call-backend log-view-vc-backend 'previous-revision nil 
fr)))
     (vc-diff-internal
-     t
-     ;; We want to see the diff for all the files in the changeset, so
-     ;; pass NIL for the file list.  The value passed here should
-     ;; follow what `vc-deduce-fileset' returns.
-     (list log-view-vc-backend nil)
-     to fr)))
+     t (list log-view-vc-backend
+             ;; The value passed here should follow what
+             ;; `vc-deduce-fileset' returns.  If we want to see the
+             ;; diff for all the files in the changeset, pass NIL for
+             ;; the file list.
+             (unless whole-changeset
+               (if log-view-per-file-logs
+                   (list (log-view-current-file))
+                 log-view-vc-fileset)))
+     fr to)))
 
 (provide 'log-view)
 


reply via email to

[Prev in Thread] Current Thread [Next in Thread]