diff options
Diffstat (limited to 'lisp/vc')
-rw-r--r-- | lisp/vc/log-view.el | 43 | ||||
-rw-r--r-- | lisp/vc/vc-dir.el | 2 | ||||
-rw-r--r-- | lisp/vc/vc-hooks.el | 4 |
3 files changed, 25 insertions, 24 deletions
diff --git a/lisp/vc/log-view.el b/lisp/vc/log-view.el index de103c0cdb6..be985866532 100644 --- a/lisp/vc/log-view.el +++ b/lisp/vc/log-view.el @@ -562,19 +562,7 @@ file(s)." (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 @@ considered file(s)." (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) diff --git a/lisp/vc/vc-dir.el b/lisp/vc/vc-dir.el index 441b3725968..5ddcfd57748 100644 --- a/lisp/vc/vc-dir.el +++ b/lisp/vc/vc-dir.el @@ -282,7 +282,7 @@ See `run-hooks'." (define-key map "Q" 'vc-dir-query-replace-regexp) (define-key map (kbd "M-s a C-s") 'vc-dir-isearch) (define-key map (kbd "M-s a M-C-s") 'vc-dir-isearch-regexp) - (define-key map "I" 'vc-dir-ignore) + (define-key map "G" 'vc-dir-ignore) ;; Hook up the menu. (define-key map [menu-bar vc-dir-mode] diff --git a/lisp/vc/vc-hooks.el b/lisp/vc/vc-hooks.el index 284481ee524..ae9aa0118ae 100644 --- a/lisp/vc/vc-hooks.el +++ b/lisp/vc/vc-hooks.el @@ -918,6 +918,7 @@ current, and kill the buffer that visits the link." (define-key map "c" 'vc-rollback) (define-key map "d" 'vc-dir) (define-key map "g" 'vc-annotate) + (define-key map "G" 'vc-ignore) (define-key map "h" 'vc-insert-headers) (define-key map "i" 'vc-register) (define-key map "l" 'vc-print-log) @@ -1002,6 +1003,9 @@ current, and kill the buffer that visits the link." (bindings--define-key map [vc-register] '(menu-item "Register" vc-register :help "Register file set into a version control system")) + (bindings--define-key map [vc-ignore] + '(menu-item "Ignore File..." vc-ignore + :help "Ignore a file under current version control system")) (bindings--define-key map [vc-dir] '(menu-item "VC Dir" vc-dir :help "Show the VC status of files in a directory")) |