Mercurial > emacs
annotate lisp/log-view.el @ 105903:28d5dd02302d
* xmenu.c (Fx_popup_menu): Hide any tooltip before opening a menu.
author | Chong Yidong <cyd@stupidchicken.com> |
---|---|
date | Sun, 08 Nov 2009 00:14:30 +0000 |
parents | 7810759c427c |
children | dcd016df9f8c |
rev | line source |
---|---|
29041
49e8918cab44
Fix file description.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28861
diff
changeset
|
1 ;;; log-view.el --- Major mode for browsing RCS/CVS/SCCS log output |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
2 |
104778
afa0e028ba97
Mark face aliases with "-face" suffix as obsolete.
Glenn Morris <rgm@gnu.org>
parents:
104366
diff
changeset
|
3 ;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, |
afa0e028ba97
Mark face aliases with "-face" suffix as obsolete.
Glenn Morris <rgm@gnu.org>
parents:
104366
diff
changeset
|
4 ;; 2008, 2009 Free Software Foundation, Inc. |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
5 |
70292
2b77fa42947f
Update my email address.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
68651
diff
changeset
|
6 ;; Author: Stefan Monnier <monnier@iro.umontreal.ca> |
29041
49e8918cab44
Fix file description.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28861
diff
changeset
|
7 ;; Keywords: rcs sccs cvs log version-control |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
8 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
9 ;; This file is part of GNU Emacs. |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
10 |
94678
ee5932bf781d
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
93893
diff
changeset
|
11 ;; GNU Emacs is free software: you can redistribute it and/or modify |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
12 ;; it under the terms of the GNU General Public License as published by |
94678
ee5932bf781d
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
93893
diff
changeset
|
13 ;; the Free Software Foundation, either version 3 of the License, or |
ee5932bf781d
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
93893
diff
changeset
|
14 ;; (at your option) any later version. |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
15 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
16 ;; GNU Emacs is distributed in the hope that it will be useful, |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
17 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
19 ;; GNU General Public License for more details. |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
20 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
21 ;; You should have received a copy of the GNU General Public License |
94678
ee5932bf781d
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
93893
diff
changeset
|
22 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
23 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
24 ;;; Commentary: |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
25 |
67709
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
26 ;; Major mode to browse revision log histories. |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
27 ;; Currently supports the format output by: |
68098
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
28 ;; RCS, SCCS, CVS, Subversion, and DaRCS. |
67709
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
29 |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
30 ;; Examples of log output: |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
31 |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
32 ;;;; RCS/CVS: |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
33 |
67709
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
34 ;; ---------------------------- |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
35 ;; revision 1.35 locked by: turlutut |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
36 ;; date: 2005-03-22 18:48:38 +0000; author: monnier; state: Exp; lines: +6 -8 |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
37 ;; (gnus-display-time-event-handler): |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
38 ;; Check display-time-timer at runtime rather than only at load time |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
39 ;; in case display-time-mode is turned off in the mean time. |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
40 ;; ---------------------------- |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
41 ;; revision 1.34 |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
42 ;; date: 2005-02-09 15:50:38 +0000; author: kfstorm; state: Exp; lines: +7 -7 |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
43 ;; branches: 1.34.2; |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
44 ;; Change release version from 21.4 to 22.1 throughout. |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
45 ;; Change development version from 21.3.50 to 22.0.50. |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
46 |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
47 ;;;; SCCS: |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
48 |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
49 ;;;; Subversion: |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
50 |
87421
a7e1281f0f9e
Add log format samples for Subversion and Mercurial.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85474
diff
changeset
|
51 ;; ------------------------------------------------------------------------ |
a7e1281f0f9e
Add log format samples for Subversion and Mercurial.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85474
diff
changeset
|
52 ;; r4622 | ckuethe | 2007-12-23 18:18:01 -0500 (Sun, 23 Dec 2007) | 2 lines |
96006
4a520700b8b4
(vc-diff-internal): Declare for compiler.
Juanma Barranquero <lekktu@gmail.com>
parents:
95966
diff
changeset
|
53 ;; |
87421
a7e1281f0f9e
Add log format samples for Subversion and Mercurial.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85474
diff
changeset
|
54 ;; uBlox AEK-4T in binary mode. Added to unstable because it breaks gpsfake |
96006
4a520700b8b4
(vc-diff-internal): Declare for compiler.
Juanma Barranquero <lekktu@gmail.com>
parents:
95966
diff
changeset
|
55 ;; |
87421
a7e1281f0f9e
Add log format samples for Subversion and Mercurial.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85474
diff
changeset
|
56 ;; ------------------------------------------------------------------------ |
a7e1281f0f9e
Add log format samples for Subversion and Mercurial.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85474
diff
changeset
|
57 ;; r4621 | ckuethe | 2007-12-23 16:48:11 -0500 (Sun, 23 Dec 2007) | 3 lines |
96006
4a520700b8b4
(vc-diff-internal): Declare for compiler.
Juanma Barranquero <lekktu@gmail.com>
parents:
95966
diff
changeset
|
58 ;; |
87421
a7e1281f0f9e
Add log format samples for Subversion and Mercurial.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85474
diff
changeset
|
59 ;; Add a note about requiring usbfs to use the garmin gps18 (usb) |
a7e1281f0f9e
Add log format samples for Subversion and Mercurial.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85474
diff
changeset
|
60 ;; Mention firmware testing the AC12 with firmware BQ00 and BQ04 |
96006
4a520700b8b4
(vc-diff-internal): Declare for compiler.
Juanma Barranquero <lekktu@gmail.com>
parents:
95966
diff
changeset
|
61 ;; |
87421
a7e1281f0f9e
Add log format samples for Subversion and Mercurial.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85474
diff
changeset
|
62 ;; ------------------------------------------------------------------------ |
a7e1281f0f9e
Add log format samples for Subversion and Mercurial.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85474
diff
changeset
|
63 ;; r4620 | ckuethe | 2007-12-23 15:52:34 -0500 (Sun, 23 Dec 2007) | 1 line |
96006
4a520700b8b4
(vc-diff-internal): Declare for compiler.
Juanma Barranquero <lekktu@gmail.com>
parents:
95966
diff
changeset
|
64 ;; |
87421
a7e1281f0f9e
Add log format samples for Subversion and Mercurial.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85474
diff
changeset
|
65 ;; add link to latest hardware reference |
a7e1281f0f9e
Add log format samples for Subversion and Mercurial.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85474
diff
changeset
|
66 ;; ------------------------------------------------------------------------ |
a7e1281f0f9e
Add log format samples for Subversion and Mercurial.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85474
diff
changeset
|
67 ;; r4619 | ckuethe | 2007-12-23 14:37:31 -0500 (Sun, 23 Dec 2007) | 1 line |
96006
4a520700b8b4
(vc-diff-internal): Declare for compiler.
Juanma Barranquero <lekktu@gmail.com>
parents:
95966
diff
changeset
|
68 ;; |
87421
a7e1281f0f9e
Add log format samples for Subversion and Mercurial.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85474
diff
changeset
|
69 ;; there is now a regression test for AC12 without raw data output |
a7e1281f0f9e
Add log format samples for Subversion and Mercurial.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85474
diff
changeset
|
70 |
68098
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
71 ;;;; Darcs: |
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
72 |
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
73 ;; Changes to darcsum.el: |
96006
4a520700b8b4
(vc-diff-internal): Declare for compiler.
Juanma Barranquero <lekktu@gmail.com>
parents:
95966
diff
changeset
|
74 ;; |
68098
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
75 ;; Mon Nov 28 15:19:38 GMT 2005 Dave Love <fx@gnu.org> |
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
76 ;; * Abstract process startup into darcsum-start-process. Use TERM=dumb. |
96006
4a520700b8b4
(vc-diff-internal): Declare for compiler.
Juanma Barranquero <lekktu@gmail.com>
parents:
95966
diff
changeset
|
77 ;; TERM=dumb avoids escape characters, at least, for any old darcs that |
68098
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
78 ;; doesn't understand DARCS_DONT_COLOR & al. |
96006
4a520700b8b4
(vc-diff-internal): Declare for compiler.
Juanma Barranquero <lekktu@gmail.com>
parents:
95966
diff
changeset
|
79 ;; |
68098
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
80 ;; Thu Nov 24 15:20:45 GMT 2005 Dave Love <fx@gnu.org> |
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
81 ;; * darcsum-mode-related changes. |
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
82 ;; Don't call font-lock-mode (unnecessary) or use-local-map (redundant). |
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
83 ;; Use mode-class 'special. Add :group. |
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
84 ;; Add trailing-whitespace option to mode hook and fix |
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
85 ;; darcsum-display-changeset not to use trailing whitespace. |
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
86 |
87421
a7e1281f0f9e
Add log format samples for Subversion and Mercurial.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85474
diff
changeset
|
87 ;;;; Mercurial |
a7e1281f0f9e
Add log format samples for Subversion and Mercurial.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85474
diff
changeset
|
88 |
a7e1281f0f9e
Add log format samples for Subversion and Mercurial.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85474
diff
changeset
|
89 ;; changeset: 11:8ff1a4166444 |
a7e1281f0f9e
Add log format samples for Subversion and Mercurial.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85474
diff
changeset
|
90 ;; tag: tip |
a7e1281f0f9e
Add log format samples for Subversion and Mercurial.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85474
diff
changeset
|
91 ;; user: Eric S. Raymond <esr@thyrsus.com> |
a7e1281f0f9e
Add log format samples for Subversion and Mercurial.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85474
diff
changeset
|
92 ;; date: Wed Dec 26 12:18:58 2007 -0500 |
a7e1281f0f9e
Add log format samples for Subversion and Mercurial.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85474
diff
changeset
|
93 ;; summary: Explain keywords. Add markup fixes. |
96006
4a520700b8b4
(vc-diff-internal): Declare for compiler.
Juanma Barranquero <lekktu@gmail.com>
parents:
95966
diff
changeset
|
94 ;; |
87421
a7e1281f0f9e
Add log format samples for Subversion and Mercurial.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85474
diff
changeset
|
95 ;; changeset: 10:20abc7ab09c3 |
a7e1281f0f9e
Add log format samples for Subversion and Mercurial.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85474
diff
changeset
|
96 ;; user: Eric S. Raymond <esr@thyrsus.com> |
a7e1281f0f9e
Add log format samples for Subversion and Mercurial.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85474
diff
changeset
|
97 ;; date: Wed Dec 26 11:37:28 2007 -0500 |
a7e1281f0f9e
Add log format samples for Subversion and Mercurial.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85474
diff
changeset
|
98 ;; summary: Typo fixes. |
96006
4a520700b8b4
(vc-diff-internal): Declare for compiler.
Juanma Barranquero <lekktu@gmail.com>
parents:
95966
diff
changeset
|
99 ;; |
87421
a7e1281f0f9e
Add log format samples for Subversion and Mercurial.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85474
diff
changeset
|
100 ;; changeset: 9:ada9f4da88aa |
a7e1281f0f9e
Add log format samples for Subversion and Mercurial.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85474
diff
changeset
|
101 ;; user: Eric S. Raymond <esr@thyrsus.com> |
a7e1281f0f9e
Add log format samples for Subversion and Mercurial.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85474
diff
changeset
|
102 ;; date: Wed Dec 26 11:23:00 2007 -0500 |
a7e1281f0f9e
Add log format samples for Subversion and Mercurial.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85474
diff
changeset
|
103 ;; summary: Add RCS example session. |
a7e1281f0f9e
Add log format samples for Subversion and Mercurial.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85474
diff
changeset
|
104 |
67709
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
105 ;;; Todo: |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
106 |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
107 ;; - add ability to modify a log-entry (via cvs-mode-admin ;-) |
29041
49e8918cab44
Fix file description.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28861
diff
changeset
|
108 ;; - remove references to cvs-* |
67709
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
109 ;; - make it easier to add support for new backends without changing the code. |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
110 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
111 ;;; Code: |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
112 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
113 (eval-when-compile (require 'cl)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
114 (require 'pcvs-util) |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
115 (autoload 'vc-find-revision "vc") |
105472
7810759c427c
(log-view-diff): Use vc-diff-internal instead of
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105246
diff
changeset
|
116 (autoload 'vc-diff-internal "vc") |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
117 |
65293
f3b1607acf96
(cvs-minor-wrap-function): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
64762
diff
changeset
|
118 (defvar cvs-minor-wrap-function) |
f3b1607acf96
(cvs-minor-wrap-function): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
64762
diff
changeset
|
119 |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
120 (defgroup log-view nil |
29041
49e8918cab44
Fix file description.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28861
diff
changeset
|
121 "Major mode for browsing log output of RCS/CVS/SCCS." |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
122 :group 'pcl-cvs |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
123 :prefix "log-view-") |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
124 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
125 (easy-mmode-defmap log-view-mode-map |
104366
f02a9f76b408
(log-view-mode-map): Remove `q' binding, and unreliable
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
100908
diff
changeset
|
126 '(("z" . kill-this-buffer) |
82826
0d52789c865e
(log-view-toggle-mark-entry): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82365
diff
changeset
|
127 ("m" . log-view-toggle-mark-entry) |
87432
315124ffb889
* (vc.el, vc-sccs.el, vc-rcs.el, vc-cs.el, vc-mcvs.el): Put
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
87421
diff
changeset
|
128 ("e" . log-view-modify-change-comment) |
40958
4b4504c5aa56
* vc.el (vc-print-log): Bind `inhibit-read-only' to t before and
Sam Steingold <sds@gnu.org>
parents:
40954
diff
changeset
|
129 ("d" . log-view-diff) |
95966
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
130 ("D" . log-view-diff-changeset) |
78867
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
131 ("a" . log-view-annotate-version) |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
132 ("f" . log-view-find-revision) |
40958
4b4504c5aa56
* vc.el (vc-print-log): Bind `inhibit-read-only' to t before and
Sam Steingold <sds@gnu.org>
parents:
40954
diff
changeset
|
133 ("n" . log-view-msg-next) |
28251
21d27711125f
(log-view-(msg|file)-(prev|next)): Rename from
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28088
diff
changeset
|
134 ("p" . log-view-msg-prev) |
78882
ccd0441c69e1
* pcvs-defs.el (cvs-mode-map): Bind TAB and backtab.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78867
diff
changeset
|
135 ("\t" . log-view-msg-next) |
ccd0441c69e1
* pcvs-defs.el (cvs-mode-map): Bind TAB and backtab.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78867
diff
changeset
|
136 ([backtab] . log-view-msg-prev) |
28251
21d27711125f
(log-view-(msg|file)-(prev|next)): Rename from
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28088
diff
changeset
|
137 ("N" . log-view-file-next) |
21d27711125f
(log-view-(msg|file)-(prev|next)): Rename from
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28088
diff
changeset
|
138 ("P" . log-view-file-prev) |
40450
d29fac587062
(log-view-mode-map): Bind `M-n' and `M-p', not `M n'
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
34652
diff
changeset
|
139 ("\M-n" . log-view-file-next) |
d29fac587062
(log-view-mode-map): Bind `M-n' and `M-p', not `M n'
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
34652
diff
changeset
|
140 ("\M-p" . log-view-file-prev)) |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
141 "Log-View's keymap." |
104366
f02a9f76b408
(log-view-mode-map): Remove `q' binding, and unreliable
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
100908
diff
changeset
|
142 :group 'log-view) |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
143 |
78077
442f874e0b22
(log-view-mode-menu): New menu.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
75347
diff
changeset
|
144 (easy-menu-define log-view-mode-menu log-view-mode-map |
442f874e0b22
(log-view-mode-menu): New menu.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
75347
diff
changeset
|
145 "Log-View Display Menu" |
442f874e0b22
(log-view-mode-menu): New menu.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
75347
diff
changeset
|
146 `("Log-View" |
442f874e0b22
(log-view-mode-menu): New menu.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
75347
diff
changeset
|
147 ;; XXX Do we need menu entries for these? |
442f874e0b22
(log-view-mode-menu): New menu.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
75347
diff
changeset
|
148 ;; ["Quit" quit-window] |
442f874e0b22
(log-view-mode-menu): New menu.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
75347
diff
changeset
|
149 ;; ["Kill This Buffer" kill-this-buffer] |
93893
ff99dcb2b31b
* outline.el (outline-mode-menu-bar-map):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93867
diff
changeset
|
150 ["Mark Log Entry for Diff" set-mark-command |
ff99dcb2b31b
* outline.el (outline-mode-menu-bar-map):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93867
diff
changeset
|
151 :help ""] |
ff99dcb2b31b
* outline.el (outline-mode-menu-bar-map):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93867
diff
changeset
|
152 ["Diff Revisions" log-view-diff |
ff99dcb2b31b
* outline.el (outline-mode-menu-bar-map):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93867
diff
changeset
|
153 :help "Get the diff between two revisions"] |
95966
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
154 ["Changeset Diff" log-view-diff-changeset |
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
155 :help "Get the changeset diff between two revisions"] |
93893
ff99dcb2b31b
* outline.el (outline-mode-menu-bar-map):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93867
diff
changeset
|
156 ["Visit Version" log-view-find-revision |
ff99dcb2b31b
* outline.el (outline-mode-menu-bar-map):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93867
diff
changeset
|
157 :help "Visit the version at point"] |
ff99dcb2b31b
* outline.el (outline-mode-menu-bar-map):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93867
diff
changeset
|
158 ["Annotate Version" log-view-annotate-version |
ff99dcb2b31b
* outline.el (outline-mode-menu-bar-map):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93867
diff
changeset
|
159 :help "Annotate the version at point"] |
93867
520490ae1b9a
* vc-rcs.el (vc-rcs-modify-change-comment):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87562
diff
changeset
|
160 ["Modify Log Comment" log-view-modify-change-comment |
520490ae1b9a
* vc-rcs.el (vc-rcs-modify-change-comment):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87562
diff
changeset
|
161 :help "Edit the change comment displayed at point"] |
520490ae1b9a
* vc-rcs.el (vc-rcs-modify-change-comment):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87562
diff
changeset
|
162 "-----" |
93893
ff99dcb2b31b
* outline.el (outline-mode-menu-bar-map):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93867
diff
changeset
|
163 ["Next Log Entry" log-view-msg-next |
ff99dcb2b31b
* outline.el (outline-mode-menu-bar-map):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93867
diff
changeset
|
164 :help "Go to the next count'th log message"] |
ff99dcb2b31b
* outline.el (outline-mode-menu-bar-map):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93867
diff
changeset
|
165 ["Previous Log Entry" log-view-msg-prev |
ff99dcb2b31b
* outline.el (outline-mode-menu-bar-map):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93867
diff
changeset
|
166 :help "Go to the previous count'th log message"] |
ff99dcb2b31b
* outline.el (outline-mode-menu-bar-map):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93867
diff
changeset
|
167 ["Next File" log-view-file-next |
ff99dcb2b31b
* outline.el (outline-mode-menu-bar-map):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93867
diff
changeset
|
168 :help "Go to the next count'th file"] |
ff99dcb2b31b
* outline.el (outline-mode-menu-bar-map):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93867
diff
changeset
|
169 ["Previous File" log-view-file-prev |
ff99dcb2b31b
* outline.el (outline-mode-menu-bar-map):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93867
diff
changeset
|
170 :help "Go to the previous count'th file"])) |
78077
442f874e0b22
(log-view-mode-menu): New menu.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
75347
diff
changeset
|
171 |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
172 (defvar log-view-mode-hook nil |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
173 "Hook run at the end of `log-view-mode'.") |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
174 |
63203
ecbe83adff58
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-374
Miles Bader <miles@gnu.org>
parents:
60145
diff
changeset
|
175 (defface log-view-file |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
176 '((((class color) (background light)) |
42456
8a4077ab418c
(various face definitions): Use :weight, not :bold.
Richard M. Stallman <rms@gnu.org>
parents:
42074
diff
changeset
|
177 (:background "grey70" :weight bold)) |
8a4077ab418c
(various face definitions): Use :weight, not :bold.
Richard M. Stallman <rms@gnu.org>
parents:
42074
diff
changeset
|
178 (t (:weight bold))) |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
179 "Face for the file header line in `log-view-mode'." |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
180 :group 'log-view) |
104778
afa0e028ba97
Mark face aliases with "-face" suffix as obsolete.
Glenn Morris <rgm@gnu.org>
parents:
104366
diff
changeset
|
181 (define-obsolete-face-alias 'log-view-file-face 'log-view-file "22.1") |
63203
ecbe83adff58
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-374
Miles Bader <miles@gnu.org>
parents:
60145
diff
changeset
|
182 (defvar log-view-file-face 'log-view-file) |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
183 |
63203
ecbe83adff58
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-374
Miles Bader <miles@gnu.org>
parents:
60145
diff
changeset
|
184 (defface log-view-message |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
185 '((((class color) (background light)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
186 (:background "grey85")) |
42456
8a4077ab418c
(various face definitions): Use :weight, not :bold.
Richard M. Stallman <rms@gnu.org>
parents:
42074
diff
changeset
|
187 (t (:weight bold))) |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
188 "Face for the message header line in `log-view-mode'." |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
189 :group 'log-view) |
63203
ecbe83adff58
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-374
Miles Bader <miles@gnu.org>
parents:
60145
diff
changeset
|
190 ;; backward-compatibility alias |
104778
afa0e028ba97
Mark face aliases with "-face" suffix as obsolete.
Glenn Morris <rgm@gnu.org>
parents:
104366
diff
changeset
|
191 (define-obsolete-face-alias 'log-view-message-face 'log-view-message "22.1") |
63203
ecbe83adff58
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-374
Miles Bader <miles@gnu.org>
parents:
60145
diff
changeset
|
192 (defvar log-view-message-face 'log-view-message) |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
193 |
81511
9785d18889ed
(log-view-font-lock-keywords): Use `eval' to consult the
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
81330
diff
changeset
|
194 (defvar log-view-file-re |
81330
f7754bd2e73f
(log-view-file-re, log-view-message-re): Use \(?1:...\).
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
75347
diff
changeset
|
195 (concat "^\\(?:Working file: \\(?1:.+\\)" ;RCS and CVS. |
f7754bd2e73f
(log-view-file-re, log-view-message-re): Use \(?1:...\).
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
75347
diff
changeset
|
196 ;; Subversion has no such thing?? |
f7754bd2e73f
(log-view-file-re, log-view-message-re): Use \(?1:...\).
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
75347
diff
changeset
|
197 "\\|\\(?:SCCS/s\\.\\|Changes to \\)\\(?1:.+\\):" ;SCCS and Darcs. |
81567
0b055b6ebf6c
Add docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
81511
diff
changeset
|
198 "\\)\n") ;Include the \n for font-lock reasons. |
0b055b6ebf6c
Add docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
81511
diff
changeset
|
199 "Regexp matching the text identifying the file. |
0b055b6ebf6c
Add docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
81511
diff
changeset
|
200 The match group number 1 should match the file name itself.") |
67709
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
201 |
95966
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
202 (defvar log-view-per-file-logs t |
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
203 "Set if to t if the logs are shown one file at a time.") |
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
204 |
81511
9785d18889ed
(log-view-font-lock-keywords): Use `eval' to consult the
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
81330
diff
changeset
|
205 (defvar log-view-message-re |
81330
f7754bd2e73f
(log-view-file-re, log-view-message-re): Use \(?1:...\).
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
75347
diff
changeset
|
206 (concat "^\\(?:revision \\(?1:[.0-9]+\\)\\(?:\t.*\\)?" ; RCS and CVS. |
f7754bd2e73f
(log-view-file-re, log-view-message-re): Use \(?1:...\).
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
75347
diff
changeset
|
207 "\\|r\\(?1:[0-9]+\\) | .* | .*" ; Subversion. |
f7754bd2e73f
(log-view-file-re, log-view-message-re): Use \(?1:...\).
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
75347
diff
changeset
|
208 "\\|D \\(?1:[.0-9]+\\) .*" ; SCCS. |
68098
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
209 ;; Darcs doesn't have revision names. VC-darcs uses patch names |
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
210 ;; instead. Darcs patch names are hashcodes, which do not appear |
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
211 ;; in the log output :-(, but darcs accepts any prefix of the log |
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
212 ;; message as a patch name, so we match the first line of the log |
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
213 ;; message. |
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
214 ;; First loosely match the date format. |
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
215 (concat "\\|[^ \n].*[^0-9\n][0-9][0-9]:[0-9][0-9][^0-9\n].*[^ \n]" |
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
216 ;;Email of user and finally Msg, used as revision name. |
81330
f7754bd2e73f
(log-view-file-re, log-view-message-re): Use \(?1:...\).
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
75347
diff
changeset
|
217 " .*@.*\n\\(?: \\* \\(?1:.*\\)\\)?") |
78525
33690fc4e175
(log-view-font-lock-keywords): Use `eval' so as to adapt to buffer settings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78236
diff
changeset
|
218 "\\)$") |
81567
0b055b6ebf6c
Add docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
81511
diff
changeset
|
219 "Regexp matching the text identifying a revision. |
0b055b6ebf6c
Add docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
81511
diff
changeset
|
220 The match group number 1 should match the revision number itself.") |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
221 |
78525
33690fc4e175
(log-view-font-lock-keywords): Use `eval' so as to adapt to buffer settings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78236
diff
changeset
|
222 (defvar log-view-font-lock-keywords |
33690fc4e175
(log-view-font-lock-keywords): Use `eval' so as to adapt to buffer settings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78236
diff
changeset
|
223 ;; We use `eval' so as to use the buffer-local value of log-view-file-re |
33690fc4e175
(log-view-font-lock-keywords): Use `eval' so as to adapt to buffer settings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78236
diff
changeset
|
224 ;; and log-view-message-re, if applicable. |
33690fc4e175
(log-view-font-lock-keywords): Use `eval' so as to adapt to buffer settings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78236
diff
changeset
|
225 '((eval . `(,log-view-file-re |
81511
9785d18889ed
(log-view-font-lock-keywords): Use `eval' to consult the
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
81330
diff
changeset
|
226 (1 (if (boundp 'cvs-filename-face) cvs-filename-face)) |
78525
33690fc4e175
(log-view-font-lock-keywords): Use `eval' so as to adapt to buffer settings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78236
diff
changeset
|
227 (0 log-view-file-face append))) |
33690fc4e175
(log-view-font-lock-keywords): Use `eval' so as to adapt to buffer settings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78236
diff
changeset
|
228 (eval . `(,log-view-message-re . log-view-message-face)))) |
33690fc4e175
(log-view-font-lock-keywords): Use `eval' so as to adapt to buffer settings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
78236
diff
changeset
|
229 |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
230 (defconst log-view-font-lock-defaults |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
231 '(log-view-font-lock-keywords t nil nil nil)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
232 |
95966
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
233 (defvar log-view-vc-fileset nil |
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
234 "Set this to the fileset corresponding to the current log.") |
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
235 |
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
236 (defvar log-view-vc-backend nil |
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
237 "Set this to the VC backend that created the current log.") |
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
238 |
40954 | 239 ;;;; |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
240 ;;;; Actual code |
40954 | 241 ;;;; |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
242 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
243 ;;;###autoload |
104366
f02a9f76b408
(log-view-mode-map): Remove `q' binding, and unreliable
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
100908
diff
changeset
|
244 (define-derived-mode log-view-mode special-mode "Log-View" |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
245 "Major mode for browsing CVS log output." |
40958
4b4504c5aa56
* vc.el (vc-print-log): Bind `inhibit-read-only' to t before and
Sam Steingold <sds@gnu.org>
parents:
40954
diff
changeset
|
246 (setq buffer-read-only t) |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
247 (set (make-local-variable 'font-lock-defaults) log-view-font-lock-defaults) |
96006
4a520700b8b4
(vc-diff-internal): Declare for compiler.
Juanma Barranquero <lekktu@gmail.com>
parents:
95966
diff
changeset
|
248 (set (make-local-variable 'beginning-of-defun-function) |
78867
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
249 'log-view-beginning-of-defun) |
96006
4a520700b8b4
(vc-diff-internal): Declare for compiler.
Juanma Barranquero <lekktu@gmail.com>
parents:
95966
diff
changeset
|
250 (set (make-local-variable 'end-of-defun-function) |
78867
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
251 'log-view-end-of-defun) |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
252 (set (make-local-variable 'cvs-minor-wrap-function) 'log-view-minor-wrap)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
253 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
254 ;;;; |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
255 ;;;; Navigation |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
256 ;;;; |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
257 |
28251
21d27711125f
(log-view-(msg|file)-(prev|next)): Rename from
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28088
diff
changeset
|
258 ;; define log-view-{msg,file}-{next,prev} |
21d27711125f
(log-view-(msg|file)-(prev|next)): Rename from
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28088
diff
changeset
|
259 (easy-mmode-define-navigation log-view-msg log-view-message-re "log message") |
21d27711125f
(log-view-(msg|file)-(prev|next)): Rename from
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28088
diff
changeset
|
260 (easy-mmode-define-navigation log-view-file log-view-file-re "file") |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
261 |
28861
bab7620d1466
(log-view-goto-rev): New function for the new VC.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28251
diff
changeset
|
262 (defun log-view-goto-rev (rev) |
bab7620d1466
(log-view-goto-rev): New function for the new VC.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28251
diff
changeset
|
263 (goto-char (point-min)) |
bab7620d1466
(log-view-goto-rev): New function for the new VC.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28251
diff
changeset
|
264 (ignore-errors |
bab7620d1466
(log-view-goto-rev): New function for the new VC.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28251
diff
changeset
|
265 (while (not (equal rev (log-view-current-tag))) |
bab7620d1466
(log-view-goto-rev): New function for the new VC.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28251
diff
changeset
|
266 (log-view-msg-next)) |
bab7620d1466
(log-view-goto-rev): New function for the new VC.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28251
diff
changeset
|
267 t)) |
bab7620d1466
(log-view-goto-rev): New function for the new VC.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28251
diff
changeset
|
268 |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
269 ;;;; |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
270 ;;;; Linkage to PCL-CVS (mostly copied from cvs-status.el) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
271 ;;;; |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
272 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
273 (defconst log-view-dir-re "^cvs[.ex]* [a-z]+: Logging \\(.+\\)$") |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
274 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
275 (defun log-view-current-file () |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
276 (save-excursion |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
277 (forward-line 1) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
278 (or (re-search-backward log-view-file-re nil t) |
83843
bdd75f65c6cd
(log-view-current-file): Give a more explicit error if
Glenn Morris <rgm@gnu.org>
parents:
82852
diff
changeset
|
279 (re-search-forward log-view-file-re nil t) |
83845
0f772ae43706
(log-view-current-file): Balance parens.
Romain Francoise <romain@orebokech.com>
parents:
83843
diff
changeset
|
280 (error "Unable to determine the current file")) |
81330
f7754bd2e73f
(log-view-file-re, log-view-message-re): Use \(?1:...\).
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
75347
diff
changeset
|
281 (let* ((file (match-string 1)) |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
282 (cvsdir (and (re-search-backward log-view-dir-re nil t) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
283 (match-string 1))) |
29041
49e8918cab44
Fix file description.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28861
diff
changeset
|
284 (pcldir (and (boundp 'cvs-pcl-cvs-dirchange-re) |
49e8918cab44
Fix file description.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28861
diff
changeset
|
285 (re-search-backward cvs-pcl-cvs-dirchange-re nil t) |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
286 (match-string 1))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
287 (dir "")) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
288 (let ((default-directory "")) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
289 (when pcldir (setq dir (expand-file-name pcldir dir))) |
40958
4b4504c5aa56
* vc.el (vc-print-log): Bind `inhibit-read-only' to t before and
Sam Steingold <sds@gnu.org>
parents:
40954
diff
changeset
|
290 (when cvsdir (setq dir (expand-file-name cvsdir dir)))) |
4b4504c5aa56
* vc.el (vc-print-log): Bind `inhibit-read-only' to t before and
Sam Steingold <sds@gnu.org>
parents:
40954
diff
changeset
|
291 (expand-file-name file dir)))) |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
292 |
40958
4b4504c5aa56
* vc.el (vc-print-log): Bind `inhibit-read-only' to t before and
Sam Steingold <sds@gnu.org>
parents:
40954
diff
changeset
|
293 (defun log-view-current-tag (&optional where) |
28251
21d27711125f
(log-view-(msg|file)-(prev|next)): Rename from
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28088
diff
changeset
|
294 (save-excursion |
40958
4b4504c5aa56
* vc.el (vc-print-log): Bind `inhibit-read-only' to t before and
Sam Steingold <sds@gnu.org>
parents:
40954
diff
changeset
|
295 (when where (goto-char where)) |
28251
21d27711125f
(log-view-(msg|file)-(prev|next)): Rename from
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28088
diff
changeset
|
296 (forward-line 1) |
21d27711125f
(log-view-(msg|file)-(prev|next)): Rename from
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28088
diff
changeset
|
297 (let ((pt (point))) |
21d27711125f
(log-view-(msg|file)-(prev|next)): Rename from
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28088
diff
changeset
|
298 (when (re-search-backward log-view-message-re nil t) |
82844
a25b7156354b
(log-view-marked-list): Delete variable.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82826
diff
changeset
|
299 (let ((rev (match-string-no-properties 1))) |
28251
21d27711125f
(log-view-(msg|file)-(prev|next)): Rename from
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28088
diff
changeset
|
300 (unless (re-search-forward log-view-file-re pt t) |
21d27711125f
(log-view-(msg|file)-(prev|next)): Rename from
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28088
diff
changeset
|
301 rev)))))) |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
302 |
82826
0d52789c865e
(log-view-toggle-mark-entry): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82365
diff
changeset
|
303 (defun log-view-toggle-mark-entry () |
82852
26de218dc2d9
(log-view-toggle-mark-entry): Add docstring.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82844
diff
changeset
|
304 "Toggle the marked state for the log entry at point. |
26de218dc2d9
(log-view-toggle-mark-entry): Add docstring.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82844
diff
changeset
|
305 Individual log entries can be marked and unmarked. The marked |
26de218dc2d9
(log-view-toggle-mark-entry): Add docstring.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82844
diff
changeset
|
306 entries are denoted by changing their background color. |
26de218dc2d9
(log-view-toggle-mark-entry): Add docstring.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82844
diff
changeset
|
307 `log-view-get-marked' returns the list of tags for the marked |
26de218dc2d9
(log-view-toggle-mark-entry): Add docstring.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82844
diff
changeset
|
308 log entries." |
82826
0d52789c865e
(log-view-toggle-mark-entry): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82365
diff
changeset
|
309 (interactive) |
0d52789c865e
(log-view-toggle-mark-entry): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82365
diff
changeset
|
310 (save-excursion |
0d52789c865e
(log-view-toggle-mark-entry): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82365
diff
changeset
|
311 (forward-line 1) |
0d52789c865e
(log-view-toggle-mark-entry): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82365
diff
changeset
|
312 (let ((pt (point))) |
0d52789c865e
(log-view-toggle-mark-entry): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82365
diff
changeset
|
313 (when (re-search-backward log-view-message-re nil t) |
0d52789c865e
(log-view-toggle-mark-entry): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82365
diff
changeset
|
314 (let ((beg (match-beginning 0)) |
0d52789c865e
(log-view-toggle-mark-entry): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82365
diff
changeset
|
315 end ov ovlist found tag) |
0d52789c865e
(log-view-toggle-mark-entry): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82365
diff
changeset
|
316 (unless (re-search-forward log-view-file-re pt t) |
82844
a25b7156354b
(log-view-marked-list): Delete variable.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82826
diff
changeset
|
317 ;; Look to see if the current entry is marked. |
a25b7156354b
(log-view-marked-list): Delete variable.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82826
diff
changeset
|
318 (setq found (get-char-property (point) 'log-view-self)) |
82826
0d52789c865e
(log-view-toggle-mark-entry): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82365
diff
changeset
|
319 (if found |
82844
a25b7156354b
(log-view-marked-list): Delete variable.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82826
diff
changeset
|
320 (delete-overlay found) |
a25b7156354b
(log-view-marked-list): Delete variable.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82826
diff
changeset
|
321 ;; Create an overlay that covers this entry and change |
87421
a7e1281f0f9e
Add log format samples for Subversion and Mercurial.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85474
diff
changeset
|
322 ;; its color. |
82826
0d52789c865e
(log-view-toggle-mark-entry): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82365
diff
changeset
|
323 (setq tag (log-view-current-tag (point))) |
0d52789c865e
(log-view-toggle-mark-entry): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82365
diff
changeset
|
324 (forward-line 1) |
82844
a25b7156354b
(log-view-marked-list): Delete variable.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82826
diff
changeset
|
325 (setq end |
82826
0d52789c865e
(log-view-toggle-mark-entry): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82365
diff
changeset
|
326 (if (re-search-forward log-view-message-re nil t) |
0d52789c865e
(log-view-toggle-mark-entry): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82365
diff
changeset
|
327 (match-beginning 0) |
0d52789c865e
(log-view-toggle-mark-entry): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82365
diff
changeset
|
328 (point-max))) |
0d52789c865e
(log-view-toggle-mark-entry): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82365
diff
changeset
|
329 (setq ov (make-overlay beg end)) |
0d52789c865e
(log-view-toggle-mark-entry): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82365
diff
changeset
|
330 (overlay-put ov 'face 'log-view-file) |
82844
a25b7156354b
(log-view-marked-list): Delete variable.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82826
diff
changeset
|
331 ;; This is used to check if the overlay is present. |
a25b7156354b
(log-view-marked-list): Delete variable.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82826
diff
changeset
|
332 (overlay-put ov 'log-view-self ov) |
82826
0d52789c865e
(log-view-toggle-mark-entry): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82365
diff
changeset
|
333 (overlay-put ov 'log-view-marked tag)))))))) |
0d52789c865e
(log-view-toggle-mark-entry): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82365
diff
changeset
|
334 |
82844
a25b7156354b
(log-view-marked-list): Delete variable.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82826
diff
changeset
|
335 (defun log-view-get-marked () |
82852
26de218dc2d9
(log-view-toggle-mark-entry): Add docstring.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82844
diff
changeset
|
336 "Return the list of tags for the marked log entries." |
82844
a25b7156354b
(log-view-marked-list): Delete variable.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82826
diff
changeset
|
337 (save-excursion |
a25b7156354b
(log-view-marked-list): Delete variable.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82826
diff
changeset
|
338 (let ((pos (point-min)) |
a25b7156354b
(log-view-marked-list): Delete variable.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82826
diff
changeset
|
339 marked-list ov) |
a25b7156354b
(log-view-marked-list): Delete variable.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82826
diff
changeset
|
340 (while (setq pos (next-single-property-change pos 'face)) |
a25b7156354b
(log-view-marked-list): Delete variable.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82826
diff
changeset
|
341 (when (setq ov (get-char-property pos 'log-view-self)) |
a25b7156354b
(log-view-marked-list): Delete variable.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82826
diff
changeset
|
342 (push (overlay-get ov 'log-view-marked) marked-list) |
a25b7156354b
(log-view-marked-list): Delete variable.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82826
diff
changeset
|
343 (setq pos (overlay-end ov)))) |
a25b7156354b
(log-view-marked-list): Delete variable.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82826
diff
changeset
|
344 marked-list))) |
a25b7156354b
(log-view-marked-list): Delete variable.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82826
diff
changeset
|
345 |
78867
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
346 (defun log-view-beginning-of-defun () |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
347 ;; This assumes that a log entry starts with a line matching |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
348 ;; `log-view-message-re'. Modes that derive from `log-view-mode' |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
349 ;; for which this assumption is not valid will have to provide |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
350 ;; another implementation of this function. `log-view-msg-prev' |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
351 ;; does a similar job to this function, we can't use it here |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
352 ;; directly because it prints messages that are not appropriate in |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
353 ;; this context and it does not move to the beginning of the buffer |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
354 ;; when the point is before the first log entry. |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
355 |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
356 ;; `log-view-beginning-of-defun' and `log-view-end-of-defun' have |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
357 ;; been checked to work with logs produced by RCS, CVS, git, |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
358 ;; mercurial and subversion. |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
359 |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
360 (re-search-backward log-view-message-re nil 'move)) |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
361 |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
362 (defun log-view-end-of-defun () |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
363 ;; The idea in this function is to search for the beginning of the |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
364 ;; next log entry using `log-view-message-re' and then go back one |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
365 ;; line when finding it. Modes that derive from `log-view-mode' for |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
366 ;; which this assumption is not valid will have to provide another |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
367 ;; implementation of this function. |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
368 |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
369 ;; Look back and if there is no entry there it means we are before |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
370 ;; the first log entry, so go forward until finding one. |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
371 (unless (save-excursion (re-search-backward log-view-message-re nil t)) |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
372 (re-search-forward log-view-message-re nil t)) |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
373 |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
374 ;; In case we are at the end of log entry going forward a line will |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
375 ;; make us find the next entry when searching. If we are inside of |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
376 ;; an entry going forward a line will still keep the point inside |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
377 ;; the same entry. |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
378 (forward-line 1) |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
379 |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
380 ;; In case we are at the beginning of an entry, move past it. |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
381 (when (looking-at log-view-message-re) |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
382 (goto-char (match-end 0)) |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
383 (forward-line 1)) |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
384 |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
385 ;; Search for the start of the next log entry. Go to the end of the |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
386 ;; buffer if we could not find a next entry. |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
387 (when (re-search-forward log-view-message-re nil 'move) |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
388 (goto-char (match-beginning 0)) |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
389 (forward-line -1))) |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
390 |
67709
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
391 (defvar cvs-minor-current-files) |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
392 (defvar cvs-branch-prefix) |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
393 (defvar cvs-secondary-branch-prefix) |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
394 |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
395 (defun log-view-minor-wrap (buf f) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
396 (let ((data (with-current-buffer buf |
68370
89e7eb7d165b
(log-view-minor-wrap): First rev is the one at point.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
68221
diff
changeset
|
397 (let* ((beg (point)) |
89e7eb7d165b
(log-view-minor-wrap): First rev is the one at point.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
68221
diff
changeset
|
398 (end (if mark-active (mark) (point))) |
68221
4804f7b39bfe
(log-view-minor-wrap): Use the same logic to get revisions as `log-view-diff'.
Juri Linkov <juri@jurta.org>
parents:
68098
diff
changeset
|
399 (fr (log-view-current-tag beg)) |
4804f7b39bfe
(log-view-minor-wrap): Use the same logic to get revisions as `log-view-diff'.
Juri Linkov <juri@jurta.org>
parents:
68098
diff
changeset
|
400 (to (log-view-current-tag end))) |
4804f7b39bfe
(log-view-minor-wrap): Use the same logic to get revisions as `log-view-diff'.
Juri Linkov <juri@jurta.org>
parents:
68098
diff
changeset
|
401 (when (string-equal fr to) |
4804f7b39bfe
(log-view-minor-wrap): Use the same logic to get revisions as `log-view-diff'.
Juri Linkov <juri@jurta.org>
parents:
68098
diff
changeset
|
402 (save-excursion |
4804f7b39bfe
(log-view-minor-wrap): Use the same logic to get revisions as `log-view-diff'.
Juri Linkov <juri@jurta.org>
parents:
68098
diff
changeset
|
403 (goto-char end) |
4804f7b39bfe
(log-view-minor-wrap): Use the same logic to get revisions as `log-view-diff'.
Juri Linkov <juri@jurta.org>
parents:
68098
diff
changeset
|
404 (log-view-msg-next) |
4804f7b39bfe
(log-view-minor-wrap): Use the same logic to get revisions as `log-view-diff'.
Juri Linkov <juri@jurta.org>
parents:
68098
diff
changeset
|
405 (setq to (log-view-current-tag)))) |
4804f7b39bfe
(log-view-minor-wrap): Use the same logic to get revisions as `log-view-diff'.
Juri Linkov <juri@jurta.org>
parents:
68098
diff
changeset
|
406 (cons |
68370
89e7eb7d165b
(log-view-minor-wrap): First rev is the one at point.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
68221
diff
changeset
|
407 ;; The first revision has to be the one at point, for |
89e7eb7d165b
(log-view-minor-wrap): First rev is the one at point.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
68221
diff
changeset
|
408 ;; operations that only take one revision |
89e7eb7d165b
(log-view-minor-wrap): First rev is the one at point.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
68221
diff
changeset
|
409 ;; (e.g. cvs-mode-edit). |
89e7eb7d165b
(log-view-minor-wrap): First rev is the one at point.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
68221
diff
changeset
|
410 (cons (log-view-current-file) fr) |
89e7eb7d165b
(log-view-minor-wrap): First rev is the one at point.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
68221
diff
changeset
|
411 (cons (log-view-current-file) to)))))) |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
412 (let ((cvs-branch-prefix (cdar data)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
413 (cvs-secondary-branch-prefix (and (cdar data) (cddr data))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
414 (cvs-minor-current-files |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
415 (cons (caar data) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
416 (when (and (cadr data) (not (equal (caar data) (cadr data)))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
417 (list (cadr data))))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
418 ;; FIXME: I need to force because the fileinfos are UNKNOWN |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
419 (cvs-force-command "/F")) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
420 (funcall f)))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
421 |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
422 (defun log-view-find-revision (pos) |
41557
be985e4c1430
(log-view-find-version): New function.
André Spiegel <spiegel@gnu.org>
parents:
41137
diff
changeset
|
423 "Visit the version at point." |
be985e4c1430
(log-view-find-version): New function.
André Spiegel <spiegel@gnu.org>
parents:
41137
diff
changeset
|
424 (interactive "d") |
95966
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
425 (unless log-view-per-file-logs |
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
426 (when (> (length log-view-vc-fileset) 1) |
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
427 (error "Multiple files shown in this buffer, cannot use this command here"))) |
41557
be985e4c1430
(log-view-find-version): New function.
André Spiegel <spiegel@gnu.org>
parents:
41137
diff
changeset
|
428 (save-excursion |
be985e4c1430
(log-view-find-version): New function.
André Spiegel <spiegel@gnu.org>
parents:
41137
diff
changeset
|
429 (goto-char pos) |
95966
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
430 (switch-to-buffer (vc-find-revision (if log-view-per-file-logs |
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
431 (log-view-current-file) |
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
432 (car log-view-vc-fileset)) |
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
433 (log-view-current-tag))))) |
41557
be985e4c1430
(log-view-find-version): New function.
André Spiegel <spiegel@gnu.org>
parents:
41137
diff
changeset
|
434 |
87432
315124ffb889
* (vc.el, vc-sccs.el, vc-rcs.el, vc-cs.el, vc-mcvs.el): Put
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
87421
diff
changeset
|
435 |
315124ffb889
* (vc.el, vc-sccs.el, vc-rcs.el, vc-cs.el, vc-mcvs.el): Put
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
87421
diff
changeset
|
436 (defun log-view-extract-comment () |
315124ffb889
* (vc.el, vc-sccs.el, vc-rcs.el, vc-cs.el, vc-mcvs.el): Put
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
87421
diff
changeset
|
437 "Parse comment from around the current point in the log." |
315124ffb889
* (vc.el, vc-sccs.el, vc-rcs.el, vc-cs.el, vc-mcvs.el): Put
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
87421
diff
changeset
|
438 (save-excursion |
315124ffb889
* (vc.el, vc-sccs.el, vc-rcs.el, vc-cs.el, vc-mcvs.el): Put
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
87421
diff
changeset
|
439 (let (st en (backend (vc-backend (log-view-current-file)))) |
315124ffb889
* (vc.el, vc-sccs.el, vc-rcs.el, vc-cs.el, vc-mcvs.el): Put
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
87421
diff
changeset
|
440 (log-view-end-of-defun) |
315124ffb889
* (vc.el, vc-sccs.el, vc-rcs.el, vc-cs.el, vc-mcvs.el): Put
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
87421
diff
changeset
|
441 (cond ((eq backend 'SVN) |
315124ffb889
* (vc.el, vc-sccs.el, vc-rcs.el, vc-cs.el, vc-mcvs.el): Put
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
87421
diff
changeset
|
442 (forward-line -1))) |
315124ffb889
* (vc.el, vc-sccs.el, vc-rcs.el, vc-cs.el, vc-mcvs.el): Put
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
87421
diff
changeset
|
443 (setq en (point)) |
315124ffb889
* (vc.el, vc-sccs.el, vc-rcs.el, vc-cs.el, vc-mcvs.el): Put
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
87421
diff
changeset
|
444 (log-view-beginning-of-defun) |
315124ffb889
* (vc.el, vc-sccs.el, vc-rcs.el, vc-cs.el, vc-mcvs.el): Put
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
87421
diff
changeset
|
445 (cond ((memq backend '(SCCS RCS CVS MCVS SVN)) |
315124ffb889
* (vc.el, vc-sccs.el, vc-rcs.el, vc-cs.el, vc-mcvs.el): Put
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
87421
diff
changeset
|
446 (forward-line 2)) |
315124ffb889
* (vc.el, vc-sccs.el, vc-rcs.el, vc-cs.el, vc-mcvs.el): Put
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
87421
diff
changeset
|
447 ((eq backend 'Hg) |
315124ffb889
* (vc.el, vc-sccs.el, vc-rcs.el, vc-cs.el, vc-mcvs.el): Put
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
87421
diff
changeset
|
448 (forward-line 4) |
96006
4a520700b8b4
(vc-diff-internal): Declare for compiler.
Juanma Barranquero <lekktu@gmail.com>
parents:
95966
diff
changeset
|
449 (re-search-forward "summary: *" nil t))) |
87432
315124ffb889
* (vc.el, vc-sccs.el, vc-rcs.el, vc-cs.el, vc-mcvs.el): Put
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
87421
diff
changeset
|
450 (setq st (point)) |
315124ffb889
* (vc.el, vc-sccs.el, vc-rcs.el, vc-cs.el, vc-mcvs.el): Put
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
87421
diff
changeset
|
451 (buffer-substring st en)))) |
315124ffb889
* (vc.el, vc-sccs.el, vc-rcs.el, vc-cs.el, vc-mcvs.el): Put
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
87421
diff
changeset
|
452 |
87562
aeda902ed7fc
(vc-modify-change-comment): Declare for compiler.
Glenn Morris <rgm@gnu.org>
parents:
87432
diff
changeset
|
453 (declare-function vc-modify-change-comment "vc" (files rev oldcomment)) |
aeda902ed7fc
(vc-modify-change-comment): Declare for compiler.
Glenn Morris <rgm@gnu.org>
parents:
87432
diff
changeset
|
454 |
87432
315124ffb889
* (vc.el, vc-sccs.el, vc-rcs.el, vc-cs.el, vc-mcvs.el): Put
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
87421
diff
changeset
|
455 (defun log-view-modify-change-comment () |
315124ffb889
* (vc.el, vc-sccs.el, vc-rcs.el, vc-cs.el, vc-mcvs.el): Put
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
87421
diff
changeset
|
456 "Edit the change comment displayed at point." |
315124ffb889
* (vc.el, vc-sccs.el, vc-rcs.el, vc-cs.el, vc-mcvs.el): Put
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
87421
diff
changeset
|
457 (interactive) |
95966
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
458 (vc-modify-change-comment (list (if log-view-per-file-logs |
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
459 (log-view-current-file) |
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
460 (car log-view-vc-fileset))) |
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
461 (log-view-current-tag) |
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
462 (log-view-extract-comment))) |
87432
315124ffb889
* (vc.el, vc-sccs.el, vc-rcs.el, vc-cs.el, vc-mcvs.el): Put
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
87421
diff
changeset
|
463 |
78867
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
464 (defun log-view-annotate-version (pos) |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
465 "Annotate the version at point." |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
466 (interactive "d") |
95966
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
467 (unless log-view-per-file-logs |
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
468 (when (> (length log-view-vc-fileset) 1) |
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
469 (error "Multiple files shown in this buffer, cannot use this command here"))) |
78867
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
470 (save-excursion |
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
471 (goto-char pos) |
99895
a7e92bcb2135
(log-view-annotate-version): Let vc-annotate manage windows instead
Chong Yidong <cyd@stupidchicken.com>
parents:
96006
diff
changeset
|
472 (vc-annotate (if log-view-per-file-logs |
a7e92bcb2135
(log-view-annotate-version): Let vc-annotate manage windows instead
Chong Yidong <cyd@stupidchicken.com>
parents:
96006
diff
changeset
|
473 (log-view-current-file) |
a7e92bcb2135
(log-view-annotate-version): Let vc-annotate manage windows instead
Chong Yidong <cyd@stupidchicken.com>
parents:
96006
diff
changeset
|
474 (car log-view-vc-fileset)) |
a7e92bcb2135
(log-view-annotate-version): Let vc-annotate manage windows instead
Chong Yidong <cyd@stupidchicken.com>
parents:
96006
diff
changeset
|
475 (log-view-current-tag)))) |
78867
82b0e30f9888
* files.el (file-name-sans-versions): Allow - and a-z in version
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78525
diff
changeset
|
476 |
42074
fdee0c7c3bf1
(log-view-message-re, log-view-current-tag):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
41557
diff
changeset
|
477 ;; |
fdee0c7c3bf1
(log-view-message-re, log-view-current-tag):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
41557
diff
changeset
|
478 ;; diff |
fdee0c7c3bf1
(log-view-message-re, log-view-current-tag):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
41557
diff
changeset
|
479 ;; |
40958
4b4504c5aa56
* vc.el (vc-print-log): Bind `inhibit-read-only' to t before and
Sam Steingold <sds@gnu.org>
parents:
40954
diff
changeset
|
480 |
4b4504c5aa56
* vc.el (vc-print-log): Bind `inhibit-read-only' to t before and
Sam Steingold <sds@gnu.org>
parents:
40954
diff
changeset
|
481 (defun log-view-diff (beg end) |
67569 | 482 "Get the diff between two revisions. |
483 If the mark is not active or the mark is on the revision at point, | |
484 get the diff between the revision at point and its previous revision. | |
485 Otherwise, get the diff between the revisions where the region starts | |
105246
e0bd6a2a8ee5
(log-view-diff,log-view-diff-changeset): Improve docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104778
diff
changeset
|
486 and ends. |
e0bd6a2a8ee5
(log-view-diff,log-view-diff-changeset): Improve docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104778
diff
changeset
|
487 Contrary to `log-view-diff-changeset', it will only show the part of the |
e0bd6a2a8ee5
(log-view-diff,log-view-diff-changeset): Improve docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104778
diff
changeset
|
488 changeset that affected the currently considered file(s)." |
55175
e7a5be902830
(log-view-diff): Replace interactive code "r"
Juri Linkov <juri@jurta.org>
parents:
52401
diff
changeset
|
489 (interactive |
e7a5be902830
(log-view-diff): Replace interactive code "r"
Juri Linkov <juri@jurta.org>
parents:
52401
diff
changeset
|
490 (list (if mark-active (region-beginning) (point)) |
e7a5be902830
(log-view-diff): Replace interactive code "r"
Juri Linkov <juri@jurta.org>
parents:
52401
diff
changeset
|
491 (if mark-active (region-end) (point)))) |
40958
4b4504c5aa56
* vc.el (vc-print-log): Bind `inhibit-read-only' to t before and
Sam Steingold <sds@gnu.org>
parents:
40954
diff
changeset
|
492 (let ((fr (log-view-current-tag beg)) |
4b4504c5aa56
* vc.el (vc-print-log): Bind `inhibit-read-only' to t before and
Sam Steingold <sds@gnu.org>
parents:
40954
diff
changeset
|
493 (to (log-view-current-tag end))) |
4b4504c5aa56
* vc.el (vc-print-log): Bind `inhibit-read-only' to t before and
Sam Steingold <sds@gnu.org>
parents:
40954
diff
changeset
|
494 (when (string-equal fr to) |
4b4504c5aa56
* vc.el (vc-print-log): Bind `inhibit-read-only' to t before and
Sam Steingold <sds@gnu.org>
parents:
40954
diff
changeset
|
495 (save-excursion |
4b4504c5aa56
* vc.el (vc-print-log): Bind `inhibit-read-only' to t before and
Sam Steingold <sds@gnu.org>
parents:
40954
diff
changeset
|
496 (goto-char end) |
4b4504c5aa56
* vc.el (vc-print-log): Bind `inhibit-read-only' to t before and
Sam Steingold <sds@gnu.org>
parents:
40954
diff
changeset
|
497 (log-view-msg-next) |
4b4504c5aa56
* vc.el (vc-print-log): Bind `inhibit-read-only' to t before and
Sam Steingold <sds@gnu.org>
parents:
40954
diff
changeset
|
498 (setq to (log-view-current-tag)))) |
105472
7810759c427c
(log-view-diff): Use vc-diff-internal instead of
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105246
diff
changeset
|
499 (vc-diff-internal |
7810759c427c
(log-view-diff): Use vc-diff-internal instead of
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105246
diff
changeset
|
500 t (list log-view-vc-backend |
7810759c427c
(log-view-diff): Use vc-diff-internal instead of
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105246
diff
changeset
|
501 (if log-view-per-file-logs |
7810759c427c
(log-view-diff): Use vc-diff-internal instead of
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105246
diff
changeset
|
502 (list (log-view-current-file)) |
7810759c427c
(log-view-diff): Use vc-diff-internal instead of
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105246
diff
changeset
|
503 log-view-vc-fileset)) |
7810759c427c
(log-view-diff): Use vc-diff-internal instead of
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105246
diff
changeset
|
504 to fr))) |
95966
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
505 |
96006
4a520700b8b4
(vc-diff-internal): Declare for compiler.
Juanma Barranquero <lekktu@gmail.com>
parents:
95966
diff
changeset
|
506 (declare-function vc-diff-internal "vc" |
4a520700b8b4
(vc-diff-internal): Declare for compiler.
Juanma Barranquero <lekktu@gmail.com>
parents:
95966
diff
changeset
|
507 (async vc-fileset rev1 rev2 &optional verbose)) |
4a520700b8b4
(vc-diff-internal): Declare for compiler.
Juanma Barranquero <lekktu@gmail.com>
parents:
95966
diff
changeset
|
508 |
95966
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
509 (defun log-view-diff-changeset (beg end) |
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
510 "Get the diff between two revisions. |
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
511 If the mark is not active or the mark is on the revision at point, |
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
512 get the diff between the revision at point and its previous revision. |
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
513 Otherwise, get the diff between the revisions where the region starts |
105246
e0bd6a2a8ee5
(log-view-diff,log-view-diff-changeset): Improve docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104778
diff
changeset
|
514 and ends. |
e0bd6a2a8ee5
(log-view-diff,log-view-diff-changeset): Improve docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104778
diff
changeset
|
515 Contrary to `log-view-diff', it will show the whole changeset including |
e0bd6a2a8ee5
(log-view-diff,log-view-diff-changeset): Improve docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104778
diff
changeset
|
516 the changes that affected other files than the currently considered file(s)." |
95966
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
517 (interactive |
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
518 (list (if mark-active (region-beginning) (point)) |
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
519 (if mark-active (region-end) (point)))) |
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
520 (when (eq (vc-call-backend log-view-vc-backend 'revision-granularity) 'file) |
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
521 (error "The %s backend does not support changeset diffs" log-view-vc-backend)) |
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
522 (let ((fr (log-view-current-tag beg)) |
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
523 (to (log-view-current-tag end))) |
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
524 (when (string-equal fr to) |
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
525 ;; TO and FR are the same, look at the previous revision. |
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
526 (setq to (vc-call-backend log-view-vc-backend 'previous-revision nil fr))) |
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
527 (vc-diff-internal |
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
528 t |
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
529 ;; We want to see the diff for all the files in the changeset, so |
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
530 ;; pass NIL for the file list. The value passed here should |
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
531 ;; follow what `vc-deduce-fileset' returns. |
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
532 (list log-view-vc-backend nil) |
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94678
diff
changeset
|
533 to fr))) |
40958
4b4504c5aa56
* vc.el (vc-print-log): Bind `inhibit-read-only' to t before and
Sam Steingold <sds@gnu.org>
parents:
40954
diff
changeset
|
534 |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
535 (provide 'log-view) |
28251
21d27711125f
(log-view-(msg|file)-(prev|next)): Rename from
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28088
diff
changeset
|
536 |
60145
e7ec1f80fc80
(log-view-message-re): Fix up Subversion regexp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
55175
diff
changeset
|
537 ;; arch-tag: 0d64220b-ce7e-4f62-9c2a-6b04c2f81f4f |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
538 ;;; log-view.el ends here |