[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/trunk r100661: Allow global VC ops like `C-
From: |
Chong Yidong |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/trunk r100661: Allow global VC ops like `C-x v D' in Diff and Log-View buffers. |
Date: |
Tue, 29 Jun 2010 14:17:31 -0400 |
User-agent: |
Bazaar (2.0.3) |
------------------------------------------------------------
revno: 100661
committer: Chong Yidong <address@hidden>
branch nick: trunk
timestamp: Tue 2010-06-29 14:17:31 -0400
message:
Allow global VC ops like `C-x v D' in Diff and Log-View buffers.
* vc/diff-mode.el (diff-vc-backend): New var.
* vc/vc.el (vc-deduce-backend): New fun. Handle diff buffers.
(vc-root-diff, vc-print-root-log, vc-log-incoming)
(vc-log-outgoing): Use it.
(vc-diff-internal): Set diff-vc-backend.
modified:
lisp/ChangeLog
lisp/vc/diff-mode.el
lisp/vc/vc.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog 2010-06-28 12:54:44 +0000
+++ b/lisp/ChangeLog 2010-06-29 18:17:31 +0000
@@ -1,3 +1,12 @@
+2010-06-29 Chong Yidong <address@hidden>
+
+ * vc/vc.el (vc-deduce-backend): New fun. Handle diff buffers.
+ (vc-root-diff, vc-print-root-log, vc-log-incoming)
+ (vc-log-outgoing): Use it.
+ (vc-diff-internal): Set diff-vc-backend.
+
+ * vc/diff-mode.el (diff-vc-backend): New var.
+
2010-06-28 Jan Djärv <address@hidden>
* dynamic-setting.el (font-setting-change-default-font): Remove
=== modified file 'lisp/vc/diff-mode.el'
--- a/lisp/vc/diff-mode.el 2010-06-11 19:09:57 +0000
+++ b/lisp/vc/diff-mode.el 2010-06-29 18:17:31 +0000
@@ -97,6 +97,9 @@
:options '(diff-delete-empty-files diff-make-unified)
:group 'diff-mode)
+(defvar diff-vc-backend nil
+ "The VC backend that created the current Diff buffer, if any.")
+
(defvar diff-outline-regexp
"\\([*+][*+][*+] [^0-9]\\|@@ ...\\|\\*\\*\\* [0-9].\\|--- [0-9]..\\)")
=== modified file 'lisp/vc/vc.el'
--- a/lisp/vc/vc.el 2010-06-24 21:38:07 +0000
+++ b/lisp/vc/vc.el 2010-06-29 18:17:31 +0000
@@ -913,6 +913,16 @@
(nreverse flattened)))
(defvar vc-dir-backend)
+(defvar log-view-vc-backend)
+(defvar diff-vc-backend)
+
+(defun vc-deduce-backend ()
+ (cond ((derived-mode-p 'vc-dir-mode) vc-dir-backend)
+ ((derived-mode-p 'log-view-mode) log-view-vc-backend)
+ ((derived-mode-p 'diff-mode) diff-vc-backend)
+ ((derived-mode-p 'dired-mode)
+ (vc-responsible-backend default-directory))
+ (vc-mode (vc-backend buffer-file-name))))
(declare-function vc-dir-current-file "vc-dir" ())
(declare-function vc-dir-deduce-fileset "vc-dir" (&optional
state-model-only-files))
@@ -1547,6 +1557,7 @@
(message "%s" (cdr messages))
nil)
(diff-mode)
+ (set (make-local-variable 'diff-vc-backend) (car vc-fileset))
(set (make-local-variable 'revert-buffer-function)
`(lambda (ignore-auto noconfirm)
(vc-diff-internal ,async ',vc-fileset ,rev1 ,rev2 ,verbose)))
@@ -1656,10 +1667,7 @@
;; that's not what we want here, we want the diff for the VC root dir.
(call-interactively 'vc-version-diff)
(when buffer-file-name (vc-buffer-sync not-urgent))
- (let ((backend
- (cond ((derived-mode-p 'vc-dir-mode) vc-dir-backend)
- ((derived-mode-p 'dired-mode) (vc-responsible-backend
default-directory))
- (vc-mode (vc-backend buffer-file-name))))
+ (let ((backend (vc-deduce-backend))
rootdir working-revision)
(unless backend
(error "Buffer is not version controlled"))
@@ -1956,7 +1964,6 @@
If it contains `file' then show short logs for files.
Not all VC backends support short logs!")
-(defvar log-view-vc-backend)
(defvar log-view-vc-fileset)
(defun vc-print-log-setup-buttons (working-revision is-start-revision limit
pl-return)
@@ -2105,10 +2112,7 @@
(list lim)))
(t
(list (when (> vc-log-show-limit 0) vc-log-show-limit)))))
- (let ((backend
- (cond ((derived-mode-p 'vc-dir-mode) vc-dir-backend)
- ((derived-mode-p 'dired-mode) (vc-responsible-backend
default-directory))
- (vc-mode (vc-backend buffer-file-name))))
+ (let ((backend (vc-deduce-backend))
rootdir working-revision)
(unless backend
(error "Buffer is not version controlled"))
@@ -2120,10 +2124,7 @@
(defun vc-log-incoming (&optional remote-location)
"Show a log of changes that will be received with a pull operation from
REMOTE-LOCATION."
(interactive "sRemote location (empty for default): ")
- (let ((backend
- (cond ((derived-mode-p 'vc-dir-mode) vc-dir-backend)
- ((derived-mode-p 'dired-mode) (vc-responsible-backend
default-directory))
- (vc-mode (vc-backend buffer-file-name))))
+ (let ((backend (vc-deduce-backend))
rootdir working-revision)
(unless backend
(error "Buffer is not version controlled"))
@@ -2133,10 +2134,7 @@
(defun vc-log-outgoing (&optional remote-location)
"Show a log of changes that will be sent with a push operation to
REMOTE-LOCATION."
(interactive "sRemote location (empty for default): ")
- (let ((backend
- (cond ((derived-mode-p 'vc-dir-mode) vc-dir-backend)
- ((derived-mode-p 'dired-mode) (vc-responsible-backend
default-directory))
- (vc-mode (vc-backend buffer-file-name))))
+ (let ((backend (vc-deduce-backend))
rootdir working-revision)
(unless backend
(error "Buffer is not version controlled"))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/trunk r100661: Allow global VC ops like `C-x v D' in Diff and Log-View buffers.,
Chong Yidong <=