Mercurial > emacs
annotate lisp/vc.el @ 96512:a8382026762a
(IT_OVERFLOW_NEWLINE_INTO_FRINGE): Turn it off if word-wrapping.
(IT_DISPLAYING_WHITESPACE): New macro.
(move_it_in_display_line_to): Handle MOVE_TO_X requests properly
when word-wrapping. Simplify word-wrapping logic. Use correct
pixel positions when saving copies of the iterator.
(display_line): Use proper wrap point if the last character on a
line was preceded by whitespace.
author | Chong Yidong <cyd@stupidchicken.com> |
---|---|
date | Sat, 05 Jul 2008 05:31:12 +0000 |
parents | 02d657f45045 |
children | 3b7098612be6 |
rev | line source |
---|---|
33564
d8c822512b62
(vc-version-diff): Bind inhibit-read-only when inserting text.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
33562
diff
changeset
|
1 ;;; vc.el --- drive a version-control system from within Emacs |
904 | 2 |
64762
41bb365f41c4
Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
64091
diff
changeset
|
3 ;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000, |
87893
160807cd63a7
(vc-diff-sentinel): Do not write a footer if there were differences.
Glenn Morris <rgm@gnu.org>
parents:
87879
diff
changeset
|
4 ;; 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 |
160807cd63a7
(vc-diff-sentinel): Do not write a footer if there were differences.
Glenn Morris <rgm@gnu.org>
parents:
87879
diff
changeset
|
5 ;; Free Software Foundation, Inc. |
904 | 6 |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
7 ;; Author: FSF (see below for full credits) |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
8 ;; Maintainer: Andre Spiegel <spiegel@gnu.org> |
39117 | 9 ;; Keywords: tools |
904 | 10 |
11 ;; This file is part of GNU Emacs. | |
12 | |
94678
ee5932bf781d
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
94652
diff
changeset
|
13 ;; GNU Emacs is free software: you can redistribute it and/or modify |
904 | 14 ;; 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:
94652
diff
changeset
|
15 ;; 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:
94652
diff
changeset
|
16 ;; (at your option) any later version. |
904 | 17 |
18 ;; GNU Emacs is distributed in the hope that it will be useful, | |
19 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
20 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
21 ;; GNU General Public License for more details. | |
22 | |
23 ;; 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:
94652
diff
changeset
|
24 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. |
904 | 25 |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
26 ;;; Credits: |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
27 |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
28 ;; VC was initially designed and implemented by Eric S. Raymond |
85064
3e1b7531aa3e
Port various comments from new VC to reduce the noise in the diff.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85059
diff
changeset
|
29 ;; <esr@thyrsus.com> in 1992. Over the years, many other people have |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
30 ;; contributed substantial amounts of work to VC. These include: |
85064
3e1b7531aa3e
Port various comments from new VC to reduce the noise in the diff.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85059
diff
changeset
|
31 ;; |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
32 ;; Per Cederqvist <ceder@lysator.liu.se> |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
33 ;; Paul Eggert <eggert@twinsun.com> |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
34 ;; Sebastian Kremer <sk@thp.uni-koeln.de> |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
35 ;; Martin Lorentzson <martinl@gnu.org> |
32910 | 36 ;; Dave Love <fx@gnu.org> |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
37 ;; Stefan Monnier <monnier@cs.yale.edu> |
93956
bfc762f0b49c
* vc-hooks.el (vc-state): Add new state `conflict'.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93934
diff
changeset
|
38 ;; Thien-Thi Nguyen <ttn@gnu.org> |
bfc762f0b49c
* vc-hooks.el (vc-state): Add new state `conflict'.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93934
diff
changeset
|
39 ;; Dan Nicolaescu <dann@ics.uci.edu> |
41071 | 40 ;; J.D. Smith <jdsmith@alum.mit.edu> |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
41 ;; Andre Spiegel <spiegel@gnu.org> |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
42 ;; Richard Stallman <rms@gnu.org> |
85064
3e1b7531aa3e
Port various comments from new VC to reduce the noise in the diff.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85059
diff
changeset
|
43 ;; |
3e1b7531aa3e
Port various comments from new VC to reduce the noise in the diff.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85059
diff
changeset
|
44 ;; In July 2007 ESR returned and redesigned the mode to cope better |
3e1b7531aa3e
Port various comments from new VC to reduce the noise in the diff.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85059
diff
changeset
|
45 ;; with modern version-control systems that do commits by fileset |
3e1b7531aa3e
Port various comments from new VC to reduce the noise in the diff.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85059
diff
changeset
|
46 ;; rather than per individual file. |
3e1b7531aa3e
Port various comments from new VC to reduce the noise in the diff.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85059
diff
changeset
|
47 ;; |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
48 ;; If you maintain a client of the mode or customize it in your .emacs, |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
49 ;; note that some backend functions which formerly took single file arguments |
85064
3e1b7531aa3e
Port various comments from new VC to reduce the noise in the diff.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85059
diff
changeset
|
50 ;; now take a list of files. These include: register, checkin, print-log, |
3e1b7531aa3e
Port various comments from new VC to reduce the noise in the diff.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85059
diff
changeset
|
51 ;; rollback, and diff. |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
52 |
904 | 53 ;;; Commentary: |
54 | |
2402
61e1f8813d03
(vc-comment-to-changelog): A useful vc-checkin hook, added.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2226
diff
changeset
|
55 ;; This mode is fully documented in the Emacs user's manual. |
61e1f8813d03
(vc-comment-to-changelog): A useful vc-checkin hook, added.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2226
diff
changeset
|
56 ;; |
78875
2568254b40a4
Mention all supported VC backends.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78822
diff
changeset
|
57 ;; Supported version-control systems presently include CVS, RCS, GNU |
94806
eedf64b515f0
Remove wash-log from the VC backend API.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94805
diff
changeset
|
58 ;; Arch, Subversion, Bzr, Git, Mercurial, Monotone and SCCS |
78875
2568254b40a4
Mention all supported VC backends.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78822
diff
changeset
|
59 ;; (or its free replacement, CSSC). |
12943
10d0f42db2da
(vc-directory): Kill existing vc-dired buffers for this directory.
André Spiegel <spiegel@gnu.org>
parents:
12926
diff
changeset
|
60 ;; |
10d0f42db2da
(vc-directory): Kill existing vc-dired buffers for this directory.
André Spiegel <spiegel@gnu.org>
parents:
12926
diff
changeset
|
61 ;; Some features will not work with old RCS versions. Where |
10d0f42db2da
(vc-directory): Kill existing vc-dired buffers for this directory.
André Spiegel <spiegel@gnu.org>
parents:
12926
diff
changeset
|
62 ;; appropriate, VC finds out which version you have, and allows or |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
63 ;; disallows those features (stealing locks, for example, works only |
12943
10d0f42db2da
(vc-directory): Kill existing vc-dired buffers for this directory.
André Spiegel <spiegel@gnu.org>
parents:
12926
diff
changeset
|
64 ;; from 5.6.2 onwards). |
10537
380605821cc9
(vc-do-command): Arrange for the default-directory variable
Richard M. Stallman <rms@gnu.org>
parents:
10475
diff
changeset
|
65 ;; Even initial checkins will fail if your RCS version is so old that ci |
380605821cc9
(vc-do-command): Arrange for the default-directory variable
Richard M. Stallman <rms@gnu.org>
parents:
10475
diff
changeset
|
66 ;; doesn't understand -t-; this has been known to happen to people running |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
67 ;; NExTSTEP 3.0. |
904 | 68 ;; |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
69 ;; You can support the RCS -x option by customizing vc-rcs-master-templates. |
904 | 70 ;; |
71 ;; Proper function of the SCCS diff commands requires the shellscript vcdiff | |
72 ;; to be installed somewhere on Emacs's path for executables. | |
73 ;; | |
2402
61e1f8813d03
(vc-comment-to-changelog): A useful vc-checkin hook, added.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2226
diff
changeset
|
74 ;; If your site uses the ChangeLog convention supported by Emacs, the |
86908
6e9e38d61817
* log-edit.el (log-edit-show-diff): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
86503
diff
changeset
|
75 ;; function `log-edit-comment-to-change-log' could prove a useful checkin hook, |
6e9e38d61817
* log-edit.el (log-edit-show-diff): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
86503
diff
changeset
|
76 ;; although you might prefer to use C-c C-a (i.e. `log-edit-insert-changelog') |
51369
91b1fb194872
(vc-directory-exclusion-list): Add MCVS and .svn.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
51245
diff
changeset
|
77 ;; from the commit buffer instead or to set `log-edit-setup-invert'. |
2402
61e1f8813d03
(vc-comment-to-changelog): A useful vc-checkin hook, added.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2226
diff
changeset
|
78 ;; |
904 | 79 ;; The vc code maintains some internal state in order to reduce expensive |
80 ;; version-control operations to a minimum. Some names are only computed | |
62610
4f2f430bf7c3
(vc-trunk-p): Add autoload cookie. The function is used in vc-rcs.el
André Spiegel <spiegel@gnu.org>
parents:
61705
diff
changeset
|
81 ;; once. If you perform version control operations with the backend while |
904 | 82 ;; vc's back is turned, or move/rename master files while vc is running, |
83 ;; vc may get seriously confused. Don't do these things! | |
84 ;; | |
85 ;; Developer's notes on some concurrency issues are included at the end of | |
86 ;; the file. | |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
87 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
88 ;; ADDING SUPPORT FOR OTHER BACKENDS |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
89 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
90 ;; VC can use arbitrary version control systems as a backend. To add |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
91 ;; support for a new backend named SYS, write a library vc-sys.el that |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
92 ;; contains functions of the form `vc-sys-...' (note that SYS is in lower |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
93 ;; case for the function and library names). VC will use that library if |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
94 ;; you put the symbol SYS somewhere into the list of |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
95 ;; `vc-handled-backends'. Then, for example, if `vc-sys-registered' |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
96 ;; returns non-nil for a file, all SYS-specific versions of VC commands |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
97 ;; will be available for that file. |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
98 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
99 ;; VC keeps some per-file information in the form of properties (see |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
100 ;; vc-file-set/getprop in vc-hooks.el). The backend-specific functions |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
101 ;; do not generally need to be aware of these properties. For example, |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
102 ;; `vc-sys-working-revision' should compute the working revision and |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
103 ;; return it; it should not look it up in the property, and it needn't |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
104 ;; store it there either. However, if a backend-specific function does |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
105 ;; store a value in a property, that value takes precedence over any |
40958
4b4504c5aa56
* vc.el (vc-print-log): Bind `inhibit-read-only' to t before and
Sam Steingold <sds@gnu.org>
parents:
40850
diff
changeset
|
106 ;; value that the generic code might want to set (check for uses of |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
107 ;; the macro `with-vc-properties' in vc.el). |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
108 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
109 ;; In the list of functions below, each identifier needs to be prepended |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
110 ;; with `vc-sys-'. Some of the functions are mandatory (marked with a |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
111 ;; `*'), others are optional (`-'). |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
112 ;; |
81963
535f90fff765
Put the lower half (the back-end) of NewVC in place. This commit
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
81957
diff
changeset
|
113 ;; BACKEND PROPERTIES |
535f90fff765
Put the lower half (the back-end) of NewVC in place. This commit
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
81957
diff
changeset
|
114 ;; |
535f90fff765
Put the lower half (the back-end) of NewVC in place. This commit
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
81957
diff
changeset
|
115 ;; * revision-granularity |
535f90fff765
Put the lower half (the back-end) of NewVC in place. This commit
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
81957
diff
changeset
|
116 ;; |
85064
3e1b7531aa3e
Port various comments from new VC to reduce the noise in the diff.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85059
diff
changeset
|
117 ;; Takes no arguments. Returns either 'file or 'repository. Backends |
3e1b7531aa3e
Port various comments from new VC to reduce the noise in the diff.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85059
diff
changeset
|
118 ;; that return 'file have per-file revision numbering; backends |
3e1b7531aa3e
Port various comments from new VC to reduce the noise in the diff.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85059
diff
changeset
|
119 ;; that return 'repository have per-repository revision numbering, |
3e1b7531aa3e
Port various comments from new VC to reduce the noise in the diff.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85059
diff
changeset
|
120 ;; so a revision level implicitly identifies a changeset |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
121 ;; |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
122 ;; STATE-QUERYING FUNCTIONS |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
123 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
124 ;; * registered (file) |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
125 ;; |
78085
a861d80cf88c
* log-view.el (log-view-font-lock-keywords): Use `eval' to consult the
Dan Nicolaescu <dann@ics.uci.edu>
parents:
75347
diff
changeset
|
126 ;; Return non-nil if FILE is registered in this backend. Both this |
78158
8dcc6f809d32
Add more info about the vc-registered function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78085
diff
changeset
|
127 ;; function as well as `state' should be careful to fail gracefully |
8dcc6f809d32
Add more info about the vc-registered function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78085
diff
changeset
|
128 ;; in the event that the backend executable is absent. It is |
8dcc6f809d32
Add more info about the vc-registered function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78085
diff
changeset
|
129 ;; preferable that this function's body is autoloaded, that way only |
8dcc6f809d32
Add more info about the vc-registered function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78085
diff
changeset
|
130 ;; calling vc-registered does not cause the backend to be loaded |
8dcc6f809d32
Add more info about the vc-registered function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78085
diff
changeset
|
131 ;; (all the vc-FOO-registered functions are called to try to find |
8dcc6f809d32
Add more info about the vc-registered function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78085
diff
changeset
|
132 ;; the controlling backend for FILE. |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
133 ;; |
40958
4b4504c5aa56
* vc.el (vc-print-log): Bind `inhibit-read-only' to t before and
Sam Steingold <sds@gnu.org>
parents:
40850
diff
changeset
|
134 ;; * state (file) |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
135 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
136 ;; Return the current version control state of FILE. For a list of |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
137 ;; possible values, see `vc-state'. This function should do a full and |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
138 ;; reliable state computation; it is usually called immediately after |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
139 ;; C-x v v. If you want to use a faster heuristic when visiting a |
94521
2a61c5f918a5
Change 'needs-patch to 'needs-update.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94520
diff
changeset
|
140 ;; file, put that into `state-heuristic' below. Note that under most |
94729
bf91c987049c
Remove VC-Dired and backend dir-state methods.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94722
diff
changeset
|
141 ;; VCSes this won't be called at all, dir-status is used instead. |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
142 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
143 ;; - state-heuristic (file) |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
144 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
145 ;; If provided, this function is used to estimate the version control |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
146 ;; state of FILE at visiting time. It should be considerably faster |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
147 ;; than the implementation of `state'. For a list of possible values, |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
148 ;; see the doc string of `vc-state'. |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
149 ;; |
94003
2ecb2ea8d5b5
Change `dir-status' to not take (and pass) status-buffer.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
93956
diff
changeset
|
150 ;; - dir-status (dir update-function) |
91960
81890a88d53d
(dir-status): Add a brief description.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
91951
diff
changeset
|
151 ;; |
93461
3afeea9a48a3
* vc.el (vc-status-add-entry): Assume ENTRY is a list not a cons.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93459
diff
changeset
|
152 ;; Produce RESULT: a list of lists of the form (FILE VC-STATE EXTRA) |
3afeea9a48a3
* vc.el (vc-status-add-entry): Assume ENTRY is a list not a cons.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93459
diff
changeset
|
153 ;; for the files in DIR. |
3afeea9a48a3
* vc.el (vc-status-add-entry): Assume ENTRY is a list not a cons.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93459
diff
changeset
|
154 ;; EXTRA can be used for backend specific information about FILE. |
3afeea9a48a3
* vc.el (vc-status-add-entry): Assume ENTRY is a list not a cons.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93459
diff
changeset
|
155 ;; If a command needs to be run to compute this list, it should be |
3afeea9a48a3
* vc.el (vc-status-add-entry): Assume ENTRY is a list not a cons.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93459
diff
changeset
|
156 ;; run asynchronously using (current-buffer) as the buffer for the |
3afeea9a48a3
* vc.el (vc-status-add-entry): Assume ENTRY is a list not a cons.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93459
diff
changeset
|
157 ;; command. When RESULT is computed, it should be passed back by |
94003
2ecb2ea8d5b5
Change `dir-status' to not take (and pass) status-buffer.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
93956
diff
changeset
|
158 ;; doing: (funcall UPDATE-FUNCTION RESULT nil). |
94173
f062aad7dc37
(vc-dir-menu-map, vc-dir-mode-map, vc-dir-tool-bar-map):
Sam Steingold <sds@gnu.org>
parents:
94113
diff
changeset
|
159 ;; If the backend uses a process filter, hence it produces partial results, |
93670
80757ac2da77
(vc-default-status-fileinfo-extra): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93461
diff
changeset
|
160 ;; they can be passed back by doing: |
94003
2ecb2ea8d5b5
Change `dir-status' to not take (and pass) status-buffer.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
93956
diff
changeset
|
161 ;; (funcall UPDATE-FUNCTION RESULT t) |
2ecb2ea8d5b5
Change `dir-status' to not take (and pass) status-buffer.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
93956
diff
changeset
|
162 ;; and then do a (funcall UPDATE-FUNCTION RESULT nil) |
93670
80757ac2da77
(vc-default-status-fileinfo-extra): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93461
diff
changeset
|
163 ;; when all the results have been computed. |
94106
9294e3bd7d46
Rename vc-status to vc-dir and the vc-status var to vc-ewoc.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94095
diff
changeset
|
164 ;; To provide more backend specific functionality for `vc-dir' |
93670
80757ac2da77
(vc-default-status-fileinfo-extra): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93461
diff
changeset
|
165 ;; the following functions might be needed: `status-extra-headers', |
94059
c249cf124bd6
(vc-status-update): Revert an incorrect rewrite. Add some
Alexandre Julliard <julliard@winehq.org>
parents:
94003
diff
changeset
|
166 ;; `status-printer', `extra-status-menu' and `dir-status-files'. |
91960
81890a88d53d
(dir-status): Add a brief description.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
91951
diff
changeset
|
167 ;; |
94059
c249cf124bd6
(vc-status-update): Revert an incorrect rewrite. Add some
Alexandre Julliard <julliard@winehq.org>
parents:
94003
diff
changeset
|
168 ;; - dir-status-files (dir files default-state update-function) |
c249cf124bd6
(vc-status-update): Revert an incorrect rewrite. Add some
Alexandre Julliard <julliard@winehq.org>
parents:
94003
diff
changeset
|
169 ;; |
c249cf124bd6
(vc-status-update): Revert an incorrect rewrite. Add some
Alexandre Julliard <julliard@winehq.org>
parents:
94003
diff
changeset
|
170 ;; This function is identical to dir-status except that it should |
c249cf124bd6
(vc-status-update): Revert an incorrect rewrite. Add some
Alexandre Julliard <julliard@winehq.org>
parents:
94003
diff
changeset
|
171 ;; only report status for the specified FILES. Also it needs to |
c249cf124bd6
(vc-status-update): Revert an incorrect rewrite. Add some
Alexandre Julliard <julliard@winehq.org>
parents:
94003
diff
changeset
|
172 ;; report on all requested files, including up-to-date or ignored |
c249cf124bd6
(vc-status-update): Revert an incorrect rewrite. Add some
Alexandre Julliard <julliard@winehq.org>
parents:
94003
diff
changeset
|
173 ;; files. If not provided, the default is to consider that the files |
c249cf124bd6
(vc-status-update): Revert an incorrect rewrite. Add some
Alexandre Julliard <julliard@winehq.org>
parents:
94003
diff
changeset
|
174 ;; are in DEFAULT-STATE. |
c249cf124bd6
(vc-status-update): Revert an incorrect rewrite. Add some
Alexandre Julliard <julliard@winehq.org>
parents:
94003
diff
changeset
|
175 ;; |
93333
53eee5c271f4
* vc.el: Add new backend function 'status-extra-headers.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93273
diff
changeset
|
176 ;; - status-extra-headers (dir) |
93382
8e46096e0cb3
* vc.el (vc-status-menu-map, vc-status-mode-map): Bind vc-revert.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93367
diff
changeset
|
177 ;; |
94106
9294e3bd7d46
Rename vc-status to vc-dir and the vc-status var to vc-ewoc.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94095
diff
changeset
|
178 ;; Return a string that will be added to the *vc-dir* buffer header. |
93333
53eee5c271f4
* vc.el: Add new backend function 'status-extra-headers.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93273
diff
changeset
|
179 ;; |
93425
8459d55c7312
Allow backends to display backend specific information in
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93382
diff
changeset
|
180 ;; - status-printer (fileinfo) |
8459d55c7312
Allow backends to display backend specific information in
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93382
diff
changeset
|
181 ;; |
94106
9294e3bd7d46
Rename vc-status to vc-dir and the vc-status var to vc-ewoc.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94095
diff
changeset
|
182 ;; Pretty print the `vc-dir-fileinfo' FILEINFO. |
93425
8459d55c7312
Allow backends to display backend specific information in
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93382
diff
changeset
|
183 ;; If a backend needs to show more information than the default FILE |
94106
9294e3bd7d46
Rename vc-status to vc-dir and the vc-status var to vc-ewoc.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94095
diff
changeset
|
184 ;; and STATE in the vc-dir listing, it can store that extra |
9294e3bd7d46
Rename vc-status to vc-dir and the vc-status var to vc-ewoc.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94095
diff
changeset
|
185 ;; information in `vc-dir-fileinfo->extra'. This function can be |
9294e3bd7d46
Rename vc-status to vc-dir and the vc-status var to vc-ewoc.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94095
diff
changeset
|
186 ;; used to display that extra information in the *vc-dir* buffer. |
93425
8459d55c7312
Allow backends to display backend specific information in
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93382
diff
changeset
|
187 ;; |
93670
80757ac2da77
(vc-default-status-fileinfo-extra): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93461
diff
changeset
|
188 ;; - status-fileinfo-extra (file) |
80757ac2da77
(vc-default-status-fileinfo-extra): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93461
diff
changeset
|
189 ;; |
94106
9294e3bd7d46
Rename vc-status to vc-dir and the vc-status var to vc-ewoc.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94095
diff
changeset
|
190 ;; Compute `vc-dir-fileinfo->extra' for FILE. |
93670
80757ac2da77
(vc-default-status-fileinfo-extra): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93461
diff
changeset
|
191 ;; |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
192 ;; * working-revision (file) |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
193 ;; |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
194 ;; Return the working revision of FILE. This is the revision fetched |
85064
3e1b7531aa3e
Port various comments from new VC to reduce the noise in the diff.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85059
diff
changeset
|
195 ;; by the last checkout or upate, not necessarily the same thing as the |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
196 ;; head or tip revision. Should return "0" for a file added but not yet |
85064
3e1b7531aa3e
Port various comments from new VC to reduce the noise in the diff.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85059
diff
changeset
|
197 ;; committed. |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
198 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
199 ;; - latest-on-branch-p (file) |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
200 ;; |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
201 ;; Return non-nil if the working revision of FILE is the latest revision |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
202 ;; on its branch (many VCSes call this the 'tip' or 'head' revision). |
85059
062474ac8e41
Terminology sync, workfile version -> focus version.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85042
diff
changeset
|
203 ;; The default implementation always returns t, which means that |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
204 ;; working with non-current revisions is not supported by default. |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
205 ;; |
94481
ad6c174910db
Make `checkout-model' apply to filesets.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94478
diff
changeset
|
206 ;; * checkout-model (files) |
ad6c174910db
Make `checkout-model' apply to filesets.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94478
diff
changeset
|
207 ;; |
ad6c174910db
Make `checkout-model' apply to filesets.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94478
diff
changeset
|
208 ;; Indicate whether FILES need to be "checked out" before they can be |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
209 ;; edited. See `vc-checkout-model' for a list of possible values. |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
210 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
211 ;; - workfile-unchanged-p (file) |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
212 ;; |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
213 ;; Return non-nil if FILE is unchanged from the working revision. |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
214 ;; This function should do a brief comparison of FILE's contents |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
215 ;; with those of the repository master of the working revision. If |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
216 ;; the backend does not have such a brief-comparison feature, the |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
217 ;; default implementation of this function can be used, which |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
218 ;; delegates to a full vc-BACKEND-diff. (Note that vc-BACKEND-diff |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
219 ;; must not run asynchronously in this case, see variable |
85059
062474ac8e41
Terminology sync, workfile version -> focus version.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85042
diff
changeset
|
220 ;; `vc-disable-async-diff'.) |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
221 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
222 ;; - mode-line-string (file) |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
223 ;; |
82027
1350ba0c0448
* vc-cvs.el (vc-cvs-mode-line-string): Add support for tooltips
Dan Nicolaescu <dann@ics.uci.edu>
parents:
81990
diff
changeset
|
224 ;; If provided, this function should return the VC-specific mode |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
225 ;; line string for FILE. The returned string should have a |
82027
1350ba0c0448
* vc-cvs.el (vc-cvs-mode-line-string): Add support for tooltips
Dan Nicolaescu <dann@ics.uci.edu>
parents:
81990
diff
changeset
|
226 ;; `help-echo' property which is the text to be displayed as a |
1350ba0c0448
* vc-cvs.el (vc-cvs-mode-line-string): Add support for tooltips
Dan Nicolaescu <dann@ics.uci.edu>
parents:
81990
diff
changeset
|
227 ;; tooltip when the mouse hovers over the VC entry on the mode-line. |
1350ba0c0448
* vc-cvs.el (vc-cvs-mode-line-string): Add support for tooltips
Dan Nicolaescu <dann@ics.uci.edu>
parents:
81990
diff
changeset
|
228 ;; The default implementation deals well with all states that |
1350ba0c0448
* vc-cvs.el (vc-cvs-mode-line-string): Add support for tooltips
Dan Nicolaescu <dann@ics.uci.edu>
parents:
81990
diff
changeset
|
229 ;; `vc-state' can return. |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
230 ;; |
94539
fee32a11924d
Name change in preparation for ripping out vc-dired.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94538
diff
changeset
|
231 ;; - prettify-state-info (file) |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
232 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
233 ;; Translate the `vc-state' property of FILE into a string that can be |
94539
fee32a11924d
Name change in preparation for ripping out vc-dired.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94538
diff
changeset
|
234 ;; used in a human-readable buffer. The default implementation deals well |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
235 ;; with all states that `vc-state' can return. |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
236 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
237 ;; STATE-CHANGING FUNCTIONS |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
238 ;; |
85064
3e1b7531aa3e
Port various comments from new VC to reduce the noise in the diff.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85059
diff
changeset
|
239 ;; * create-repo (backend) |
81963
535f90fff765
Put the lower half (the back-end) of NewVC in place. This commit
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
81957
diff
changeset
|
240 ;; |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
241 ;; Create an empty repository in the current directory and initialize |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
242 ;; it so VC mode can add files to it. For file-oriented systems, this |
81963
535f90fff765
Put the lower half (the back-end) of NewVC in place. This commit
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
81957
diff
changeset
|
243 ;; need do no more than create a subdirectory with the right name. |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
244 ;; |
81963
535f90fff765
Put the lower half (the back-end) of NewVC in place. This commit
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
81957
diff
changeset
|
245 ;; * register (files &optional rev comment) |
535f90fff765
Put the lower half (the back-end) of NewVC in place. This commit
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
81957
diff
changeset
|
246 ;; |
535f90fff765
Put the lower half (the back-end) of NewVC in place. This commit
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
81957
diff
changeset
|
247 ;; Register FILES in this backend. Optionally, an initial revision REV |
535f90fff765
Put the lower half (the back-end) of NewVC in place. This commit
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
81957
diff
changeset
|
248 ;; and an initial description of the file, COMMENT, may be specified, |
535f90fff765
Put the lower half (the back-end) of NewVC in place. This commit
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
81957
diff
changeset
|
249 ;; but it is not guaranteed that the backend will do anything with this. |
40440
6edf1e051b27
Mention vc-*-switches in backend API documentation.
André Spiegel <spiegel@gnu.org>
parents:
40181
diff
changeset
|
250 ;; The implementation should pass the value of vc-register-switches |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
251 ;; to the backend command. (Note: in older versions of VC, this |
81963
535f90fff765
Put the lower half (the back-end) of NewVC in place. This commit
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
81957
diff
changeset
|
252 ;; command took a single file argument and not a list.) |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
253 ;; |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
254 ;; - init-revision (file) |
43450
2b50b9c69fde
Patch by Jonathan Kamens <jik@kamens.brookline.ma.us>.
André Spiegel <spiegel@gnu.org>
parents:
42548
diff
changeset
|
255 ;; |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
256 ;; The initial revision to use when registering FILE if one is not |
43450
2b50b9c69fde
Patch by Jonathan Kamens <jik@kamens.brookline.ma.us>.
André Spiegel <spiegel@gnu.org>
parents:
42548
diff
changeset
|
257 ;; specified by the user. If not provided, the variable |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
258 ;; vc-default-init-revision is used instead. |
43450
2b50b9c69fde
Patch by Jonathan Kamens <jik@kamens.brookline.ma.us>.
André Spiegel <spiegel@gnu.org>
parents:
42548
diff
changeset
|
259 ;; |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
260 ;; - responsible-p (file) |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
261 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
262 ;; Return non-nil if this backend considers itself "responsible" for |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
263 ;; FILE, which can also be a directory. This function is used to find |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
264 ;; out what backend to use for registration of new files and for things |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
265 ;; like change log generation. The default implementation always |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
266 ;; returns nil. |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
267 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
268 ;; - could-register (file) |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
269 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
270 ;; Return non-nil if FILE could be registered under this backend. The |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
271 ;; default implementation always returns t. |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
272 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
273 ;; - receive-file (file rev) |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
274 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
275 ;; Let this backend "receive" a file that is already registered under |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
276 ;; another backend. The default implementation simply calls `register' |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
277 ;; for FILE, but it can be overridden to do something more specific, |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
278 ;; e.g. keep revision numbers consistent or choose editing modes for |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
279 ;; FILE that resemble those of the other backend. |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
280 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
281 ;; - unregister (file) |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
282 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
283 ;; Unregister FILE from this backend. This is only needed if this |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
284 ;; backend may be used as a "more local" backend for temporary editing. |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
285 ;; |
81963
535f90fff765
Put the lower half (the back-end) of NewVC in place. This commit
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
81957
diff
changeset
|
286 ;; * checkin (files rev comment) |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
287 ;; |
81963
535f90fff765
Put the lower half (the back-end) of NewVC in place. This commit
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
81957
diff
changeset
|
288 ;; Commit changes in FILES to this backend. If REV is non-nil, that |
535f90fff765
Put the lower half (the back-end) of NewVC in place. This commit
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
81957
diff
changeset
|
289 ;; should become the new revision number (not all backends do |
535f90fff765
Put the lower half (the back-end) of NewVC in place. This commit
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
81957
diff
changeset
|
290 ;; anything with it). COMMENT is used as a check-in comment. The |
535f90fff765
Put the lower half (the back-end) of NewVC in place. This commit
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
81957
diff
changeset
|
291 ;; implementation should pass the value of vc-checkin-switches to |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
292 ;; the backend command. (Note: in older versions of VC, this |
81963
535f90fff765
Put the lower half (the back-end) of NewVC in place. This commit
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
81957
diff
changeset
|
293 ;; command took a single file argument and not a list.) |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
294 ;; |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
295 ;; * find-revision (file rev buffer) |
47796
cf312195338d
(vc-find-version): Use the new backend op `find-version'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47781
diff
changeset
|
296 ;; |
cf312195338d
(vc-find-version): Use the new backend op `find-version'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47781
diff
changeset
|
297 ;; Fetch revision REV of file FILE and put it into BUFFER. |
cf312195338d
(vc-find-version): Use the new backend op `find-version'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47781
diff
changeset
|
298 ;; If REV is the empty string, fetch the head of the trunk. |
cf312195338d
(vc-find-version): Use the new backend op `find-version'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47781
diff
changeset
|
299 ;; The implementation should pass the value of vc-checkout-switches |
cf312195338d
(vc-find-version): Use the new backend op `find-version'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47781
diff
changeset
|
300 ;; to the backend command. |
cf312195338d
(vc-find-version): Use the new backend op `find-version'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47781
diff
changeset
|
301 ;; |
cf312195338d
(vc-find-version): Use the new backend op `find-version'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47781
diff
changeset
|
302 ;; * checkout (file &optional editable rev) |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
303 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
304 ;; Check out revision REV of FILE into the working area. If EDITABLE |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
305 ;; is non-nil, FILE should be writable by the user and if locking is |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
306 ;; used for FILE, a lock should also be set. If REV is non-nil, that |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
307 ;; is the revision to check out (default is the working revision). |
48964
7bba5b5ff0d2
(vc-next-action-on-file): Use t argument to vc-checkout in
André Spiegel <spiegel@gnu.org>
parents:
48142
diff
changeset
|
308 ;; If REV is t, that means to check out the head of the current branch; |
7bba5b5ff0d2
(vc-next-action-on-file): Use t argument to vc-checkout in
André Spiegel <spiegel@gnu.org>
parents:
48142
diff
changeset
|
309 ;; if it is the empty string, check out the head of the trunk. |
7bba5b5ff0d2
(vc-next-action-on-file): Use t argument to vc-checkout in
André Spiegel <spiegel@gnu.org>
parents:
48142
diff
changeset
|
310 ;; The implementation should pass the value of vc-checkout-switches |
47796
cf312195338d
(vc-find-version): Use the new backend op `find-version'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47781
diff
changeset
|
311 ;; to the backend command. |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
312 ;; |
39000
60cf6aee9fd1
(vc-revert-file): Call the backend even if the FILE's
André Spiegel <spiegel@gnu.org>
parents:
38726
diff
changeset
|
313 ;; * revert (file &optional contents-done) |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
314 ;; |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
315 ;; Revert FILE back to the working revision. If optional |
39000
60cf6aee9fd1
(vc-revert-file): Call the backend even if the FILE's
André Spiegel <spiegel@gnu.org>
parents:
38726
diff
changeset
|
316 ;; arg CONTENTS-DONE is non-nil, then the contents of FILE have |
60cf6aee9fd1
(vc-revert-file): Call the backend even if the FILE's
André Spiegel <spiegel@gnu.org>
parents:
38726
diff
changeset
|
317 ;; already been reverted from a version backup, and this function |
60cf6aee9fd1
(vc-revert-file): Call the backend even if the FILE's
André Spiegel <spiegel@gnu.org>
parents:
38726
diff
changeset
|
318 ;; only needs to update the status of FILE within the backend. |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
319 ;; |
81963
535f90fff765
Put the lower half (the back-end) of NewVC in place. This commit
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
81957
diff
changeset
|
320 ;; - rollback (files) |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
321 ;; |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
322 ;; Remove the tip revision of each of FILES from the repository. If |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
323 ;; this function is not provided, trying to cancel a revision is |
81963
535f90fff765
Put the lower half (the back-end) of NewVC in place. This commit
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
81957
diff
changeset
|
324 ;; caught as an error. (Most backends don't provide it.) (Also |
535f90fff765
Put the lower half (the back-end) of NewVC in place. This commit
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
81957
diff
changeset
|
325 ;; note that older versions of this backend command were called |
535f90fff765
Put the lower half (the back-end) of NewVC in place. This commit
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
81957
diff
changeset
|
326 ;; 'cancel-version' and took a single file arg, not a list of |
535f90fff765
Put the lower half (the back-end) of NewVC in place. This commit
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
81957
diff
changeset
|
327 ;; files.) |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
328 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
329 ;; - merge (file rev1 rev2) |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
330 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
331 ;; Merge the changes between REV1 and REV2 into the current working file. |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
332 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
333 ;; - merge-news (file) |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
334 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
335 ;; Merge recent changes from the current branch into FILE. |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
336 ;; |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
337 ;; - steal-lock (file &optional revision) |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
338 ;; |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
339 ;; Steal any lock on the working revision of FILE, or on REVISION if |
85059
062474ac8e41
Terminology sync, workfile version -> focus version.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85042
diff
changeset
|
340 ;; that is provided. This function is only needed if locking is |
062474ac8e41
Terminology sync, workfile version -> focus version.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85042
diff
changeset
|
341 ;; used for files under this backend, and if files can indeed be |
062474ac8e41
Terminology sync, workfile version -> focus version.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85042
diff
changeset
|
342 ;; locked by other users. |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
343 ;; |
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:
87424
diff
changeset
|
344 ;; - modify-change-comment (files rev 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:
87424
diff
changeset
|
345 ;; |
87596
0f01cefc5aa8
Fix typo in comment. Reported by Tom Tromey <tromey@redhat.com>.
Juanma Barranquero <lekktu@gmail.com>
parents:
87590
diff
changeset
|
346 ;; Modify the change comments associated with the files at the |
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:
87424
diff
changeset
|
347 ;; given revision. This is optional, many backends do not support it. |
315124ffb889
* (vc.el, vc-sccs.el, vc-rcs.el, vc-cs.el, vc-mcvs.el): Put
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
87424
diff
changeset
|
348 ;; |
93956
bfc762f0b49c
* vc-hooks.el (vc-state): Add new state `conflict'.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93934
diff
changeset
|
349 ;; - mark-resolved (files) |
bfc762f0b49c
* vc-hooks.el (vc-state): Add new state `conflict'.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93934
diff
changeset
|
350 ;; |
bfc762f0b49c
* vc-hooks.el (vc-state): Add new state `conflict'.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93934
diff
changeset
|
351 ;; Mark conflicts as resolved. Some VC systems need to run a |
bfc762f0b49c
* vc-hooks.el (vc-state): Add new state `conflict'.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93934
diff
changeset
|
352 ;; command to mark conflicts as resolved. |
bfc762f0b49c
* vc-hooks.el (vc-state): Add new state `conflict'.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93934
diff
changeset
|
353 ;; |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
354 ;; HISTORY FUNCTIONS |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
355 ;; |
81963
535f90fff765
Put the lower half (the back-end) of NewVC in place. This commit
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
81957
diff
changeset
|
356 ;; * print-log (files &optional buffer) |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
357 ;; |
81963
535f90fff765
Put the lower half (the back-end) of NewVC in place. This commit
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
81957
diff
changeset
|
358 ;; Insert the revision log for FILES into BUFFER, or the *vc* buffer |
535f90fff765
Put the lower half (the back-end) of NewVC in place. This commit
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
81957
diff
changeset
|
359 ;; if BUFFER is nil. (Note: older versions of this function expected |
535f90fff765
Put the lower half (the back-end) of NewVC in place. This commit
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
81957
diff
changeset
|
360 ;; only a single file argument.) |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
361 ;; |
78085
a861d80cf88c
* log-view.el (log-view-font-lock-keywords): Use `eval' to consult the
Dan Nicolaescu <dann@ics.uci.edu>
parents:
75347
diff
changeset
|
362 ;; - log-view-mode () |
a861d80cf88c
* log-view.el (log-view-font-lock-keywords): Use `eval' to consult the
Dan Nicolaescu <dann@ics.uci.edu>
parents:
75347
diff
changeset
|
363 ;; |
a861d80cf88c
* log-view.el (log-view-font-lock-keywords): Use `eval' to consult the
Dan Nicolaescu <dann@ics.uci.edu>
parents:
75347
diff
changeset
|
364 ;; Mode to use for the output of print-log. This defaults to |
a861d80cf88c
* log-view.el (log-view-font-lock-keywords): Use `eval' to consult the
Dan Nicolaescu <dann@ics.uci.edu>
parents:
75347
diff
changeset
|
365 ;; `log-view-mode' and is expected to be changed (if at all) to a derived |
a861d80cf88c
* log-view.el (log-view-font-lock-keywords): Use `eval' to consult the
Dan Nicolaescu <dann@ics.uci.edu>
parents:
75347
diff
changeset
|
366 ;; mode of `log-view-mode'. |
a861d80cf88c
* log-view.el (log-view-font-lock-keywords): Use `eval' to consult the
Dan Nicolaescu <dann@ics.uci.edu>
parents:
75347
diff
changeset
|
367 ;; |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
368 ;; - show-log-entry (revision) |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
369 ;; |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
370 ;; If provided, search the log entry for REVISION in the current buffer, |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
371 ;; and make sure it is displayed in the buffer's window. The default |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
372 ;; implementation of this function works for RCS-style logs. |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
373 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
374 ;; - comment-history (file) |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
375 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
376 ;; Return a string containing all log entries that were made for FILE. |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
377 ;; This is used for transferring a file from one backend to another, |
95587
cb8fbc8ef1c5
(vc-update): Use `save-some-buffers' instead of signaling an error on modified buffers.
Sam Steingold <sds@gnu.org>
parents:
95327
diff
changeset
|
378 ;; retaining comment information. |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
379 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
380 ;; - update-changelog (files) |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
381 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
382 ;; Using recent log entries, create ChangeLog entries for FILES, or for |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
383 ;; all files at or below the default-directory if FILES is nil. The |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
384 ;; default implementation runs rcs2log, which handles RCS- and |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
385 ;; CVS-style logs. |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
386 ;; |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
387 ;; * diff (files &optional rev1 rev2 buffer) |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
388 ;; |
54463
4598019c5c85
Add new optional BUFFER argument to vc-BACKEND-print-log and
André Spiegel <spiegel@gnu.org>
parents:
54398
diff
changeset
|
389 ;; Insert the diff for FILE into BUFFER, or the *vc-diff* buffer if |
4598019c5c85
Add new optional BUFFER argument to vc-BACKEND-print-log and
André Spiegel <spiegel@gnu.org>
parents:
54398
diff
changeset
|
390 ;; BUFFER is nil. If REV1 and REV2 are non-nil, report differences |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
391 ;; from REV1 to REV2. If REV1 is nil, use the working revision (as |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
392 ;; found in the repository) as the older revision; if REV2 is nil, |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
393 ;; use the current working-copy contents as the newer revision. This |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
394 ;; function should pass the value of (vc-switches BACKEND 'diff) to |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
395 ;; the backend command. It should return a status of either 0 (no |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
396 ;; differences found), or 1 (either non-empty diff or the diff is |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
397 ;; run asynchronously). |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
398 ;; |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
399 ;; - revision-completion-table (files) |
78359
2dd5d799a16d
* vc-git.el: (vc-directory-exclusion-list, vc-handled-backends):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78236
diff
changeset
|
400 ;; |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
401 ;; Return a completion table for existing revisions of FILES. |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
402 ;; The default is to not use any completion table. |
40124
9031427edfa3
(vc-diff-internal, vc-coding-system-for-diff, vc-default-diff-tree):
André Spiegel <spiegel@gnu.org>
parents:
39427
diff
changeset
|
403 ;; |
58321
f398ebfc07e2
Update annotation-related comments.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
57906
diff
changeset
|
404 ;; - annotate-command (file buf &optional rev) |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
405 ;; |
58321
f398ebfc07e2
Update annotation-related comments.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
57906
diff
changeset
|
406 ;; If this function is provided, it should produce an annotated display |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
407 ;; of FILE in BUF, relative to revision REV. Annotation means each line |
58321
f398ebfc07e2
Update annotation-related comments.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
57906
diff
changeset
|
408 ;; of FILE displayed is prefixed with version information associated with |
f398ebfc07e2
Update annotation-related comments.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
57906
diff
changeset
|
409 ;; its addition (deleted lines leave no history) and that the text of the |
f398ebfc07e2
Update annotation-related comments.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
57906
diff
changeset
|
410 ;; file is fontified according to age. |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
411 ;; |
40170
115527dd1d27
Change scaling algorithm for vc-annotate.
André Spiegel <spiegel@gnu.org>
parents:
40164
diff
changeset
|
412 ;; - annotate-time () |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
413 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
414 ;; Only required if `annotate-command' is defined for the backend. |
40170
115527dd1d27
Change scaling algorithm for vc-annotate.
André Spiegel <spiegel@gnu.org>
parents:
40164
diff
changeset
|
415 ;; Return the time of the next line of annotation at or after point, |
115527dd1d27
Change scaling algorithm for vc-annotate.
André Spiegel <spiegel@gnu.org>
parents:
40164
diff
changeset
|
416 ;; as a floating point fractional number of days. The helper |
115527dd1d27
Change scaling algorithm for vc-annotate.
André Spiegel <spiegel@gnu.org>
parents:
40164
diff
changeset
|
417 ;; function `vc-annotate-convert-time' may be useful for converting |
115527dd1d27
Change scaling algorithm for vc-annotate.
André Spiegel <spiegel@gnu.org>
parents:
40164
diff
changeset
|
418 ;; multi-part times as returned by `current-time' and `encode-time' |
42205 | 419 ;; to this format. Return nil if no more lines of annotation appear |
40170
115527dd1d27
Change scaling algorithm for vc-annotate.
André Spiegel <spiegel@gnu.org>
parents:
40164
diff
changeset
|
420 ;; in the buffer. You can safely assume that point is placed at the |
115527dd1d27
Change scaling algorithm for vc-annotate.
André Spiegel <spiegel@gnu.org>
parents:
40164
diff
changeset
|
421 ;; beginning of each line, starting at `point-min'. The buffer that |
115527dd1d27
Change scaling algorithm for vc-annotate.
André Spiegel <spiegel@gnu.org>
parents:
40164
diff
changeset
|
422 ;; point is placed in is the Annotate output, as defined by the |
57114
deddb5e7acc3
(annotate-time): Document point handling.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
56952
diff
changeset
|
423 ;; relevant backend. This function also affects how much of the line |
deddb5e7acc3
(annotate-time): Document point handling.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
56952
diff
changeset
|
424 ;; is fontified; where it leaves point is where fontification begins. |
40170
115527dd1d27
Change scaling algorithm for vc-annotate.
André Spiegel <spiegel@gnu.org>
parents:
40164
diff
changeset
|
425 ;; |
115527dd1d27
Change scaling algorithm for vc-annotate.
André Spiegel <spiegel@gnu.org>
parents:
40164
diff
changeset
|
426 ;; - annotate-current-time () |
115527dd1d27
Change scaling algorithm for vc-annotate.
André Spiegel <spiegel@gnu.org>
parents:
40164
diff
changeset
|
427 ;; |
115527dd1d27
Change scaling algorithm for vc-annotate.
André Spiegel <spiegel@gnu.org>
parents:
40164
diff
changeset
|
428 ;; Only required if `annotate-command' is defined for the backend, |
115527dd1d27
Change scaling algorithm for vc-annotate.
André Spiegel <spiegel@gnu.org>
parents:
40164
diff
changeset
|
429 ;; AND you'd like the current time considered to be anything besides |
82232
58ac5a791dfa
* vc.el: Document new VC operation `extra-menu'.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82213
diff
changeset
|
430 ;; (vc-annotate-convert-time (current-time)) -- i.e. the current |
40170
115527dd1d27
Change scaling algorithm for vc-annotate.
André Spiegel <spiegel@gnu.org>
parents:
40164
diff
changeset
|
431 ;; time with hours, minutes, and seconds included. Probably safe to |
115527dd1d27
Change scaling algorithm for vc-annotate.
André Spiegel <spiegel@gnu.org>
parents:
40164
diff
changeset
|
432 ;; ignore. Return the current-time, in units of fractional days. |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
433 ;; |
53630
2f41b6c48585
* vc.el (vc-default-previous-version): Doc enhancement.
André Spiegel <spiegel@gnu.org>
parents:
53283
diff
changeset
|
434 ;; - annotate-extract-revision-at-line () |
2f41b6c48585
* vc.el (vc-default-previous-version): Doc enhancement.
André Spiegel <spiegel@gnu.org>
parents:
53283
diff
changeset
|
435 ;; |
2f41b6c48585
* vc.el (vc-default-previous-version): Doc enhancement.
André Spiegel <spiegel@gnu.org>
parents:
53283
diff
changeset
|
436 ;; Only required if `annotate-command' is defined for the backend. |
2f41b6c48585
* vc.el (vc-default-previous-version): Doc enhancement.
André Spiegel <spiegel@gnu.org>
parents:
53283
diff
changeset
|
437 ;; Invoked from a buffer in vc-annotate-mode, return the revision |
2f41b6c48585
* vc.el (vc-default-previous-version): Doc enhancement.
André Spiegel <spiegel@gnu.org>
parents:
53283
diff
changeset
|
438 ;; corresponding to the current line, or nil if there is no revision |
2f41b6c48585
* vc.el (vc-default-previous-version): Doc enhancement.
André Spiegel <spiegel@gnu.org>
parents:
53283
diff
changeset
|
439 ;; corresponding to the current line. |
2f41b6c48585
* vc.el (vc-default-previous-version): Doc enhancement.
André Spiegel <spiegel@gnu.org>
parents:
53283
diff
changeset
|
440 ;; |
95020
4da572dc4992
Snapshot primitives globally renamed to refer to tags, documentation updated.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
95018
diff
changeset
|
441 ;; TAG SYSTEM |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
442 ;; |
95020
4da572dc4992
Snapshot primitives globally renamed to refer to tags, documentation updated.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
95018
diff
changeset
|
443 ;; - create-tag (dir name branchp) |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
444 ;; |
95020
4da572dc4992
Snapshot primitives globally renamed to refer to tags, documentation updated.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
95018
diff
changeset
|
445 ;; Attach the tag NAME to the state of the working copy. This |
4da572dc4992
Snapshot primitives globally renamed to refer to tags, documentation updated.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
95018
diff
changeset
|
446 ;; should make sure that files are up-to-date before proceeding with |
4da572dc4992
Snapshot primitives globally renamed to refer to tags, documentation updated.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
95018
diff
changeset
|
447 ;; the action. DIR can also be a file and if BRANCHP is specified, |
4da572dc4992
Snapshot primitives globally renamed to refer to tags, documentation updated.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
95018
diff
changeset
|
448 ;; NAME should be created as a branch and DIR should be checked out |
4da572dc4992
Snapshot primitives globally renamed to refer to tags, documentation updated.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
95018
diff
changeset
|
449 ;; under this new branch. The default implementation does not |
4da572dc4992
Snapshot primitives globally renamed to refer to tags, documentation updated.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
95018
diff
changeset
|
450 ;; support branches but does a sanity check, a tree traversal and |
4da572dc4992
Snapshot primitives globally renamed to refer to tags, documentation updated.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
95018
diff
changeset
|
451 ;; assigns the tag to each file. |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
452 ;; |
95020
4da572dc4992
Snapshot primitives globally renamed to refer to tags, documentation updated.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
95018
diff
changeset
|
453 ;; - retrieve-tag (dir name update) |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
454 ;; |
95020
4da572dc4992
Snapshot primitives globally renamed to refer to tags, documentation updated.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
95018
diff
changeset
|
455 ;; Retrieve the version tagged by NAME of all registered files at or below DIR. |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
456 ;; If UPDATE is non-nil, then update buffers of any files in the |
95020
4da572dc4992
Snapshot primitives globally renamed to refer to tags, documentation updated.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
95018
diff
changeset
|
457 ;; tag that are currently visited. The default implementation |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
458 ;; does a sanity check whether there aren't any uncommitted changes at |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
459 ;; or below DIR, and then performs a tree walk, using the `checkout' |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
460 ;; function to retrieve the corresponding revisions. |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
461 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
462 ;; MISCELLANEOUS |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
463 ;; |
91994
aca0b1aa678a
Explain vc-BACKEND-root in Commentary; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
91960
diff
changeset
|
464 ;; - root (dir) |
aca0b1aa678a
Explain vc-BACKEND-root in Commentary; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
91960
diff
changeset
|
465 ;; |
aca0b1aa678a
Explain vc-BACKEND-root in Commentary; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
91960
diff
changeset
|
466 ;; Return DIR's "root" directory, that is, a parent directory of |
aca0b1aa678a
Explain vc-BACKEND-root in Commentary; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
91960
diff
changeset
|
467 ;; DIR for which the same backend as used for DIR applies. If no |
aca0b1aa678a
Explain vc-BACKEND-root in Commentary; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
91960
diff
changeset
|
468 ;; such parent exists, this function should return DIR. |
aca0b1aa678a
Explain vc-BACKEND-root in Commentary; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
91960
diff
changeset
|
469 ;; |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
470 ;; - make-version-backups-p (file) |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
471 ;; |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
472 ;; Return non-nil if unmodified repository revisions of FILE should be |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
473 ;; backed up locally. If this is done, VC can perform `diff' and |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
474 ;; `revert' operations itself, without calling the backend system. The |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
475 ;; default implementation always returns nil. |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
476 ;; |
50926
dd6110a63907
New backend functions `delete-file' and `repository-hostname'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50894
diff
changeset
|
477 ;; - repository-hostname (dirname) |
dd6110a63907
New backend functions `delete-file' and `repository-hostname'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50894
diff
changeset
|
478 ;; |
dd6110a63907
New backend functions `delete-file' and `repository-hostname'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50894
diff
changeset
|
479 ;; Return the hostname that the backend will have to contact |
dd6110a63907
New backend functions `delete-file' and `repository-hostname'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50894
diff
changeset
|
480 ;; in order to operate on a file in DIRNAME. If the return value |
56952
1e43327f7457
(vc-buffer-context, vc-restore-buffer-context): Disable obsolete code.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
55100
diff
changeset
|
481 ;; is nil, it means that the repository is local. |
50926
dd6110a63907
New backend functions `delete-file' and `repository-hostname'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50894
diff
changeset
|
482 ;; This function is used in `vc-stay-local-p' which backends can use |
dd6110a63907
New backend functions `delete-file' and `repository-hostname'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50894
diff
changeset
|
483 ;; for their convenience. |
dd6110a63907
New backend functions `delete-file' and `repository-hostname'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50894
diff
changeset
|
484 ;; |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
485 ;; - previous-revision (file rev) |
42548
1cf3624d80ac
(vc-branch-part): Return nil if there's no `.'
André Spiegel <spiegel@gnu.org>
parents:
42205
diff
changeset
|
486 ;; |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
487 ;; Return the revision number that precedes REV for FILE, or nil if no such |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
488 ;; revision exists. |
53630
2f41b6c48585
* vc.el (vc-default-previous-version): Doc enhancement.
André Spiegel <spiegel@gnu.org>
parents:
53283
diff
changeset
|
489 ;; |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
490 ;; - next-revision (file rev) |
53630
2f41b6c48585
* vc.el (vc-default-previous-version): Doc enhancement.
André Spiegel <spiegel@gnu.org>
parents:
53283
diff
changeset
|
491 ;; |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
492 ;; Return the revision number that follows REV for FILE, or nil if no such |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
493 ;; revision exists. |
42548
1cf3624d80ac
(vc-branch-part): Return nil if there's no `.'
André Spiegel <spiegel@gnu.org>
parents:
42205
diff
changeset
|
494 ;; |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
495 ;; - check-headers () |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
496 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
497 ;; Return non-nil if the current buffer contains any version headers. |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
498 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
499 ;; - clear-headers () |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
500 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
501 ;; In the current buffer, reset all version headers to their unexpanded |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
502 ;; form. This function should be provided if the state-querying code |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
503 ;; for this backend uses the version headers to determine the state of |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
504 ;; a file. This function will then be called whenever VC changes the |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
505 ;; version control state in such a way that the headers would give |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
506 ;; wrong information. |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
507 ;; |
50926
dd6110a63907
New backend functions `delete-file' and `repository-hostname'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50894
diff
changeset
|
508 ;; - delete-file (file) |
dd6110a63907
New backend functions `delete-file' and `repository-hostname'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50894
diff
changeset
|
509 ;; |
dd6110a63907
New backend functions `delete-file' and `repository-hostname'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50894
diff
changeset
|
510 ;; Delete FILE and mark it as deleted in the repository. If this |
dd6110a63907
New backend functions `delete-file' and `repository-hostname'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50894
diff
changeset
|
511 ;; function is not provided, the command `vc-delete-file' will |
dd6110a63907
New backend functions `delete-file' and `repository-hostname'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50894
diff
changeset
|
512 ;; signal an error. |
dd6110a63907
New backend functions `delete-file' and `repository-hostname'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50894
diff
changeset
|
513 ;; |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
514 ;; - rename-file (old new) |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
515 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
516 ;; Rename file OLD to NEW, both in the working area and in the |
50926
dd6110a63907
New backend functions `delete-file' and `repository-hostname'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50894
diff
changeset
|
517 ;; repository. If this function is not provided, the renaming |
dd6110a63907
New backend functions `delete-file' and `repository-hostname'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50894
diff
changeset
|
518 ;; will be done by (vc-delete-file old) and (vc-register new). |
51627
1329f6a6c949
(vc-rename-file): Fix typo.
Luc Teirlinck <teirllm@auburn.edu>
parents:
51369
diff
changeset
|
519 ;; |
54398
2decd50569f3
Document new find-file-hook operation.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
53874
diff
changeset
|
520 ;; - find-file-hook () |
2decd50569f3
Document new find-file-hook operation.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
53874
diff
changeset
|
521 ;; |
54530
b217df9a35e0
Document new backend operation `find-file-not-found-hook'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
54463
diff
changeset
|
522 ;; Operation called in current buffer when opening a file. This can |
54398
2decd50569f3
Document new find-file-hook operation.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
53874
diff
changeset
|
523 ;; be used by the backend to setup some local variables it might need. |
82232
58ac5a791dfa
* vc.el: Document new VC operation `extra-menu'.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
82213
diff
changeset
|
524 ;; |
54530
b217df9a35e0
Document new backend operation `find-file-not-found-hook'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
54463
diff
changeset
|
525 ;; - find-file-not-found-hook () |
b217df9a35e0
Document new backend operation `find-file-not-found-hook'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
54463
diff
changeset
|
526 ;; |
b217df9a35e0
Document new backend operation `find-file-not-found-hook'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
54463
diff
changeset
|
527 ;; Operation called in current buffer when opening a non-existing file. |
b217df9a35e0
Document new backend operation `find-file-not-found-hook'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
54463
diff
changeset
|
528 ;; By default, this asks the user if she wants to check out the file. |
78822
1926a08e8926
* vc-arch.el (vc-arch-extra-menu-map): New var and fun.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78599
diff
changeset
|
529 ;; |
1926a08e8926
* vc-arch.el (vc-arch-extra-menu-map): New var and fun.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78599
diff
changeset
|
530 ;; - extra-menu () |
1926a08e8926
* vc-arch.el (vc-arch-extra-menu-map): New var and fun.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78599
diff
changeset
|
531 ;; |
1926a08e8926
* vc-arch.el (vc-arch-extra-menu-map): New var and fun.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78599
diff
changeset
|
532 ;; Return a menu keymap, the items in the keymap will appear at the |
1926a08e8926
* vc-arch.el (vc-arch-extra-menu-map): New var and fun.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78599
diff
changeset
|
533 ;; end of the Version Control menu. The goal is to allow backends |
1926a08e8926
* vc-arch.el (vc-arch-extra-menu-map): New var and fun.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78599
diff
changeset
|
534 ;; to specify extra menu items that appear in the VC menu. This way |
1926a08e8926
* vc-arch.el (vc-arch-extra-menu-map): New var and fun.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78599
diff
changeset
|
535 ;; you can provide menu entries for functionality that is specific |
1926a08e8926
* vc-arch.el (vc-arch-extra-menu-map): New var and fun.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78599
diff
changeset
|
536 ;; to your backend and which does not map to any of the VC generic |
1926a08e8926
* vc-arch.el (vc-arch-extra-menu-map): New var and fun.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78599
diff
changeset
|
537 ;; concepts. |
91951
d42fe75822fe
* vc.el (vc-status-menu, vc-status-menu-map-filter): New functions.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
91944
diff
changeset
|
538 ;; |
d42fe75822fe
* vc.el (vc-status-menu, vc-status-menu-map-filter): New functions.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
91944
diff
changeset
|
539 ;; - extra-status-menu () |
d42fe75822fe
* vc.el (vc-status-menu, vc-status-menu-map-filter): New functions.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
91944
diff
changeset
|
540 ;; |
92122
74bf6df13b6c
* vc.el (vc-find-revision): Make vc-parent-buffer local before
Dan Nicolaescu <dann@ics.uci.edu>
parents:
92093
diff
changeset
|
541 ;; Return a menu keymap, the items in the keymap will appear at the |
74bf6df13b6c
* vc.el (vc-find-revision): Make vc-parent-buffer local before
Dan Nicolaescu <dann@ics.uci.edu>
parents:
92093
diff
changeset
|
542 ;; end of the VC Status menu. The goal is to allow backends to |
74bf6df13b6c
* vc.el (vc-find-revision): Make vc-parent-buffer local before
Dan Nicolaescu <dann@ics.uci.edu>
parents:
92093
diff
changeset
|
543 ;; specify extra menu items that appear in the VC Status menu. This |
74bf6df13b6c
* vc.el (vc-find-revision): Make vc-parent-buffer local before
Dan Nicolaescu <dann@ics.uci.edu>
parents:
92093
diff
changeset
|
544 ;; makes it possible to provide menu entries for functionality that |
74bf6df13b6c
* vc.el (vc-find-revision): Make vc-parent-buffer local before
Dan Nicolaescu <dann@ics.uci.edu>
parents:
92093
diff
changeset
|
545 ;; is specific to a backend and which does not map to any of the VC |
74bf6df13b6c
* vc.el (vc-find-revision): Make vc-parent-buffer local before
Dan Nicolaescu <dann@ics.uci.edu>
parents:
92093
diff
changeset
|
546 ;; generic concepts. |
904 | 547 |
87743
c2a952d12e21
* smerge-mode.el (smerge-auto): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87739
diff
changeset
|
548 ;;; Todo: |
c2a952d12e21
* smerge-mode.el (smerge-auto): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87739
diff
changeset
|
549 |
96046
422d57d537d7
(vc-deduce-fileset): Add arg `only-files'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95966
diff
changeset
|
550 ;; - Get rid of the "master file" terminology. |
422d57d537d7
(vc-deduce-fileset): Add arg `only-files'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95966
diff
changeset
|
551 |
95269
1e9eb6106f5a
(vc-delete-file): Don't try to resynch the buffer.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95079
diff
changeset
|
552 ;; - Add key-binding for vc-delete-file. |
1e9eb6106f5a
(vc-delete-file): Don't try to resynch the buffer.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95079
diff
changeset
|
553 |
94861
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
554 ;;;; New Primitives: |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
555 ;; |
93362 | 556 ;; - deal with push/pull operations. |
557 ;; | |
94861
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
558 ;; - add a mechanism for editing the underlying VCS's list of files |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
559 ;; to be ignored, when that's possible. |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
560 ;; |
94883
b615f9b9d57e
Re-add Todo item about merging.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94882
diff
changeset
|
561 ;;;; Primitives that need changing: |
b615f9b9d57e
Re-add Todo item about merging.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94882
diff
changeset
|
562 ;; |
b615f9b9d57e
Re-add Todo item about merging.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94882
diff
changeset
|
563 ;; - vc-update/vc-merge should deal with VC systems that don't |
b615f9b9d57e
Re-add Todo item about merging.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94882
diff
changeset
|
564 ;; update/merge on a file basis, but on a whole repository basis. |
b615f9b9d57e
Re-add Todo item about merging.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94882
diff
changeset
|
565 ;; vc-update and vc-merge assume the arguments are always files, |
b615f9b9d57e
Re-add Todo item about merging.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94882
diff
changeset
|
566 ;; they don't deal with directories. Make sure the *vc-dir* buffer |
95587
cb8fbc8ef1c5
(vc-update): Use `save-some-buffers' instead of signaling an error on modified buffers.
Sam Steingold <sds@gnu.org>
parents:
95327
diff
changeset
|
567 ;; is updated after these operations. |
94883
b615f9b9d57e
Re-add Todo item about merging.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94882
diff
changeset
|
568 ;; At least bzr, git and hg should benefit from this. |
b615f9b9d57e
Re-add Todo item about merging.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94882
diff
changeset
|
569 ;; |
94861
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
570 ;;;; Improved branch and tag handling: |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
571 ;; |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
572 ;; - add a generic mechanism for remembering the current branch names, |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
573 ;; display the branch name in the mode-line. Replace |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
574 ;; vc-cvs-sticky-tag with that. |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
575 ;; |
95020
4da572dc4992
Snapshot primitives globally renamed to refer to tags, documentation updated.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
95018
diff
changeset
|
576 ;; - vc-create-tag and vc-retrieve-tag should update the |
94861
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
577 ;; buffers that might be visiting the affected files. |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
578 ;; |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
579 ;;;; Default Behavior: |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
580 ;; |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
581 ;; - do not default to RCS anymore when the current directory is not |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
582 ;; controlled by any VCS and the user does C-x v v |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
583 ;; |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
584 ;; - vc-responsible-backend should not return RCS if no backend |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
585 ;; declares itself responsible. |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
586 ;; |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
587 ;;;; Internal cleanups: |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
588 ;; |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
589 ;; - backends that care about vc-stay-local should try to take it into |
95269
1e9eb6106f5a
(vc-delete-file): Don't try to resynch the buffer.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95079
diff
changeset
|
590 ;; account for vc-dir. Is this likely to be useful??? YES! |
94861
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
591 ;; |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
592 ;; - vc-expand-dirs should take a backend parameter and only look for |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
593 ;; files managed by that backend. |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
594 ;; |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
595 ;; - Another important thing: merge all the status-like backend operations. |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
596 ;; We should remove dir-status, state, and dir-status-files, and |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
597 ;; replace them with just `status' which takes a fileset and a continuation |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
598 ;; (like dir-status) and returns a buffer in which the process(es) are run |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
599 ;; (or nil if it worked synchronously). Hopefully we can define the old |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
600 ;; 4 operations in term of this one. |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
601 ;; |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
602 ;;;; Other |
93362 | 603 ;; |
93956
bfc762f0b49c
* vc-hooks.el (vc-state): Add new state `conflict'.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93934
diff
changeset
|
604 ;; - when a file is in `conflict' state, turn on smerge-mode. |
bfc762f0b49c
* vc-hooks.el (vc-state): Add new state `conflict'.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93934
diff
changeset
|
605 ;; |
bfc762f0b49c
* vc-hooks.el (vc-state): Add new state `conflict'.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93934
diff
changeset
|
606 ;; - figure out what to do with conflicts that are not caused by the |
94569
c6ccf57e7e6e
Added to-do items.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94563
diff
changeset
|
607 ;; file contents, but by metadata or other causes. Example: File A |
c6ccf57e7e6e
Added to-do items.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94563
diff
changeset
|
608 ;; gets renamed to B in one branch and to C in another and you merge |
c6ccf57e7e6e
Added to-do items.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94563
diff
changeset
|
609 ;; the two branches. Or you locally add file FOO and then pull a |
c6ccf57e7e6e
Added to-do items.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94563
diff
changeset
|
610 ;; change that also adds a new file FOO, ... |
87743
c2a952d12e21
* smerge-mode.el (smerge-auto): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87739
diff
changeset
|
611 ;; |
93362 | 612 ;; - make it easier to write logs. Maybe C-x 4 a should add to the log |
613 ;; buffer, if one is present, instead of adding to the ChangeLog. | |
87743
c2a952d12e21
* smerge-mode.el (smerge-auto): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87739
diff
changeset
|
614 ;; |
94488
d3100c0eddb7
(vc-deduce-fileset): Add new parameter.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94481
diff
changeset
|
615 ;; - When vc-next-action calls vc-checkin it could pre-fill the |
d3100c0eddb7
(vc-deduce-fileset): Add new parameter.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94481
diff
changeset
|
616 ;; *VC-log* buffer with some obvious items: the list of files that |
d3100c0eddb7
(vc-deduce-fileset): Add new parameter.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94481
diff
changeset
|
617 ;; were added, the list of files that were removed. If the diff is |
d3100c0eddb7
(vc-deduce-fileset): Add new parameter.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94481
diff
changeset
|
618 ;; available, maybe it could even call something like |
d3100c0eddb7
(vc-deduce-fileset): Add new parameter.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94481
diff
changeset
|
619 ;; `diff-add-change-log-entries-other-window' to create a detailed |
d3100c0eddb7
(vc-deduce-fileset): Add new parameter.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94481
diff
changeset
|
620 ;; skeleton for the log... |
d3100c0eddb7
(vc-deduce-fileset): Add new parameter.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94481
diff
changeset
|
621 ;; |
95327 | 622 ;; - The *vc-dir* buffer needs to be updated properly after VC |
623 ;; operations on directories that change the file VC state. | |
624 ;; | |
94106
9294e3bd7d46
Rename vc-status to vc-dir and the vc-status var to vc-ewoc.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94095
diff
changeset
|
625 ;; - most vc-dir backends need more work. They might need to |
93956
bfc762f0b49c
* vc-hooks.el (vc-state): Add new state `conflict'.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93934
diff
changeset
|
626 ;; provide custom headers, use the `extra' field and deal with all |
bfc762f0b49c
* vc-hooks.el (vc-state): Add new state `conflict'.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93934
diff
changeset
|
627 ;; possible VC states. |
bfc762f0b49c
* vc-hooks.el (vc-state): Add new state `conflict'.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93934
diff
changeset
|
628 ;; |
94836 | 629 ;; - add a function that calls vc-dir to `find-directory-functions'. |
94106
9294e3bd7d46
Rename vc-status to vc-dir and the vc-status var to vc-ewoc.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94095
diff
changeset
|
630 ;; |
92091
f6aa0a65fa82
(vc-exec-after): Move setting mode-line-process in the
Dan Nicolaescu <dann@ics.uci.edu>
parents:
92038
diff
changeset
|
631 ;; - vc-diff, vc-annotate, etc. need to deal better with unregistered |
f6aa0a65fa82
(vc-exec-after): Move setting mode-line-process in the
Dan Nicolaescu <dann@ics.uci.edu>
parents:
92038
diff
changeset
|
632 ;; files. Now that unregistered and ignored files are shown in |
94729
bf91c987049c
Remove VC-Dired and backend dir-state methods.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94722
diff
changeset
|
633 ;; vc-dir, it is possible that these commands are called |
92091
f6aa0a65fa82
(vc-exec-after): Move setting mode-line-process in the
Dan Nicolaescu <dann@ics.uci.edu>
parents:
92038
diff
changeset
|
634 ;; for unregistered/ignored files. |
f6aa0a65fa82
(vc-exec-after): Move setting mode-line-process in the
Dan Nicolaescu <dann@ics.uci.edu>
parents:
92038
diff
changeset
|
635 ;; |
96215 | 636 ;; - vc-next-action needs work in order to work with multiple |
637 ;; backends: `vc-state' returns the state for the default backend, | |
638 ;; not for the backend in the current *vc-dir* buffer. | |
94518
7bd70b5b8bda
Add items to TODO list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94510
diff
changeset
|
639 ;; |
96203 | 640 ;; - vc-dir-kill-dir-status-process should not be specific to dir-status, |
641 ;; it should work for other async commands done through vc-do-command | |
642 ;; as well, | |
643 ;; | |
644 ;; - vc-dir toolbar needs more icons. | |
645 ;; | |
904 | 646 ;;; Code: |
647 | |
648 (require 'vc-hooks) | |
94571
61cca370b8f5
vc-dispatcher layer separation.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94570
diff
changeset
|
649 (require 'vc-dispatcher) |
92523
5da8fdae3248
(vc-status-tool-bar-map, vc-status-toggle-mark-file)
Jan Djärv <jan.h.d@swipnet.se>
parents:
92347
diff
changeset
|
650 |
94573
ce09c5078ae7
Partially undo the dispatcher split, it needs to happen more gradually
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94572
diff
changeset
|
651 (eval-when-compile |
94582
8393f040d26d
Move VC-Dired code from vc.el to vc-dispatcher.el.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94579
diff
changeset
|
652 (require 'cl)) |
94573
ce09c5078ae7
Partially undo the dispatcher split, it needs to happen more gradually
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94572
diff
changeset
|
653 |
94207
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
654 (unless (assoc 'vc-parent-buffer minor-mode-alist) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
655 (setq minor-mode-alist |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
656 (cons '(vc-parent-buffer vc-parent-buffer-name) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
657 minor-mode-alist))) |
904 | 658 |
659 ;; General customization | |
660 | |
17672
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
661 (defgroup vc nil |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
662 "Version-control system in Emacs." |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
663 :group 'tools) |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
664 |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
665 (defcustom vc-initial-comment nil |
67755
0cdb122ad4db
Remove unnecessary leading * in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67578
diff
changeset
|
666 "If non-nil, prompt for initial comment when a file is registered." |
17672
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
667 :type 'boolean |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
668 :group 'vc) |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
669 |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
670 (defcustom vc-default-init-revision "1.1" |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
671 "A string used as the default revision number when a new file is registered. |
43450
2b50b9c69fde
Patch by Jonathan Kamens <jik@kamens.brookline.ma.us>.
André Spiegel <spiegel@gnu.org>
parents:
42548
diff
changeset
|
672 This can be overridden by giving a prefix argument to \\[vc-register]. This |
2b50b9c69fde
Patch by Jonathan Kamens <jik@kamens.brookline.ma.us>.
André Spiegel <spiegel@gnu.org>
parents:
42548
diff
changeset
|
673 can also be overridden by a particular VC backend." |
20988
9a6179e6eff6
(vc-default-init-version): New variable.
André Spiegel <spiegel@gnu.org>
parents:
20977
diff
changeset
|
674 :type 'string |
21669
9861518505cb
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21560
diff
changeset
|
675 :group 'vc |
9861518505cb
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21560
diff
changeset
|
676 :version "20.3") |
20988
9a6179e6eff6
(vc-default-init-version): New variable.
André Spiegel <spiegel@gnu.org>
parents:
20977
diff
changeset
|
677 |
17672
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
678 (defcustom vc-checkin-switches nil |
67755
0cdb122ad4db
Remove unnecessary leading * in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67578
diff
changeset
|
679 "A string or list of strings specifying extra switches for checkin. |
17672
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
680 These are passed to the checkin program by \\[vc-checkin]." |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
681 :type '(choice (const :tag "None" nil) |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
682 (string :tag "Argument String") |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
683 (repeat :tag "Argument List" |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
684 :value ("") |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
685 string)) |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
686 :group 'vc) |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
687 |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
688 (defcustom vc-checkout-switches nil |
67755
0cdb122ad4db
Remove unnecessary leading * in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67578
diff
changeset
|
689 "A string or list of strings specifying extra switches for checkout. |
17672
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
690 These are passed to the checkout program by \\[vc-checkout]." |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
691 :type '(choice (const :tag "None" nil) |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
692 (string :tag "Argument String") |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
693 (repeat :tag "Argument List" |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
694 :value ("") |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
695 string)) |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
696 :group 'vc) |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
697 |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
698 (defcustom vc-register-switches nil |
67755
0cdb122ad4db
Remove unnecessary leading * in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67578
diff
changeset
|
699 "A string or list of strings; extra switches for registering a file. |
17672
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
700 These are passed to the checkin program by \\[vc-register]." |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
701 :type '(choice (const :tag "None" nil) |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
702 (string :tag "Argument String") |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
703 (repeat :tag "Argument List" |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
704 :value ("") |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
705 string)) |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
706 :group 'vc) |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
707 |
35820
3cfa6e077b83
(vc-diff-switches): New user option.
André Spiegel <spiegel@gnu.org>
parents:
35199
diff
changeset
|
708 (defcustom vc-diff-switches nil |
67755
0cdb122ad4db
Remove unnecessary leading * in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67578
diff
changeset
|
709 "A string or list of strings specifying switches for diff under VC. |
40181
55d912b5d0cc
(vc-diff-switches): Doc rewritten.
André Spiegel <spiegel@gnu.org>
parents:
40170
diff
changeset
|
710 When running diff under a given BACKEND, VC concatenates the values of |
55d912b5d0cc
(vc-diff-switches): Doc rewritten.
André Spiegel <spiegel@gnu.org>
parents:
40170
diff
changeset
|
711 `diff-switches', `vc-diff-switches', and `vc-BACKEND-diff-switches' to |
55d912b5d0cc
(vc-diff-switches): Doc rewritten.
André Spiegel <spiegel@gnu.org>
parents:
40170
diff
changeset
|
712 get the switches for that command. Thus, `vc-diff-switches' should |
55d912b5d0cc
(vc-diff-switches): Doc rewritten.
André Spiegel <spiegel@gnu.org>
parents:
40170
diff
changeset
|
713 contain switches that are specific to version control, but not |
55d912b5d0cc
(vc-diff-switches): Doc rewritten.
André Spiegel <spiegel@gnu.org>
parents:
40170
diff
changeset
|
714 specific to any particular backend." |
35820
3cfa6e077b83
(vc-diff-switches): New user option.
André Spiegel <spiegel@gnu.org>
parents:
35199
diff
changeset
|
715 :type '(choice (const :tag "None" nil) |
3cfa6e077b83
(vc-diff-switches): New user option.
André Spiegel <spiegel@gnu.org>
parents:
35199
diff
changeset
|
716 (string :tag "Argument String") |
3cfa6e077b83
(vc-diff-switches): New user option.
André Spiegel <spiegel@gnu.org>
parents:
35199
diff
changeset
|
717 (repeat :tag "Argument List" |
3cfa6e077b83
(vc-diff-switches): New user option.
André Spiegel <spiegel@gnu.org>
parents:
35199
diff
changeset
|
718 :value ("") |
3cfa6e077b83
(vc-diff-switches): New user option.
André Spiegel <spiegel@gnu.org>
parents:
35199
diff
changeset
|
719 string)) |
3cfa6e077b83
(vc-diff-switches): New user option.
André Spiegel <spiegel@gnu.org>
parents:
35199
diff
changeset
|
720 :group 'vc |
3cfa6e077b83
(vc-diff-switches): New user option.
André Spiegel <spiegel@gnu.org>
parents:
35199
diff
changeset
|
721 :version "21.1") |
3cfa6e077b83
(vc-diff-switches): New user option.
André Spiegel <spiegel@gnu.org>
parents:
35199
diff
changeset
|
722 |
71446
b0324f716b87
(vc-diff-knows-L): New variable.
André Spiegel <spiegel@gnu.org>
parents:
71228
diff
changeset
|
723 (defcustom vc-diff-knows-L nil |
b0324f716b87
(vc-diff-knows-L): New variable.
André Spiegel <spiegel@gnu.org>
parents:
71228
diff
changeset
|
724 "*Indicates whether diff understands the -L option. |
b0324f716b87
(vc-diff-knows-L): New variable.
André Spiegel <spiegel@gnu.org>
parents:
71228
diff
changeset
|
725 The value is either `yes', `no', or nil. If it is nil, VC tries |
b0324f716b87
(vc-diff-knows-L): New variable.
André Spiegel <spiegel@gnu.org>
parents:
71228
diff
changeset
|
726 to use -L and sets this variable to remember whether it worked." |
b0324f716b87
(vc-diff-knows-L): New variable.
André Spiegel <spiegel@gnu.org>
parents:
71228
diff
changeset
|
727 :type '(choice (const :tag "Work out" nil) (const yes) (const no)) |
b0324f716b87
(vc-diff-knows-L): New variable.
André Spiegel <spiegel@gnu.org>
parents:
71228
diff
changeset
|
728 :group 'vc) |
b0324f716b87
(vc-diff-knows-L): New variable.
André Spiegel <spiegel@gnu.org>
parents:
71228
diff
changeset
|
729 |
59442
37d47d9bf8b1
(vc-allow-async-revert): New user option.
André Spiegel <spiegel@gnu.org>
parents:
59011
diff
changeset
|
730 (defcustom vc-allow-async-revert nil |
81957
8f9991bf3b41
Generalize stay-local-p to operatre on lists of files.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
81923
diff
changeset
|
731 "Specifies whether the diff during \\[vc-revert] may be asynchronous. |
59442
37d47d9bf8b1
(vc-allow-async-revert): New user option.
André Spiegel <spiegel@gnu.org>
parents:
59011
diff
changeset
|
732 Enabling this option means that you can confirm a revert operation even |
37d47d9bf8b1
(vc-allow-async-revert): New user option.
André Spiegel <spiegel@gnu.org>
parents:
59011
diff
changeset
|
733 if the local changes in the file have not been found and displayed yet." |
37d47d9bf8b1
(vc-allow-async-revert): New user option.
André Spiegel <spiegel@gnu.org>
parents:
59011
diff
changeset
|
734 :type '(choice (const :tag "No" nil) |
37d47d9bf8b1
(vc-allow-async-revert): New user option.
André Spiegel <spiegel@gnu.org>
parents:
59011
diff
changeset
|
735 (const :tag "Yes" t)) |
37d47d9bf8b1
(vc-allow-async-revert): New user option.
André Spiegel <spiegel@gnu.org>
parents:
59011
diff
changeset
|
736 :group 'vc |
59996
aac0a33f5772
Change release version from 21.4 to 22.1 throughout.
Kim F. Storm <storm@cua.dk>
parents:
59442
diff
changeset
|
737 :version "22.1") |
59442
37d47d9bf8b1
(vc-allow-async-revert): New user option.
André Spiegel <spiegel@gnu.org>
parents:
59011
diff
changeset
|
738 |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
739 ;;;###autoload |
38606
32e167f31eb6
(vc-checkout-hook): New hook.
André Spiegel <spiegel@gnu.org>
parents:
38595
diff
changeset
|
740 (defcustom vc-checkout-hook nil |
67755
0cdb122ad4db
Remove unnecessary leading * in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67578
diff
changeset
|
741 "Normal hook (list of functions) run after checking out a file. |
38606
32e167f31eb6
(vc-checkout-hook): New hook.
André Spiegel <spiegel@gnu.org>
parents:
38595
diff
changeset
|
742 See `run-hooks'." |
32e167f31eb6
(vc-checkout-hook): New hook.
André Spiegel <spiegel@gnu.org>
parents:
38595
diff
changeset
|
743 :type 'hook |
32e167f31eb6
(vc-checkout-hook): New hook.
André Spiegel <spiegel@gnu.org>
parents:
38595
diff
changeset
|
744 :group 'vc |
32e167f31eb6
(vc-checkout-hook): New hook.
André Spiegel <spiegel@gnu.org>
parents:
38595
diff
changeset
|
745 :version "21.1") |
32e167f31eb6
(vc-checkout-hook): New hook.
André Spiegel <spiegel@gnu.org>
parents:
38595
diff
changeset
|
746 |
32e167f31eb6
(vc-checkout-hook): New hook.
André Spiegel <spiegel@gnu.org>
parents:
38595
diff
changeset
|
747 ;;;###autoload |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
748 (defcustom vc-checkin-hook nil |
85064
3e1b7531aa3e
Port various comments from new VC to reduce the noise in the diff.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85059
diff
changeset
|
749 "Normal hook (list of functions) run after commit or file checkin. |
51369
91b1fb194872
(vc-directory-exclusion-list): Add MCVS and .svn.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
51245
diff
changeset
|
750 See also `log-edit-done-hook'." |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
751 :type 'hook |
51369
91b1fb194872
(vc-directory-exclusion-list): Add MCVS and .svn.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
51245
diff
changeset
|
752 :options '(log-edit-comment-to-change-log) |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
753 :group 'vc) |
2705
b4587e7ff4e5
(diff-switches): Define var here as well as in diff.el.
Richard M. Stallman <rms@gnu.org>
parents:
2692
diff
changeset
|
754 |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
755 ;;;###autoload |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
756 (defcustom vc-before-checkin-hook nil |
85064
3e1b7531aa3e
Port various comments from new VC to reduce the noise in the diff.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85059
diff
changeset
|
757 "Normal hook (list of functions) run before a commit or a file checkin. |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
758 See `run-hooks'." |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
759 :type 'hook |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
760 :group 'vc) |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
761 |
904 | 762 ;; Header-insertion hair |
763 | |
17672
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
764 (defcustom vc-static-header-alist |
67755
0cdb122ad4db
Remove unnecessary leading * in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67578
diff
changeset
|
765 '(("\\.c\\'" . |
904 | 766 "\n#ifndef lint\nstatic char vcid[] = \"\%s\";\n#endif /* lint */\n")) |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
767 "*Associate static header string templates with file types. |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
768 A \%s in the template is replaced with the first string associated with |
31404
f2ab9420390f
2000-09-05 Stefan Monnier <monnier@cs.yale.edu>
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
31387
diff
changeset
|
769 the file's version control type in `vc-header-alist'." |
17672
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
770 :type '(repeat (cons :format "%v" |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
771 (regexp :tag "File Type") |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
772 (string :tag "Header String"))) |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
773 :group 'vc) |
2226
b2216b3b8f57
(vc-header-strings) Name changed to vc-header-alist, to match the
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2219
diff
changeset
|
774 |
17672
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
775 (defcustom vc-comment-alist |
904 | 776 '((nroff-mode ".\\\"" "")) |
41071 | 777 "*Special comment delimiters for generating VC headers. |
31404
f2ab9420390f
2000-09-05 Stefan Monnier <monnier@cs.yale.edu>
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
31387
diff
changeset
|
778 Add an entry in this list if you need to override the normal `comment-start' |
f2ab9420390f
2000-09-05 Stefan Monnier <monnier@cs.yale.edu>
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
31387
diff
changeset
|
779 and `comment-end' variables. This will only be necessary if the mode language |
17672
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
780 is sensitive to blank lines." |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
781 :type '(repeat (list :format "%v" |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
782 (symbol :tag "Mode") |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
783 (string :tag "Comment Start") |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
784 (string :tag "Comment End"))) |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
785 :group 'vc) |
904 | 786 |
17672
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
787 (defcustom vc-checkout-carefully (= (user-uid) 0) |
49619
b48f8839a782
(vc-annotate-display, vc-checkout-carefully): Add obsolescence declaration and
Juanma Barranquero <lekktu@gmail.com>
parents:
49597
diff
changeset
|
788 "*Non-nil means be extra-careful in checkout. |
5201
b27badfb4040
(vc-buffer-sync): Signal error if user says no.
Richard M. Stallman <rms@gnu.org>
parents:
5015
diff
changeset
|
789 Verify that the file really is not locked |
17672
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
790 and that its contents match what the master file says." |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
791 :type 'boolean |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
792 :group 'vc) |
49619
b48f8839a782
(vc-annotate-display, vc-checkout-carefully): Add obsolescence declaration and
Juanma Barranquero <lekktu@gmail.com>
parents:
49597
diff
changeset
|
793 (make-obsolete-variable 'vc-checkout-carefully |
b48f8839a782
(vc-annotate-display, vc-checkout-carefully): Add obsolescence declaration and
Juanma Barranquero <lekktu@gmail.com>
parents:
49597
diff
changeset
|
794 "the corresponding checks are always done now." |
b48f8839a782
(vc-annotate-display, vc-checkout-carefully): Add obsolescence declaration and
Juanma Barranquero <lekktu@gmail.com>
parents:
49597
diff
changeset
|
795 "21.1") |
5201
b27badfb4040
(vc-buffer-sync): Signal error if user says no.
Richard M. Stallman <rms@gnu.org>
parents:
5015
diff
changeset
|
796 |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
797 |
94576
7de38dedf0a6
Move the command-closure machinery to vc-dispatcher.el.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94573
diff
changeset
|
798 ;; Variables users don't need to see |
904 | 799 |
59442
37d47d9bf8b1
(vc-allow-async-revert): New user option.
André Spiegel <spiegel@gnu.org>
parents:
59011
diff
changeset
|
800 (defvar vc-disable-async-diff nil |
37d47d9bf8b1
(vc-allow-async-revert): New user option.
André Spiegel <spiegel@gnu.org>
parents:
59011
diff
changeset
|
801 "VC sets this to t locally to disable some async diff operations. |
37d47d9bf8b1
(vc-allow-async-revert): New user option.
André Spiegel <spiegel@gnu.org>
parents:
59011
diff
changeset
|
802 Backends that offer asynchronous diffs should respect this variable |
37d47d9bf8b1
(vc-allow-async-revert): New user option.
André Spiegel <spiegel@gnu.org>
parents:
59011
diff
changeset
|
803 in their implementation of vc-BACKEND-diff.") |
37d47d9bf8b1
(vc-allow-async-revert): New user option.
André Spiegel <spiegel@gnu.org>
parents:
59011
diff
changeset
|
804 |
904 | 805 ;; File property caching |
806 | |
2580
a66f7ed76416
(vc-diff): Get proper error message when you run this with no prefix
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2558
diff
changeset
|
807 (defun vc-clear-context () |
51064
f2383fb5260e
(vc-log-mode-map, vc-maximum-comment-ring-size)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50926
diff
changeset
|
808 "Clear all cached file properties." |
2580
a66f7ed76416
(vc-diff): Get proper error message when you run this with no prefix
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2558
diff
changeset
|
809 (interactive) |
51064
f2383fb5260e
(vc-log-mode-map, vc-maximum-comment-ring-size)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50926
diff
changeset
|
810 (fillarray vc-file-prop-obarray 0)) |
2580
a66f7ed76416
(vc-diff): Get proper error message when you run this with no prefix
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2558
diff
changeset
|
811 |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
812 (defmacro with-vc-properties (files form settings) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
813 "Execute FORM, then maybe set per-file properties for FILES. |
41071 | 814 SETTINGS is an association list of property/value pairs. After |
815 executing FORM, set those properties from SETTINGS that have not yet | |
816 been updated to their corresponding values." | |
50894
4dc2d45403ec
(with-vc-properties, with-vc-file, edit-vc-file):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49869
diff
changeset
|
817 (declare (debug t)) |
41395
0abfca935c80
(with-vc-properties): Don't bind `filename' locally.
André Spiegel <spiegel@gnu.org>
parents:
41071
diff
changeset
|
818 `(let ((vc-touched-properties (list t))) |
31404
f2ab9420390f
2000-09-05 Stefan Monnier <monnier@cs.yale.edu>
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
31387
diff
changeset
|
819 ,form |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
820 (dolist (file ,files) |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
821 (dolist (setting ,settings) |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
822 (let ((property (car setting))) |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
823 (unless (memq property vc-touched-properties) |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
824 (put (intern file vc-file-prop-obarray) |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
825 property (cdr setting)))))))) |
31404
f2ab9420390f
2000-09-05 Stefan Monnier <monnier@cs.yale.edu>
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
31387
diff
changeset
|
826 |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
827 ;;; Code for deducing what fileset and backend to assume |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
828 |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
829 (defun vc-responsible-backend (file &optional register) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
830 "Return the name of a backend system that is responsible for FILE. |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
831 The optional argument REGISTER means that a backend suitable for |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
832 registration should be found. |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
833 |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
834 If REGISTER is nil, then if FILE is already registered, return the |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
835 backend of FILE. If FILE is not registered, or a directory, then the |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
836 first backend in `vc-handled-backends' that declares itself |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
837 responsible for FILE is returned. If no backend declares itself |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
838 responsible, return the first backend. |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
839 |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
840 If REGISTER is non-nil, return the first responsible backend under |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
841 which FILE is not yet registered. If there is no such backend, return |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
842 the first backend under which FILE is not yet registered, but could |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
843 be registered." |
94207
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
844 (when (not vc-handled-backends) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
845 (error "No handled backends")) |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
846 (or (and (not (file-directory-p file)) (not register) (vc-backend file)) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
847 (catch 'found |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
848 ;; First try: find a responsible backend. If this is for registration, |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
849 ;; it must be a backend under which FILE is not yet registered. |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
850 (dolist (backend vc-handled-backends) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
851 (and (or (not register) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
852 (not (vc-call-backend backend 'registered file))) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
853 (vc-call-backend backend 'responsible-p file) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
854 (throw 'found backend))) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
855 ;; no responsible backend |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
856 (if (not register) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
857 ;; if this is not for registration, the first backend must do |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
858 (car vc-handled-backends) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
859 ;; for registration, we need to find a new backend that |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
860 ;; could register FILE |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
861 (dolist (backend vc-handled-backends) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
862 (and (not (vc-call-backend backend 'registered file)) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
863 (vc-call-backend backend 'could-register file) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
864 (throw 'found backend))) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
865 (error "No backend that could register"))))) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
866 |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
867 (defun vc-expand-dirs (file-or-dir-list) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
868 "Expands directories in a file list specification. |
94886
9e19bca35d7f
Tell (vc-expand-dirs) not to throw out explicitly specified files.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94883
diff
changeset
|
869 Within directories, only files already under version control are noticed." |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
870 (let ((flattened '())) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
871 (dolist (node file-or-dir-list) |
95322
54121bb9b5ad
(Problems): Remove fixed issues.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95319
diff
changeset
|
872 (when (file-directory-p node) |
54121bb9b5ad
(Problems): Remove fixed issues.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95319
diff
changeset
|
873 (vc-file-tree-walk |
54121bb9b5ad
(Problems): Remove fixed issues.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95319
diff
changeset
|
874 node (lambda (f) (when (vc-backend f) (push f flattened))))) |
54121bb9b5ad
(Problems): Remove fixed issues.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95319
diff
changeset
|
875 (unless (file-directory-p node) (push node flattened))) |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
876 (nreverse flattened))) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
877 |
94974
3a282ce8370c
Make vc-deduce-fileset do the right thing in derived buffers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94886
diff
changeset
|
878 (defun vc-derived-from-dir-mode (&optional buffer) |
3a282ce8370c
Make vc-deduce-fileset do the right thing in derived buffers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94886
diff
changeset
|
879 "Are we in a VC-directory buffer, or do we have one as an ancestor?" |
3a282ce8370c
Make vc-deduce-fileset do the right thing in derived buffers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94886
diff
changeset
|
880 (let ((buffer (or buffer (current-buffer)))) |
3a282ce8370c
Make vc-deduce-fileset do the right thing in derived buffers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94886
diff
changeset
|
881 (cond ((derived-mode-p 'vc-dir-mode) t) |
3a282ce8370c
Make vc-deduce-fileset do the right thing in derived buffers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94886
diff
changeset
|
882 (vc-parent-buffer (vc-derived-from-dir-mode vc-parent-buffer)) |
3a282ce8370c
Make vc-deduce-fileset do the right thing in derived buffers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94886
diff
changeset
|
883 (t nil)))) |
3a282ce8370c
Make vc-deduce-fileset do the right thing in derived buffers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94886
diff
changeset
|
884 |
96203 | 885 (defvar vc-dir-backend) |
95326
23822423eb64
(vc-deduce-fileset): Replace implementation with one based on a
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95325
diff
changeset
|
886 |
23822423eb64
(vc-deduce-fileset): Replace implementation with one based on a
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95325
diff
changeset
|
887 ;; FIXME: this is not functional, commented out. |
23822423eb64
(vc-deduce-fileset): Replace implementation with one based on a
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95325
diff
changeset
|
888 ;; (defun vc-deduce-fileset (&optional observer) |
23822423eb64
(vc-deduce-fileset): Replace implementation with one based on a
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95325
diff
changeset
|
889 ;; "Deduce a set of files and a backend to which to apply an operation and |
23822423eb64
(vc-deduce-fileset): Replace implementation with one based on a
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95325
diff
changeset
|
890 ;; the common state of the fileset. Return (BACKEND . FILESET)." |
23822423eb64
(vc-deduce-fileset): Replace implementation with one based on a
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95325
diff
changeset
|
891 ;; (let* ((selection (vc-dispatcher-selection-set observer)) |
23822423eb64
(vc-deduce-fileset): Replace implementation with one based on a
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95325
diff
changeset
|
892 ;; (raw (car selection)) ;; Selection as user made it |
23822423eb64
(vc-deduce-fileset): Replace implementation with one based on a
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95325
diff
changeset
|
893 ;; (cooked (cdr selection)) ;; Files only |
23822423eb64
(vc-deduce-fileset): Replace implementation with one based on a
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95325
diff
changeset
|
894 ;; ;; FIXME: Store the backend in a buffer-local variable. |
23822423eb64
(vc-deduce-fileset): Replace implementation with one based on a
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95325
diff
changeset
|
895 ;; (backend (if (vc-derived-from-dir-mode (current-buffer)) |
23822423eb64
(vc-deduce-fileset): Replace implementation with one based on a
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95325
diff
changeset
|
896 ;; ;; FIXME: this should use vc-dir-backend from |
23822423eb64
(vc-deduce-fileset): Replace implementation with one based on a
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95325
diff
changeset
|
897 ;; ;; the *vc-dir* buffer. |
23822423eb64
(vc-deduce-fileset): Replace implementation with one based on a
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95325
diff
changeset
|
898 ;; (vc-responsible-backend default-directory) |
23822423eb64
(vc-deduce-fileset): Replace implementation with one based on a
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95325
diff
changeset
|
899 ;; (assert (and (= 1 (length raw)) |
23822423eb64
(vc-deduce-fileset): Replace implementation with one based on a
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95325
diff
changeset
|
900 ;; (not (file-directory-p (car raw))))) |
23822423eb64
(vc-deduce-fileset): Replace implementation with one based on a
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95325
diff
changeset
|
901 ;; (vc-backend (car cooked))))) |
23822423eb64
(vc-deduce-fileset): Replace implementation with one based on a
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95325
diff
changeset
|
902 ;; (cons backend selection))) |
23822423eb64
(vc-deduce-fileset): Replace implementation with one based on a
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95325
diff
changeset
|
903 |
96203 | 904 (declare-function vc-dir-current-file "vc-dir" ()) |
96256
a56e02fe83fc
* vc-dir.el (vc-dir-marked-only-files-and-states): Rename from
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96215
diff
changeset
|
905 (declare-function vc-dir-deduce-fileset "vc-dir" (&optional state-model-only-files)) |
96203 | 906 |
96256
a56e02fe83fc
* vc-dir.el (vc-dir-marked-only-files-and-states): Rename from
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96215
diff
changeset
|
907 (defun vc-deduce-fileset (&optional observer allow-unregistered |
a56e02fe83fc
* vc-dir.el (vc-dir-marked-only-files-and-states): Rename from
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96215
diff
changeset
|
908 state-model-only-files) |
95326
23822423eb64
(vc-deduce-fileset): Replace implementation with one based on a
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95325
diff
changeset
|
909 "Deduce a set of files and a backend to which to apply an operation. |
23822423eb64
(vc-deduce-fileset): Replace implementation with one based on a
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95325
diff
changeset
|
910 |
96256
a56e02fe83fc
* vc-dir.el (vc-dir-marked-only-files-and-states): Rename from
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96215
diff
changeset
|
911 Return (BACKEND FILESET FILESET-ONLY-FILES STATE CHECKOUT-MODEL). |
95326
23822423eb64
(vc-deduce-fileset): Replace implementation with one based on a
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95325
diff
changeset
|
912 If we're in VC-dir mode, the fileset is the list of marked files. |
23822423eb64
(vc-deduce-fileset): Replace implementation with one based on a
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95325
diff
changeset
|
913 Otherwise, if we're looking at a buffer visiting a version-controlled file, |
23822423eb64
(vc-deduce-fileset): Replace implementation with one based on a
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95325
diff
changeset
|
914 the fileset is a singleton containing this file. |
23822423eb64
(vc-deduce-fileset): Replace implementation with one based on a
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95325
diff
changeset
|
915 If none of these conditions is met, but ALLOW_UNREGISTERED is on and the |
23822423eb64
(vc-deduce-fileset): Replace implementation with one based on a
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95325
diff
changeset
|
916 visited file is not registered, return a singleton fileset containing it. |
96046
422d57d537d7
(vc-deduce-fileset): Add arg `only-files'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95966
diff
changeset
|
917 Otherwise, throw an error. |
96256
a56e02fe83fc
* vc-dir.el (vc-dir-marked-only-files-and-states): Rename from
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96215
diff
changeset
|
918 |
a56e02fe83fc
* vc-dir.el (vc-dir-marked-only-files-and-states): Rename from
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96215
diff
changeset
|
919 STATE-MODEL-ONLY-FILES if non-nil, means that the caller needs |
a56e02fe83fc
* vc-dir.el (vc-dir-marked-only-files-and-states): Rename from
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96215
diff
changeset
|
920 the FILESET-ONLY-FILES STATE and MODEL info. Otherwise, that |
a56e02fe83fc
* vc-dir.el (vc-dir-marked-only-files-and-states): Rename from
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96215
diff
changeset
|
921 part may be skipped. |
a56e02fe83fc
* vc-dir.el (vc-dir-marked-only-files-and-states): Rename from
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96215
diff
changeset
|
922 BEWARE: this function may change the |
a56e02fe83fc
* vc-dir.el (vc-dir-marked-only-files-and-states): Rename from
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96215
diff
changeset
|
923 current buffer." |
95326
23822423eb64
(vc-deduce-fileset): Replace implementation with one based on a
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95325
diff
changeset
|
924 ;; FIXME: OBSERVER is unused. The name is not intuitive and is not |
96046
422d57d537d7
(vc-deduce-fileset): Add arg `only-files'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95966
diff
changeset
|
925 ;; documented. It's set to t when called from diff and print-log. |
95326
23822423eb64
(vc-deduce-fileset): Replace implementation with one based on a
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95325
diff
changeset
|
926 (let (backend) |
23822423eb64
(vc-deduce-fileset): Replace implementation with one based on a
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95325
diff
changeset
|
927 (cond |
23822423eb64
(vc-deduce-fileset): Replace implementation with one based on a
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95325
diff
changeset
|
928 ((derived-mode-p 'vc-dir-mode) |
96256
a56e02fe83fc
* vc-dir.el (vc-dir-marked-only-files-and-states): Rename from
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96215
diff
changeset
|
929 (vc-dir-deduce-fileset state-model-only-files)) |
95326
23822423eb64
(vc-deduce-fileset): Replace implementation with one based on a
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95325
diff
changeset
|
930 ((setq backend (vc-backend buffer-file-name)) |
96256
a56e02fe83fc
* vc-dir.el (vc-dir-marked-only-files-and-states): Rename from
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96215
diff
changeset
|
931 (if state-model-only-files |
a56e02fe83fc
* vc-dir.el (vc-dir-marked-only-files-and-states): Rename from
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96215
diff
changeset
|
932 (list backend (list buffer-file-name) |
a56e02fe83fc
* vc-dir.el (vc-dir-marked-only-files-and-states): Rename from
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96215
diff
changeset
|
933 (list buffer-file-name) |
a56e02fe83fc
* vc-dir.el (vc-dir-marked-only-files-and-states): Rename from
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96215
diff
changeset
|
934 (vc-state buffer-file-name) |
a56e02fe83fc
* vc-dir.el (vc-dir-marked-only-files-and-states): Rename from
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96215
diff
changeset
|
935 (vc-checkout-model backend buffer-file-name)) |
a56e02fe83fc
* vc-dir.el (vc-dir-marked-only-files-and-states): Rename from
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96215
diff
changeset
|
936 (list backend (list buffer-file-name)))) |
96046
422d57d537d7
(vc-deduce-fileset): Add arg `only-files'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95966
diff
changeset
|
937 ((and (buffer-live-p vc-parent-buffer) |
422d57d537d7
(vc-deduce-fileset): Add arg `only-files'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95966
diff
changeset
|
938 ;; FIXME: Why this test? --Stef |
422d57d537d7
(vc-deduce-fileset): Add arg `only-files'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95966
diff
changeset
|
939 (or (buffer-file-name vc-parent-buffer) |
95326
23822423eb64
(vc-deduce-fileset): Replace implementation with one based on a
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95325
diff
changeset
|
940 (with-current-buffer vc-parent-buffer |
23822423eb64
(vc-deduce-fileset): Replace implementation with one based on a
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95325
diff
changeset
|
941 (eq major-mode 'vc-dir-mode)))) |
96046
422d57d537d7
(vc-deduce-fileset): Add arg `only-files'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95966
diff
changeset
|
942 (progn ;FIXME: Why not `with-current-buffer'? --Stef. |
95326
23822423eb64
(vc-deduce-fileset): Replace implementation with one based on a
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95325
diff
changeset
|
943 (set-buffer vc-parent-buffer) |
96256
a56e02fe83fc
* vc-dir.el (vc-dir-marked-only-files-and-states): Rename from
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96215
diff
changeset
|
944 (vc-deduce-fileset observer allow-unregistered state-model-only-files))) |
95946
3a39d3ac157c
(vc-deduce-fileset): Check if the buffer has a file.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95896
diff
changeset
|
945 ((not buffer-file-name) |
3a39d3ac157c
(vc-deduce-fileset): Check if the buffer has a file.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95896
diff
changeset
|
946 (error "Buffer %s is not associated with a file" (buffer-name))) |
95326
23822423eb64
(vc-deduce-fileset): Replace implementation with one based on a
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95325
diff
changeset
|
947 ((and allow-unregistered (not (vc-registered buffer-file-name))) |
96256
a56e02fe83fc
* vc-dir.el (vc-dir-marked-only-files-and-states): Rename from
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96215
diff
changeset
|
948 (if state-model-only-files |
a56e02fe83fc
* vc-dir.el (vc-dir-marked-only-files-and-states): Rename from
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96215
diff
changeset
|
949 (list (vc-responsible-backend |
a56e02fe83fc
* vc-dir.el (vc-dir-marked-only-files-and-states): Rename from
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96215
diff
changeset
|
950 (file-name-directory (buffer-file-name))) |
a56e02fe83fc
* vc-dir.el (vc-dir-marked-only-files-and-states): Rename from
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96215
diff
changeset
|
951 (list buffer-file-name) |
a56e02fe83fc
* vc-dir.el (vc-dir-marked-only-files-and-states): Rename from
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96215
diff
changeset
|
952 (list buffer-file-name) |
a56e02fe83fc
* vc-dir.el (vc-dir-marked-only-files-and-states): Rename from
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96215
diff
changeset
|
953 (when state-model-only-files 'unregistered) |
a56e02fe83fc
* vc-dir.el (vc-dir-marked-only-files-and-states): Rename from
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96215
diff
changeset
|
954 nil) |
a56e02fe83fc
* vc-dir.el (vc-dir-marked-only-files-and-states): Rename from
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96215
diff
changeset
|
955 (list (vc-responsible-backend |
a56e02fe83fc
* vc-dir.el (vc-dir-marked-only-files-and-states): Rename from
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96215
diff
changeset
|
956 (file-name-directory (buffer-file-name))) |
a56e02fe83fc
* vc-dir.el (vc-dir-marked-only-files-and-states): Rename from
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96215
diff
changeset
|
957 (list buffer-file-name)))) |
95326
23822423eb64
(vc-deduce-fileset): Replace implementation with one based on a
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95325
diff
changeset
|
958 (t (error "No fileset is available here."))))) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
959 |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
960 (defun vc-ensure-vc-buffer () |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
961 "Make sure that the current buffer visits a version-controlled file." |
87675
e4a11c2d5016
* vc.el (vc-status-headers): Rename from
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87601
diff
changeset
|
962 (cond |
96256
a56e02fe83fc
* vc-dir.el (vc-dir-marked-only-files-and-states): Rename from
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96215
diff
changeset
|
963 ((derived-mode-p 'vc-dir-mode) |
94106
9294e3bd7d46
Rename vc-status to vc-dir and the vc-status var to vc-ewoc.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94095
diff
changeset
|
964 (set-buffer (find-file-noselect (vc-dir-current-file)))) |
87675
e4a11c2d5016
* vc.el (vc-status-headers): Rename from
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87601
diff
changeset
|
965 (t |
87337
bad7c1eb5392
(vc-ensure-vc-buffer): Avoid infinite looping when
Martin Rudalics <rudalics@gmx.at>
parents:
87319
diff
changeset
|
966 (while (and vc-parent-buffer |
87601
2425b933f90a
(vc-ensure-vc-buffer): Check liveness of vc-parent-buffer.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
87599
diff
changeset
|
967 (buffer-live-p vc-parent-buffer) |
87337
bad7c1eb5392
(vc-ensure-vc-buffer): Avoid infinite looping when
Martin Rudalics <rudalics@gmx.at>
parents:
87319
diff
changeset
|
968 ;; Avoid infinite looping when vc-parent-buffer and |
bad7c1eb5392
(vc-ensure-vc-buffer): Avoid infinite looping when
Martin Rudalics <rudalics@gmx.at>
parents:
87319
diff
changeset
|
969 ;; current buffer are the same buffer. |
bad7c1eb5392
(vc-ensure-vc-buffer): Avoid infinite looping when
Martin Rudalics <rudalics@gmx.at>
parents:
87319
diff
changeset
|
970 (not (eq vc-parent-buffer (current-buffer)))) |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
971 (set-buffer vc-parent-buffer)) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
972 (if (not buffer-file-name) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
973 (error "Buffer %s is not associated with a file" (buffer-name)) |
94207
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
974 (unless (vc-backend buffer-file-name) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
975 (error "File %s is not under version control" buffer-file-name)))))) |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
976 |
94481
ad6c174910db
Make `checkout-model' apply to filesets.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94478
diff
changeset
|
977 ;;; Support for the C-x v v command. |
ad6c174910db
Make `checkout-model' apply to filesets.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94478
diff
changeset
|
978 ;; This is where all the single-file-oriented code from before the fileset |
ad6c174910db
Make `checkout-model' apply to filesets.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94478
diff
changeset
|
979 ;; rewrite lives. |
85064
3e1b7531aa3e
Port various comments from new VC to reduce the noise in the diff.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85059
diff
changeset
|
980 |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
981 (defsubst vc-editable-p (file) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
982 "Return non-nil if FILE can be edited." |
94481
ad6c174910db
Make `checkout-model' apply to filesets.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94478
diff
changeset
|
983 (let ((backend (vc-backend file))) |
ad6c174910db
Make `checkout-model' apply to filesets.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94478
diff
changeset
|
984 (and backend |
94563
a0bb8ca25a33
Clean up vc*-revision-granularity and vc*-checkout-model.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94556
diff
changeset
|
985 (or (eq (vc-checkout-model backend (list file)) 'implicit) |
94481
ad6c174910db
Make `checkout-model' apply to filesets.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94478
diff
changeset
|
986 (memq (vc-state file) '(edited needs-merge conflict)))))) |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
987 |
87477
b5060e79eb98
* vc-svn.el (vc-svn-parse-status): Recognize 'added, 'removed,
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
87450
diff
changeset
|
988 (defun vc-compatible-state (p q) |
b5060e79eb98
* vc-svn.el (vc-svn-parse-status): Recognize 'added, 'removed,
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
87450
diff
changeset
|
989 "Controls which states can be in the same commit." |
b5060e79eb98
* vc-svn.el (vc-svn-parse-status): Recognize 'added, 'removed,
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
87450
diff
changeset
|
990 (or |
b5060e79eb98
* vc-svn.el (vc-svn-parse-status): Recognize 'added, 'removed,
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
87450
diff
changeset
|
991 (eq p q) |
b5060e79eb98
* vc-svn.el (vc-svn-parse-status): Recognize 'added, 'removed,
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
87450
diff
changeset
|
992 (and (member p '(edited added removed)) (member q '(edited added removed))))) |
b5060e79eb98
* vc-svn.el (vc-svn-parse-status): Recognize 'added, 'removed,
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
87450
diff
changeset
|
993 |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
994 ;; Here's the major entry point. |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
995 |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
996 ;;;###autoload |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
997 (defun vc-next-action (verbose) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
998 "Do the next logical version control operation on the current fileset. |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
999 This requires that all files in the fileset be in the same state. |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1000 |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1001 For locking systems: |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1002 If every file is not already registered, this registers each for version |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1003 control. |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1004 If every file is registered and not locked by anyone, this checks out |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1005 a writable and locked file of each ready for editing. |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1006 If every file is checked out and locked by the calling user, this |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1007 first checks to see if each file has changed since checkout. If not, |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1008 it performs a revert on that file. |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1009 If every file has been changed, this pops up a buffer for entry |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1010 of a log message; when the message has been entered, it checks in the |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1011 resulting changes along with the log message as change commentary. If |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1012 the variable `vc-keep-workfiles' is non-nil (which is its default), a |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1013 read-only copy of each changed file is left in place afterwards. |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1014 If the affected file is registered and locked by someone else, you are |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1015 given the option to steal the lock(s). |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1016 |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1017 For merging systems: |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1018 If every file is not already registered, this registers each one for version |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1019 control. This does an add, but not a commit. |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1020 If every file is added but not committed, each one is committed. |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1021 If every working file is changed, but the corresponding repository file is |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1022 unchanged, this pops up a buffer for entry of a log message; when the |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1023 message has been entered, it checks in the resulting changes along |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1024 with the logmessage as change commentary. A writable file is retained. |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1025 If the repository file is changed, you are asked if you want to |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1026 merge in the changes into your working copy." |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1027 (interactive "P") |
96256
a56e02fe83fc
* vc-dir.el (vc-dir-marked-only-files-and-states): Rename from
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96215
diff
changeset
|
1028 (let* ((vc-fileset (vc-deduce-fileset nil t 'state-model-only-files)) |
94481
ad6c174910db
Make `checkout-model' apply to filesets.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94478
diff
changeset
|
1029 (backend (car vc-fileset)) |
95326
23822423eb64
(vc-deduce-fileset): Replace implementation with one based on a
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95325
diff
changeset
|
1030 (files (nth 1 vc-fileset)) |
23822423eb64
(vc-deduce-fileset): Replace implementation with one based on a
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95325
diff
changeset
|
1031 (fileset-only-files (nth 2 vc-fileset)) |
94878 | 1032 ;; FIXME: We used to call `vc-recompute-state' here. |
96256
a56e02fe83fc
* vc-dir.el (vc-dir-marked-only-files-and-states): Rename from
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96215
diff
changeset
|
1033 (state (nth 3 vc-fileset)) |
94803
0c63a93bf877
(vc-deduce-fileset): Don't require the checkout-model and the
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94796
diff
changeset
|
1034 ;; The backend should check that the checkout-model is consistent |
0c63a93bf877
(vc-deduce-fileset): Don't require the checkout-model and the
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94796
diff
changeset
|
1035 ;; among all the `files'. |
96256
a56e02fe83fc
* vc-dir.el (vc-dir-marked-only-files-and-states): Rename from
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96215
diff
changeset
|
1036 (model (nth 4 vc-fileset)) |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1037 revision) |
94803
0c63a93bf877
(vc-deduce-fileset): Don't require the checkout-model and the
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94796
diff
changeset
|
1038 |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1039 ;; Do the right thing |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1040 (cond |
94538
dc1cd59ce955
Better error message on missing files.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94536
diff
changeset
|
1041 ((eq state 'missing) |
dc1cd59ce955
Better error message on missing files.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94536
diff
changeset
|
1042 (error "Fileset files are missing, so cannot be operated on.")) |
94778
b9687393def1
Large simplification in (vc-deduce-fileset) logic.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94729
diff
changeset
|
1043 ((eq state 'ignored) |
b9687393def1
Large simplification in (vc-deduce-fileset) logic.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94729
diff
changeset
|
1044 (error "Fileset files are ignored by the version-control system.")) |
95326
23822423eb64
(vc-deduce-fileset): Replace implementation with one based on a
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95325
diff
changeset
|
1045 ((or (null state) (eq state 'unregistered)) |
95946
3a39d3ac157c
(vc-deduce-fileset): Check if the buffer has a file.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95896
diff
changeset
|
1046 (vc-register nil vc-fileset)) |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1047 ;; Files are up-to-date, or need a merge and user specified a revision |
94521
2a61c5f918a5
Change 'needs-patch to 'needs-update.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94520
diff
changeset
|
1048 ((or (eq state 'up-to-date) (and verbose (eq state 'needs-update))) |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1049 (cond |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1050 (verbose |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1051 ;; go to a different revision |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1052 (setq revision (read-string "Branch, revision, or backend to move to: ")) |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1053 (let ((vsym (intern-soft (upcase revision)))) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1054 (if (member vsym vc-handled-backends) |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1055 (dolist (file files) (vc-transfer-file file vsym)) |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1056 (dolist (file files) |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1057 (vc-checkout file (eq model 'implicit) revision))))) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1058 ((not (eq model 'implicit)) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1059 ;; check the files out |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1060 (dolist (file files) (vc-checkout file t))) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1061 (t |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1062 ;; do nothing |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1063 (message "Fileset is up-to-date")))) |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1064 ;; Files have local changes |
87477
b5060e79eb98
* vc-svn.el (vc-svn-parse-status): Recognize 'added, 'removed,
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
87450
diff
changeset
|
1065 ((vc-compatible-state state 'edited) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1066 (let ((ready-for-commit files)) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1067 ;; If files are edited but read-only, give user a chance to correct |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1068 (dolist (file files) |
87826
06bebff4deab
Add a TODO note about vc-state.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87785
diff
changeset
|
1069 (unless (file-writable-p file) |
06bebff4deab
Add a TODO note about vc-state.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87785
diff
changeset
|
1070 ;; Make the file+buffer read-write. |
06bebff4deab
Add a TODO note about vc-state.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87785
diff
changeset
|
1071 (unless (y-or-n-p (format "%s is edited but read-only; make it writable and continue?" file)) |
06bebff4deab
Add a TODO note about vc-state.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87785
diff
changeset
|
1072 (error "Aborted")) |
06bebff4deab
Add a TODO note about vc-state.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87785
diff
changeset
|
1073 (set-file-modes file (logior (file-modes file) 128)) |
06bebff4deab
Add a TODO note about vc-state.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87785
diff
changeset
|
1074 (let ((visited (get-file-buffer file))) |
06bebff4deab
Add a TODO note about vc-state.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87785
diff
changeset
|
1075 (when visited |
06bebff4deab
Add a TODO note about vc-state.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87785
diff
changeset
|
1076 (with-current-buffer visited |
06bebff4deab
Add a TODO note about vc-state.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87785
diff
changeset
|
1077 (toggle-read-only -1)))))) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1078 ;; Allow user to revert files with no changes |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1079 (save-excursion |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1080 (dolist (file files) |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1081 (let ((visited (get-file-buffer file))) |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1082 ;; For files with locking, if the file does not contain |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1083 ;; any changes, just let go of the lock, i.e. revert. |
87826
06bebff4deab
Add a TODO note about vc-state.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87785
diff
changeset
|
1084 (when (and (not (eq model 'implicit)) |
06bebff4deab
Add a TODO note about vc-state.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87785
diff
changeset
|
1085 (vc-workfile-unchanged-p file) |
06bebff4deab
Add a TODO note about vc-state.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87785
diff
changeset
|
1086 ;; If buffer is modified, that means the user just |
06bebff4deab
Add a TODO note about vc-state.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87785
diff
changeset
|
1087 ;; said no to saving it; in that case, don't revert, |
06bebff4deab
Add a TODO note about vc-state.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87785
diff
changeset
|
1088 ;; because the user might intend to save after |
06bebff4deab
Add a TODO note about vc-state.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87785
diff
changeset
|
1089 ;; finishing the log entry and committing. |
06bebff4deab
Add a TODO note about vc-state.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87785
diff
changeset
|
1090 (not (and visited (buffer-modified-p)))) |
06bebff4deab
Add a TODO note about vc-state.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87785
diff
changeset
|
1091 (vc-revert-file file) |
06bebff4deab
Add a TODO note about vc-state.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87785
diff
changeset
|
1092 (delete file ready-for-commit))))) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1093 ;; Remaining files need to be committed |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1094 (if (not ready-for-commit) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1095 (message "No files remain to be committed") |
31810
495ca3bd372d
(vc-index-of, vc-transfer-file, vc-default-receive-file): New functions.
André Spiegel <spiegel@gnu.org>
parents:
31718
diff
changeset
|
1096 (if (not verbose) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1097 (vc-checkin ready-for-commit) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1098 (progn |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1099 (setq revision (read-string "New revision or backend: ")) |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1100 (let ((vsym (intern (upcase revision)))) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1101 (if (member vsym vc-handled-backends) |
87938
bcbe422dacdd
(vc-next-action): Fix two instances of "free-var file" bug:
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
87931
diff
changeset
|
1102 (dolist (file files) (vc-transfer-file file vsym)) |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1103 (vc-checkin ready-for-commit revision)))))))) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1104 ;; locked by somebody else (locking VCSes only) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1105 ((stringp state) |
87938
bcbe422dacdd
(vc-next-action): Fix two instances of "free-var file" bug:
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
87931
diff
changeset
|
1106 ;; In the old days, we computed the revision once and used it on |
bcbe422dacdd
(vc-next-action): Fix two instances of "free-var file" bug:
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
87931
diff
changeset
|
1107 ;; the single file. Then, for the 2007-2008 fileset rewrite, we |
bcbe422dacdd
(vc-next-action): Fix two instances of "free-var file" bug:
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
87931
diff
changeset
|
1108 ;; computed the revision once (incorrectly, using a free var) and |
bcbe422dacdd
(vc-next-action): Fix two instances of "free-var file" bug:
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
87931
diff
changeset
|
1109 ;; used it on all files. To fix the free var bug, we can either |
bcbe422dacdd
(vc-next-action): Fix two instances of "free-var file" bug:
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
87931
diff
changeset
|
1110 ;; use `(car files)' or do what we do here: distribute the |
bcbe422dacdd
(vc-next-action): Fix two instances of "free-var file" bug:
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
87931
diff
changeset
|
1111 ;; revision computation among `files'. Although this may be |
bcbe422dacdd
(vc-next-action): Fix two instances of "free-var file" bug:
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
87931
diff
changeset
|
1112 ;; tedious for those backends where a "revision" is a trans-file |
bcbe422dacdd
(vc-next-action): Fix two instances of "free-var file" bug:
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
87931
diff
changeset
|
1113 ;; concept, it is nonetheless correct for both those and (more |
bcbe422dacdd
(vc-next-action): Fix two instances of "free-var file" bug:
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
87931
diff
changeset
|
1114 ;; importantly) for those where "revision" is a per-file concept. |
bcbe422dacdd
(vc-next-action): Fix two instances of "free-var file" bug:
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
87931
diff
changeset
|
1115 ;; If the intersection of the former group and "locking VCSes" is |
bcbe422dacdd
(vc-next-action): Fix two instances of "free-var file" bug:
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
87931
diff
changeset
|
1116 ;; non-empty [I vaguely doubt it --ttn], we can reinstate the |
bcbe422dacdd
(vc-next-action): Fix two instances of "free-var file" bug:
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
87931
diff
changeset
|
1117 ;; pre-computation approach of yore. |
bcbe422dacdd
(vc-next-action): Fix two instances of "free-var file" bug:
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
87931
diff
changeset
|
1118 (dolist (file files) |
bcbe422dacdd
(vc-next-action): Fix two instances of "free-var file" bug:
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
87931
diff
changeset
|
1119 (vc-steal-lock |
bcbe422dacdd
(vc-next-action): Fix two instances of "free-var file" bug:
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
87931
diff
changeset
|
1120 file (if verbose |
bcbe422dacdd
(vc-next-action): Fix two instances of "free-var file" bug:
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
87931
diff
changeset
|
1121 (read-string (format "%s revision to steal: " file)) |
bcbe422dacdd
(vc-next-action): Fix two instances of "free-var file" bug:
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
87931
diff
changeset
|
1122 (vc-working-revision file)) |
bcbe422dacdd
(vc-next-action): Fix two instances of "free-var file" bug:
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
87931
diff
changeset
|
1123 state))) |
93956
bfc762f0b49c
* vc-hooks.el (vc-state): Add new state `conflict'.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93934
diff
changeset
|
1124 ;; conflict |
bfc762f0b49c
* vc-hooks.el (vc-state): Add new state `conflict'.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93934
diff
changeset
|
1125 ((eq state 'conflict) |
94805
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
1126 ;; FIXME: Is it really the UI we want to provide? |
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
1127 ;; In my experience, the conflicted files should be marked as resolved |
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
1128 ;; one-by-one when saving the file after resolving the conflicts. |
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
1129 ;; I.e. stating explicitly that the conflicts are resolved is done |
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
1130 ;; very rarely. |
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
1131 (vc-mark-resolved backend files)) |
94521
2a61c5f918a5
Change 'needs-patch to 'needs-update.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94520
diff
changeset
|
1132 ;; needs-update |
2a61c5f918a5
Change 'needs-patch to 'needs-update.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94520
diff
changeset
|
1133 ((eq state 'needs-update) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1134 (dolist (file files) |
31565
de4e73d77734
(vc-dired-listing-switches): Fix :version.
Dave Love <fx@gnu.org>
parents:
31520
diff
changeset
|
1135 (if (yes-or-no-p (format |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1136 "%s is not up-to-date. Get latest revision? " |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1137 (file-name-nondirectory file))) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1138 (vc-checkout file (eq model 'implicit) t) |
87826
06bebff4deab
Add a TODO note about vc-state.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87785
diff
changeset
|
1139 (when (and (not (eq model 'implicit)) |
06bebff4deab
Add a TODO note about vc-state.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87785
diff
changeset
|
1140 (yes-or-no-p "Lock this revision? ")) |
06bebff4deab
Add a TODO note about vc-state.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87785
diff
changeset
|
1141 (vc-checkout file t))))) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1142 ;; needs-merge |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1143 ((eq state 'needs-merge) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1144 (dolist (file files) |
87826
06bebff4deab
Add a TODO note about vc-state.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87785
diff
changeset
|
1145 (when (yes-or-no-p (format |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1146 "%s is not up-to-date. Merge in changes now? " |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1147 (file-name-nondirectory file))) |
94805
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
1148 (vc-maybe-resolve-conflicts |
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
1149 file (vc-call-backend backend 'merge-news file))))) |
32344
f91ef1141a75
(with-vc-file, edit-vc-file): Specify `indent-function' property.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
32310
diff
changeset
|
1150 |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1151 ;; unlocked-changes |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1152 ((eq state 'unlocked-changes) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1153 (dolist (file files) |
94207
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1154 (when (not (equal buffer-file-name file)) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1155 (find-file-other-window file)) |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1156 (if (save-window-excursion |
95587
cb8fbc8ef1c5
(vc-update): Use `save-some-buffers' instead of signaling an error on modified buffers.
Sam Steingold <sds@gnu.org>
parents:
95327
diff
changeset
|
1157 (vc-diff-internal nil |
94778
b9687393def1
Large simplification in (vc-deduce-fileset) logic.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94729
diff
changeset
|
1158 (cons (car vc-fileset) (cons (cadr vc-fileset) (list file))) |
94240
9f1f284d17b3
(vc-next-action): Do not consider directories when
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94214
diff
changeset
|
1159 (vc-working-revision file) nil) |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1160 (goto-char (point-min)) |
32059
13e0fdf65e3c
(with-vc-file, vc-next-action-on-file):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32058
diff
changeset
|
1161 (let ((inhibit-read-only t)) |
41561
cfae9c0a0035
(vc-next-action-on-file): Use insert instead of insert-string.
Pavel Janík <Pavel@Janik.cz>
parents:
41556
diff
changeset
|
1162 (insert |
32059
13e0fdf65e3c
(with-vc-file, vc-next-action-on-file):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32058
diff
changeset
|
1163 (format "Changes to %s since last lock:\n\n" file))) |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1164 (not (beep)) |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1165 (yes-or-no-p (concat "File has unlocked changes. " |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1166 "Claim lock retaining changes? "))) |
94805
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
1167 (progn (vc-call-backend backend 'steal-lock file) |
85064
3e1b7531aa3e
Port various comments from new VC to reduce the noise in the diff.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85059
diff
changeset
|
1168 (clear-visited-file-modtime) |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1169 ;; Must clear any headers here because they wouldn't |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1170 ;; show that the file is locked now. |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1171 (vc-clear-headers file) |
50926
dd6110a63907
New backend functions `delete-file' and `repository-hostname'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50894
diff
changeset
|
1172 (write-file buffer-file-name) |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1173 (vc-mode-line file)) |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1174 (if (not (yes-or-no-p |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1175 "Revert to checked-in revision, instead? ")) |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1176 (error "Checkout aborted") |
85064
3e1b7531aa3e
Port various comments from new VC to reduce the noise in the diff.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85059
diff
changeset
|
1177 (vc-revert-buffer-internal t t) |
94521
2a61c5f918a5
Change 'needs-patch to 'needs-update.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94520
diff
changeset
|
1178 (vc-checkout file t))))) |
2a61c5f918a5
Change 'needs-patch to 'needs-update.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94520
diff
changeset
|
1179 ;; Unknown fileset state |
2a61c5f918a5
Change 'needs-patch to 'needs-update.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94520
diff
changeset
|
1180 (t |
2a61c5f918a5
Change 'needs-patch to 'needs-update.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94520
diff
changeset
|
1181 (error "Fileset is in an unknown state %s" state))))) |
2490
70d00ecacc0d
(vc-directory. vc-start-entry, vc-next-action, vc-next-action-on-file):
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2464
diff
changeset
|
1182 |
85064
3e1b7531aa3e
Port various comments from new VC to reduce the noise in the diff.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85059
diff
changeset
|
1183 (defun vc-create-repo (backend) |
3e1b7531aa3e
Port various comments from new VC to reduce the noise in the diff.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85059
diff
changeset
|
1184 "Create an empty repository in the current directory." |
3e1b7531aa3e
Port various comments from new VC to reduce the noise in the diff.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85059
diff
changeset
|
1185 (interactive |
3e1b7531aa3e
Port various comments from new VC to reduce the noise in the diff.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85059
diff
changeset
|
1186 (list |
3e1b7531aa3e
Port various comments from new VC to reduce the noise in the diff.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85059
diff
changeset
|
1187 (intern |
3e1b7531aa3e
Port various comments from new VC to reduce the noise in the diff.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85059
diff
changeset
|
1188 (upcase |
3e1b7531aa3e
Port various comments from new VC to reduce the noise in the diff.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85059
diff
changeset
|
1189 (completing-read |
3e1b7531aa3e
Port various comments from new VC to reduce the noise in the diff.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85059
diff
changeset
|
1190 "Create repository for: " |
3e1b7531aa3e
Port various comments from new VC to reduce the noise in the diff.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85059
diff
changeset
|
1191 (mapcar (lambda (b) (list (downcase (symbol-name b)))) vc-handled-backends) |
3e1b7531aa3e
Port various comments from new VC to reduce the noise in the diff.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85059
diff
changeset
|
1192 nil t))))) |
3e1b7531aa3e
Port various comments from new VC to reduce the noise in the diff.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85059
diff
changeset
|
1193 (vc-call-backend backend 'create-repo)) |
67755
0cdb122ad4db
Remove unnecessary leading * in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67578
diff
changeset
|
1194 |
927 | 1195 ;;;###autoload |
95946
3a39d3ac157c
(vc-deduce-fileset): Check if the buffer has a file.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95896
diff
changeset
|
1196 (defun vc-register (&optional set-revision vc-fileset comment) |
86055
f064a093bf93
(vc-register): Allow registering a file passed as a
Dan Nicolaescu <dann@ics.uci.edu>
parents:
86034
diff
changeset
|
1197 "Register into a version control system. |
95946
3a39d3ac157c
(vc-deduce-fileset): Check if the buffer has a file.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95896
diff
changeset
|
1198 If VC-FILESET is given, register the files in that fileset. |
3a39d3ac157c
(vc-deduce-fileset): Check if the buffer has a file.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95896
diff
changeset
|
1199 Otherwise register the current file. |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1200 With prefix argument SET-REVISION, allow user to specify initial revision |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1201 level. If COMMENT is present, use that as an initial comment. |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1202 |
31520
f9d2d484e1e2
* vc-sccs.el (vc-sccs-register):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
31435
diff
changeset
|
1203 The version control system to use is found by cycling through the list |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1204 `vc-handled-backends'. The first backend in that list which declares |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1205 itself responsible for the file (usually because other files in that |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1206 directory are already registered under that backend) will be used to |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1207 register the file. If no backend declares itself responsible, the |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1208 first backend that could register the file is used." |
904 | 1209 (interactive "P") |
95946
3a39d3ac157c
(vc-deduce-fileset): Check if the buffer has a file.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95896
diff
changeset
|
1210 (let* ((fileset-arg (or vc-fileset (vc-deduce-fileset nil t))) |
3a39d3ac157c
(vc-deduce-fileset): Check if the buffer has a file.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95896
diff
changeset
|
1211 (backend (car fileset-arg)) |
96046
422d57d537d7
(vc-deduce-fileset): Add arg `only-files'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95966
diff
changeset
|
1212 (files (nth 1 fileset-arg))) |
422d57d537d7
(vc-deduce-fileset): Add arg `only-files'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95966
diff
changeset
|
1213 ;; We used to operate on `only-files', but VC wants to provide the |
422d57d537d7
(vc-deduce-fileset): Add arg `only-files'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95966
diff
changeset
|
1214 ;; possibility to register directories rather than files only, since |
422d57d537d7
(vc-deduce-fileset): Add arg `only-files'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95966
diff
changeset
|
1215 ;; many VCS allow that as well. |
422d57d537d7
(vc-deduce-fileset): Add arg `only-files'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95966
diff
changeset
|
1216 (dolist (fname files) |
95946
3a39d3ac157c
(vc-deduce-fileset): Check if the buffer has a file.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95896
diff
changeset
|
1217 (let ((bname (get-file-buffer fname))) |
3a39d3ac157c
(vc-deduce-fileset): Check if the buffer has a file.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95896
diff
changeset
|
1218 (unless fname (setq fname buffer-file-name)) |
3a39d3ac157c
(vc-deduce-fileset): Check if the buffer has a file.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95896
diff
changeset
|
1219 (when (vc-backend fname) |
3a39d3ac157c
(vc-deduce-fileset): Check if the buffer has a file.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95896
diff
changeset
|
1220 (if (vc-registered fname) |
3a39d3ac157c
(vc-deduce-fileset): Check if the buffer has a file.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95896
diff
changeset
|
1221 (error "This file is already registered") |
3a39d3ac157c
(vc-deduce-fileset): Check if the buffer has a file.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95896
diff
changeset
|
1222 (unless (y-or-n-p "Previous master file has vanished. Make a new one? ") |
3a39d3ac157c
(vc-deduce-fileset): Check if the buffer has a file.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95896
diff
changeset
|
1223 (error "Aborted")))) |
3a39d3ac157c
(vc-deduce-fileset): Check if the buffer has a file.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95896
diff
changeset
|
1224 ;; Watch out for new buffers of size 0: the corresponding file |
3a39d3ac157c
(vc-deduce-fileset): Check if the buffer has a file.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95896
diff
changeset
|
1225 ;; does not exist yet, even though buffer-modified-p is nil. |
3a39d3ac157c
(vc-deduce-fileset): Check if the buffer has a file.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95896
diff
changeset
|
1226 (when bname |
3a39d3ac157c
(vc-deduce-fileset): Check if the buffer has a file.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95896
diff
changeset
|
1227 (with-current-buffer bname |
3a39d3ac157c
(vc-deduce-fileset): Check if the buffer has a file.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95896
diff
changeset
|
1228 (when (and (not (buffer-modified-p)) |
3a39d3ac157c
(vc-deduce-fileset): Check if the buffer has a file.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95896
diff
changeset
|
1229 (zerop (buffer-size)) |
3a39d3ac157c
(vc-deduce-fileset): Check if the buffer has a file.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95896
diff
changeset
|
1230 (not (file-exists-p buffer-file-name))) |
3a39d3ac157c
(vc-deduce-fileset): Check if the buffer has a file.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95896
diff
changeset
|
1231 (set-buffer-modified-p t)) |
3a39d3ac157c
(vc-deduce-fileset): Check if the buffer has a file.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95896
diff
changeset
|
1232 (vc-buffer-sync))))) |
3a39d3ac157c
(vc-deduce-fileset): Check if the buffer has a file.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95896
diff
changeset
|
1233 (lexical-let ((backend backend) |
96046
422d57d537d7
(vc-deduce-fileset): Add arg `only-files'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95966
diff
changeset
|
1234 (files files)) |
95946
3a39d3ac157c
(vc-deduce-fileset): Check if the buffer has a file.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95896
diff
changeset
|
1235 (vc-start-logentry |
3a39d3ac157c
(vc-deduce-fileset): Check if the buffer has a file.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95896
diff
changeset
|
1236 files |
3a39d3ac157c
(vc-deduce-fileset): Check if the buffer has a file.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95896
diff
changeset
|
1237 (if set-revision |
96046
422d57d537d7
(vc-deduce-fileset): Add arg `only-files'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95966
diff
changeset
|
1238 (read-string (format "Initial revision level for %s: " files)) |
95946
3a39d3ac157c
(vc-deduce-fileset): Check if the buffer has a file.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95896
diff
changeset
|
1239 (vc-call-backend backend 'init-revision)) |
3a39d3ac157c
(vc-deduce-fileset): Check if the buffer has a file.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95896
diff
changeset
|
1240 (or comment (not vc-initial-comment)) |
3a39d3ac157c
(vc-deduce-fileset): Check if the buffer has a file.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95896
diff
changeset
|
1241 nil |
3a39d3ac157c
(vc-deduce-fileset): Check if the buffer has a file.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95896
diff
changeset
|
1242 "Enter initial comment." |
3a39d3ac157c
(vc-deduce-fileset): Check if the buffer has a file.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95896
diff
changeset
|
1243 "*VC-log*" |
3a39d3ac157c
(vc-deduce-fileset): Check if the buffer has a file.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95896
diff
changeset
|
1244 (lambda (files rev comment) |
3a39d3ac157c
(vc-deduce-fileset): Check if the buffer has a file.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95896
diff
changeset
|
1245 (message "Registering %s... " files) |
96046
422d57d537d7
(vc-deduce-fileset): Add arg `only-files'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95966
diff
changeset
|
1246 (mapc 'vc-file-clearprops files) |
95946
3a39d3ac157c
(vc-deduce-fileset): Check if the buffer has a file.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95896
diff
changeset
|
1247 (vc-call-backend backend 'register files rev comment) |
3a39d3ac157c
(vc-deduce-fileset): Check if the buffer has a file.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95896
diff
changeset
|
1248 (dolist (file files) |
3a39d3ac157c
(vc-deduce-fileset): Check if the buffer has a file.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95896
diff
changeset
|
1249 (vc-file-setprop file 'vc-backend backend) |
96046
422d57d537d7
(vc-deduce-fileset): Add arg `only-files'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95966
diff
changeset
|
1250 ;; FIXME: This is wrong: it should set `backup-inhibited' in all |
422d57d537d7
(vc-deduce-fileset): Add arg `only-files'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95966
diff
changeset
|
1251 ;; the buffers visiting files affected by this `vc-register', not |
422d57d537d7
(vc-deduce-fileset): Add arg `only-files'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95966
diff
changeset
|
1252 ;; in the current-buffer. |
422d57d537d7
(vc-deduce-fileset): Add arg `only-files'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95966
diff
changeset
|
1253 ;; (unless vc-make-backup-files |
422d57d537d7
(vc-deduce-fileset): Add arg `only-files'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95966
diff
changeset
|
1254 ;; (make-local-variable 'backup-inhibited) |
422d57d537d7
(vc-deduce-fileset): Add arg `only-files'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95966
diff
changeset
|
1255 ;; (setq backup-inhibited t)) |
422d57d537d7
(vc-deduce-fileset): Add arg `only-files'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95966
diff
changeset
|
1256 ) |
95946
3a39d3ac157c
(vc-deduce-fileset): Check if the buffer has a file.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95896
diff
changeset
|
1257 (message "Registering %s... done" files)))))) |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1258 |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1259 (defun vc-register-with (backend) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1260 "Register the current file with a specified back end." |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1261 (interactive "SBackend: ") |
94207
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1262 (when (not (member backend vc-handled-backends)) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1263 (error "Unknown back end.")) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1264 (let ((vc-handled-backends (list backend))) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1265 (call-interactively 'vc-register))) |
32069
4b577e4fc758
(vc-responsible-backend): Undo the previous change in the argument
André Spiegel <spiegel@gnu.org>
parents:
32059
diff
changeset
|
1266 |
11597
d6d53a54da18
(vc-backend-checkout): Pass vc-checkout-switches arg
Richard M. Stallman <rms@gnu.org>
parents:
11080
diff
changeset
|
1267 (defun vc-checkout (file &optional writable rev) |
31404
f2ab9420390f
2000-09-05 Stefan Monnier <monnier@cs.yale.edu>
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
31387
diff
changeset
|
1268 "Retrieve a copy of the revision REV of FILE. |
f2ab9420390f
2000-09-05 Stefan Monnier <monnier@cs.yale.edu>
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
31387
diff
changeset
|
1269 If WRITABLE is non-nil, make sure the retrieved file is writable. |
38608 | 1270 REV defaults to the latest revision. |
1271 | |
1272 After check-out, runs the normal hook `vc-checkout-hook'." | |
32126
3aab429d3c8a
(vc-revert-buffer): Handle empty diff properly.
André Spiegel <spiegel@gnu.org>
parents:
32097
diff
changeset
|
1273 (and writable |
3aab429d3c8a
(vc-revert-buffer): Handle empty diff properly.
André Spiegel <spiegel@gnu.org>
parents:
32097
diff
changeset
|
1274 (not rev) |
32748
e2cb0aef151a
(vc-checkout): Added `-p' suffix in call to vc-make-version-backups-p;
André Spiegel <spiegel@gnu.org>
parents:
32344
diff
changeset
|
1275 (vc-call make-version-backups-p file) |
32126
3aab429d3c8a
(vc-revert-buffer): Handle empty diff properly.
André Spiegel <spiegel@gnu.org>
parents:
32097
diff
changeset
|
1276 (vc-up-to-date-p file) |
32748
e2cb0aef151a
(vc-checkout): Added `-p' suffix in call to vc-make-version-backups-p;
André Spiegel <spiegel@gnu.org>
parents:
32344
diff
changeset
|
1277 (vc-make-version-backup file)) |
94481
ad6c174910db
Make `checkout-model' apply to filesets.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94478
diff
changeset
|
1278 (let ((backend (vc-backend file))) |
ad6c174910db
Make `checkout-model' apply to filesets.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94478
diff
changeset
|
1279 (with-vc-properties (list file) |
ad6c174910db
Make `checkout-model' apply to filesets.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94478
diff
changeset
|
1280 (condition-case err |
94495
027a58c5f305
(vc-checkout): Typo.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94488
diff
changeset
|
1281 (vc-call-backend backend 'checkout file writable rev) |
94481
ad6c174910db
Make `checkout-model' apply to filesets.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94478
diff
changeset
|
1282 (file-error |
ad6c174910db
Make `checkout-model' apply to filesets.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94478
diff
changeset
|
1283 ;; Maybe the backend is not installed ;-( |
ad6c174910db
Make `checkout-model' apply to filesets.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94478
diff
changeset
|
1284 (when writable |
ad6c174910db
Make `checkout-model' apply to filesets.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94478
diff
changeset
|
1285 (let ((buf (get-file-buffer file))) |
ad6c174910db
Make `checkout-model' apply to filesets.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94478
diff
changeset
|
1286 (when buf (with-current-buffer buf (toggle-read-only -1))))) |
ad6c174910db
Make `checkout-model' apply to filesets.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94478
diff
changeset
|
1287 (signal (car err) (cdr err)))) |
94563
a0bb8ca25a33
Clean up vc*-revision-granularity and vc*-checkout-model.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94556
diff
changeset
|
1288 `((vc-state . ,(if (or (eq (vc-checkout-model backend (list file)) 'implicit) |
94481
ad6c174910db
Make `checkout-model' apply to filesets.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94478
diff
changeset
|
1289 (not writable)) |
94805
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
1290 (if (vc-call-backend backend 'latest-on-branch-p file) |
94481
ad6c174910db
Make `checkout-model' apply to filesets.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94478
diff
changeset
|
1291 'up-to-date |
94521
2a61c5f918a5
Change 'needs-patch to 'needs-update.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94520
diff
changeset
|
1292 'needs-update) |
94481
ad6c174910db
Make `checkout-model' apply to filesets.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94478
diff
changeset
|
1293 'edited)) |
ad6c174910db
Make `checkout-model' apply to filesets.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94478
diff
changeset
|
1294 (vc-checkout-time . ,(nth 5 (file-attributes file)))))) |
38606
32e167f31eb6
(vc-checkout-hook): New hook.
André Spiegel <spiegel@gnu.org>
parents:
38595
diff
changeset
|
1295 (vc-resynch-buffer file t t) |
32e167f31eb6
(vc-checkout-hook): New hook.
André Spiegel <spiegel@gnu.org>
parents:
38595
diff
changeset
|
1296 (run-hooks 'vc-checkout-hook)) |
904 | 1297 |
94805
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
1298 (defun vc-mark-resolved (backend files) |
93956
bfc762f0b49c
* vc-hooks.el (vc-state): Add new state `conflict'.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93934
diff
changeset
|
1299 (with-vc-properties |
bfc762f0b49c
* vc-hooks.el (vc-state): Add new state `conflict'.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93934
diff
changeset
|
1300 files |
94805
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
1301 (vc-call-backend backend 'mark-resolved files) |
93956
bfc762f0b49c
* vc-hooks.el (vc-state): Add new state `conflict'.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93934
diff
changeset
|
1302 ;; XXX: Is this TRTD? Might not be. |
bfc762f0b49c
* vc-hooks.el (vc-state): Add new state `conflict'.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93934
diff
changeset
|
1303 `((vc-state . edited)))) |
bfc762f0b49c
* vc-hooks.el (vc-state): Add new state `conflict'.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93934
diff
changeset
|
1304 |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1305 (defun vc-steal-lock (file rev owner) |
31404
f2ab9420390f
2000-09-05 Stefan Monnier <monnier@cs.yale.edu>
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
31387
diff
changeset
|
1306 "Steal the lock on FILE." |
9044
5ddb0e0adb08
(vc-backend-checkout): Add if-statements to the shell cmds
Richard M. Stallman <rms@gnu.org>
parents:
8726
diff
changeset
|
1307 (let (file-description) |
5ddb0e0adb08
(vc-backend-checkout): Add if-statements to the shell cmds
Richard M. Stallman <rms@gnu.org>
parents:
8726
diff
changeset
|
1308 (if rev |
5ddb0e0adb08
(vc-backend-checkout): Add if-statements to the shell cmds
Richard M. Stallman <rms@gnu.org>
parents:
8726
diff
changeset
|
1309 (setq file-description (format "%s:%s" file rev)) |
5ddb0e0adb08
(vc-backend-checkout): Add if-statements to the shell cmds
Richard M. Stallman <rms@gnu.org>
parents:
8726
diff
changeset
|
1310 (setq file-description file)) |
94207
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1311 (when (not (yes-or-no-p (format "Steal the lock on %s from %s? " |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1312 file-description owner))) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1313 (error "Steal canceled")) |
42548
1cf3624d80ac
(vc-branch-part): Return nil if there's no `.'
André Spiegel <spiegel@gnu.org>
parents:
42205
diff
changeset
|
1314 (message "Stealing lock on %s..." file) |
1cf3624d80ac
(vc-branch-part): Return nil if there's no `.'
André Spiegel <spiegel@gnu.org>
parents:
42205
diff
changeset
|
1315 (with-vc-properties |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1316 (list file) |
42548
1cf3624d80ac
(vc-branch-part): Return nil if there's no `.'
André Spiegel <spiegel@gnu.org>
parents:
42205
diff
changeset
|
1317 (vc-call steal-lock file rev) |
1cf3624d80ac
(vc-branch-part): Return nil if there's no `.'
André Spiegel <spiegel@gnu.org>
parents:
42205
diff
changeset
|
1318 `((vc-state . edited))) |
1cf3624d80ac
(vc-branch-part): Return nil if there's no `.'
André Spiegel <spiegel@gnu.org>
parents:
42205
diff
changeset
|
1319 (vc-resynch-buffer file t t) |
1cf3624d80ac
(vc-branch-part): Return nil if there's no `.'
André Spiegel <spiegel@gnu.org>
parents:
42205
diff
changeset
|
1320 (message "Stealing lock on %s...done" file) |
1cf3624d80ac
(vc-branch-part): Return nil if there's no `.'
André Spiegel <spiegel@gnu.org>
parents:
42205
diff
changeset
|
1321 ;; Write mail after actually stealing, because if the stealing |
1cf3624d80ac
(vc-branch-part): Return nil if there's no `.'
André Spiegel <spiegel@gnu.org>
parents:
42205
diff
changeset
|
1322 ;; goes wrong, we don't want to send any mail. |
1cf3624d80ac
(vc-branch-part): Return nil if there's no `.'
André Spiegel <spiegel@gnu.org>
parents:
42205
diff
changeset
|
1323 (compose-mail owner (format "Stolen lock on %s" file-description)) |
9044
5ddb0e0adb08
(vc-backend-checkout): Add if-statements to the shell cmds
Richard M. Stallman <rms@gnu.org>
parents:
8726
diff
changeset
|
1324 (setq default-directory (expand-file-name "~/")) |
5ddb0e0adb08
(vc-backend-checkout): Add if-statements to the shell cmds
Richard M. Stallman <rms@gnu.org>
parents:
8726
diff
changeset
|
1325 (goto-char (point-max)) |
5ddb0e0adb08
(vc-backend-checkout): Add if-statements to the shell cmds
Richard M. Stallman <rms@gnu.org>
parents:
8726
diff
changeset
|
1326 (insert |
5ddb0e0adb08
(vc-backend-checkout): Add if-statements to the shell cmds
Richard M. Stallman <rms@gnu.org>
parents:
8726
diff
changeset
|
1327 (format "I stole the lock on %s, " file-description) |
5ddb0e0adb08
(vc-backend-checkout): Add if-statements to the shell cmds
Richard M. Stallman <rms@gnu.org>
parents:
8726
diff
changeset
|
1328 (current-time-string) |
5ddb0e0adb08
(vc-backend-checkout): Add if-statements to the shell cmds
Richard M. Stallman <rms@gnu.org>
parents:
8726
diff
changeset
|
1329 ".\n") |
5ddb0e0adb08
(vc-backend-checkout): Add if-statements to the shell cmds
Richard M. Stallman <rms@gnu.org>
parents:
8726
diff
changeset
|
1330 (message "Please explain why you stole the lock. Type C-c C-c when done."))) |
904 | 1331 |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1332 (defun vc-checkin (files &optional rev comment initial-contents) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1333 "Check in FILES. |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1334 The optional argument REV may be a string specifying the new revision |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1335 level (if nil increment the current level). COMMENT is a comment |
32054
fef29341db1c
(vc-next-action-on-file): Update mode line only if file is visited.
André Spiegel <spiegel@gnu.org>
parents:
31836
diff
changeset
|
1336 string; if omitted, a buffer is popped up to accept a comment. If |
fef29341db1c
(vc-next-action-on-file): Update mode line only if file is visited.
André Spiegel <spiegel@gnu.org>
parents:
31836
diff
changeset
|
1337 INITIAL-CONTENTS is non-nil, then COMMENT is used as the initial contents |
fef29341db1c
(vc-next-action-on-file): Update mode line only if file is visited.
André Spiegel <spiegel@gnu.org>
parents:
31836
diff
changeset
|
1338 of the log entry buffer. |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1339 |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1340 If `vc-keep-workfiles' is nil, FILE is deleted afterwards, provided |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1341 that the version control system supports this mode of operation. |
20967 | 1342 |
94579
dca2377770e7
Move context-preservation machinery.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94576
diff
changeset
|
1343 Runs the normal hooks `vc-before-checkin-hook' and `vc-checkin-hook'." |
dca2377770e7
Move context-preservation machinery.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94576
diff
changeset
|
1344 (when vc-before-checkin-hook |
dca2377770e7
Move context-preservation machinery.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94576
diff
changeset
|
1345 (run-hooks 'vc-before-checkin-hook)) |
94576
7de38dedf0a6
Move the command-closure machinery to vc-dispatcher.el.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94573
diff
changeset
|
1346 (vc-start-logentry |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1347 files rev comment initial-contents |
31565
de4e73d77734
(vc-dired-listing-switches): Fix :version.
Dave Love <fx@gnu.org>
parents:
31520
diff
changeset
|
1348 "Enter a change comment." |
95018
2253b8d4def6
More elimination of buffer name dependencies.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
95017
diff
changeset
|
1349 "*VC-log*" |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1350 (lambda (files rev comment) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1351 (message "Checking in %s..." (vc-delistify files)) |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1352 ;; "This log message intentionally left almost blank". |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1353 ;; RCS 5.7 gripes about white-space-only comments too. |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1354 (or (and comment (string-match "[^\t\n ]" comment)) |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1355 (setq comment "*** empty log message ***")) |
32344
f91ef1141a75
(with-vc-file, edit-vc-file): Specify `indent-function' property.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
32310
diff
changeset
|
1356 (with-vc-properties |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1357 files |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1358 ;; We used to change buffers to get local value of vc-checkin-switches, |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1359 ;; but 'the' local buffer is not a well-defined concept for filesets. |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1360 (progn |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1361 (vc-call checkin files rev comment) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1362 (mapc 'vc-delete-automatic-version-backups files)) |
32189
921a2e8fa97e
(with-vc-properties): Use conses rather than length-2 lists.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32126
diff
changeset
|
1363 `((vc-state . up-to-date) |
921a2e8fa97e
(with-vc-properties): Use conses rather than length-2 lists.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32126
diff
changeset
|
1364 (vc-checkout-time . ,(nth 5 (file-attributes file))) |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1365 (vc-working-revision . nil))) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1366 (message "Checking in %s...done" (vc-delistify files))) |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1367 'vc-checkin-hook)) |
904 | 1368 |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1369 ;;; Additional entry points for examining version histories |
904 | 1370 |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1371 ;; (defun vc-default-diff-tree (backend dir rev1 rev2) |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1372 ;; "List differences for all registered files at and below DIR. |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1373 ;; The meaning of REV1 and REV2 is the same as for `vc-revision-diff'." |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1374 ;; ;; This implementation does an explicit tree walk, and calls |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1375 ;; ;; vc-BACKEND-diff directly for each file. An optimization |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1376 ;; ;; would be to use `vc-diff-internal', so that diffs can be local, |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1377 ;; ;; and to call it only for files that are actually changed. |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1378 ;; ;; However, this is expensive for some backends, and so it is left |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1379 ;; ;; to backend-specific implementations. |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1380 ;; (setq default-directory dir) |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1381 ;; (vc-file-tree-walk |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1382 ;; default-directory |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1383 ;; (lambda (f) |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1384 ;; (vc-exec-after |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1385 ;; `(let ((coding-system-for-read (vc-coding-system-for-diff ',f))) |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1386 ;; (message "Looking at %s" ',f) |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1387 ;; (vc-call-backend ',(vc-backend f) |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1388 ;; 'diff (list ',f) ',rev1 ',rev2)))))) |
78359
2dd5d799a16d
* vc-git.el: (vc-directory-exclusion-list, vc-handled-backends):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78236
diff
changeset
|
1389 |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1390 (defun vc-coding-system-for-diff (file) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1391 "Return the coding system for reading diff output for FILE." |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1392 (or coding-system-for-read |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1393 ;; if we already have this file open, |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1394 ;; use the buffer's coding system |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1395 (let ((buf (find-buffer-visiting file))) |
94207
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1396 (when buf (with-current-buffer buf |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1397 buffer-file-coding-system))) |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1398 ;; otherwise, try to find one based on the file name |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1399 (car (find-operation-coding-system 'insert-file-contents file)) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1400 ;; and a final fallback |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1401 'undecided)) |
904 | 1402 |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1403 (defun vc-switches (backend op) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1404 (let ((switches |
94207
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1405 (or (when backend |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1406 (let ((sym (vc-make-backend-sym |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1407 backend (intern (concat (symbol-name op) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1408 "-switches"))))) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1409 (when (boundp sym) (symbol-value sym)))) |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1410 (let ((sym (intern (format "vc-%s-switches" (symbol-name op))))) |
94207
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1411 (when (boundp sym) (symbol-value sym))) |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1412 (cond |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1413 ((eq op 'diff) diff-switches))))) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1414 (if (stringp switches) (list switches) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1415 ;; If not a list, return nil. |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1416 ;; This is so we can set vc-diff-switches to t to override |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1417 ;; any switches in diff-switches. |
94207
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1418 (when (listp switches) switches)))) |
904 | 1419 |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1420 ;; Old def for compatibility with Emacs-21.[123]. |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1421 (defmacro vc-diff-switches-list (backend) `(vc-switches ',backend 'diff)) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1422 (make-obsolete 'vc-diff-switches-list 'vc-switches "22.1") |
54618
7cd50dab9d3d
(vc-version-diff, vc-default-diff-tree): Change `rel' -> `rev'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
54586
diff
changeset
|
1423 |
91698
c22d8444f043
Make vc-diff-internal messages consistent across many cases.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
88111
diff
changeset
|
1424 (defun vc-diff-finish (buffer messages) |
85364
f8d1bb788744
(vc-diff-sentinel, vc-diff-internal): Revert some changes in the
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85178
diff
changeset
|
1425 ;; The empty sync output case has already been handled, so the only |
87931
9f4909ced989
Handle dead buffers in async filters/sentinels.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
87930
diff
changeset
|
1426 ;; possibility of an empty output is for an async process. |
91698
c22d8444f043
Make vc-diff-internal messages consistent across many cases.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
88111
diff
changeset
|
1427 (when (buffer-live-p buffer) |
c22d8444f043
Make vc-diff-internal messages consistent across many cases.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
88111
diff
changeset
|
1428 (let ((window (get-buffer-window buffer t)) |
c22d8444f043
Make vc-diff-internal messages consistent across many cases.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
88111
diff
changeset
|
1429 (emptyp (zerop (buffer-size buffer)))) |
c22d8444f043
Make vc-diff-internal messages consistent across many cases.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
88111
diff
changeset
|
1430 (with-current-buffer buffer |
c22d8444f043
Make vc-diff-internal messages consistent across many cases.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
88111
diff
changeset
|
1431 (and messages emptyp |
c22d8444f043
Make vc-diff-internal messages consistent across many cases.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
88111
diff
changeset
|
1432 (let ((inhibit-read-only t)) |
c22d8444f043
Make vc-diff-internal messages consistent across many cases.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
88111
diff
changeset
|
1433 (insert (cdr messages) ".\n") |
c22d8444f043
Make vc-diff-internal messages consistent across many cases.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
88111
diff
changeset
|
1434 (message "%s" (cdr messages)))) |
c22d8444f043
Make vc-diff-internal messages consistent across many cases.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
88111
diff
changeset
|
1435 (goto-char (point-min)) |
87931
9f4909ced989
Handle dead buffers in async filters/sentinels.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
87930
diff
changeset
|
1436 (when window |
91698
c22d8444f043
Make vc-diff-internal messages consistent across many cases.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
88111
diff
changeset
|
1437 (shrink-window-if-larger-than-buffer window))) |
c22d8444f043
Make vc-diff-internal messages consistent across many cases.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
88111
diff
changeset
|
1438 (when (and messages (not emptyp)) |
c22d8444f043
Make vc-diff-internal messages consistent across many cases.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
88111
diff
changeset
|
1439 (message "%sdone" (car messages)))))) |
40124
9031427edfa3
(vc-diff-internal, vc-coding-system-for-diff, vc-default-diff-tree):
André Spiegel <spiegel@gnu.org>
parents:
39427
diff
changeset
|
1440 |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1441 (defvar vc-diff-added-files nil |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1442 "If non-nil, diff added files by comparing them to /dev/null.") |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1443 |
94240
9f1f284d17b3
(vc-next-action): Do not consider directories when
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94214
diff
changeset
|
1444 (defun vc-diff-internal (async vc-fileset rev1 rev2 &optional verbose) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1445 "Report diffs between two revisions of a fileset. |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1446 Diff output goes to the *vc-diff* buffer. The function |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1447 returns t if the buffer had changes, nil otherwise." |
94984
b8d24d4a4bdc
Eliminate exoensive (vc-expand-dirs) calls.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94974
diff
changeset
|
1448 (let* ((files (cadr vc-fileset)) |
94240
9f1f284d17b3
(vc-next-action): Do not consider directories when
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94214
diff
changeset
|
1449 (messages (cons (format "Finding changes in %s..." |
91698
c22d8444f043
Make vc-diff-internal messages consistent across many cases.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
88111
diff
changeset
|
1450 (vc-delistify files)) |
c22d8444f043
Make vc-diff-internal messages consistent across many cases.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
88111
diff
changeset
|
1451 (format "No changes between %s and %s" |
c22d8444f043
Make vc-diff-internal messages consistent across many cases.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
88111
diff
changeset
|
1452 (or rev1 "working revision") |
c22d8444f043
Make vc-diff-internal messages consistent across many cases.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
88111
diff
changeset
|
1453 (or rev2 "workfile")))) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1454 ;; Set coding system based on the first file. It's a kluge, |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1455 ;; but the only way to set it for each file included would |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1456 ;; be to call the back end separately for each file. |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1457 (coding-system-for-read |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1458 (if files (vc-coding-system-for-diff (car files)) 'undecided))) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1459 (vc-setup-buffer "*vc-diff*") |
91698
c22d8444f043
Make vc-diff-internal messages consistent across many cases.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
88111
diff
changeset
|
1460 (message "%s" (car messages)) |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1461 ;; Many backends don't handle well the case of a file that has been |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1462 ;; added but not yet committed to the repo (notably CVS and Subversion). |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1463 ;; Do that work here so the backends don't have to futz with it. --ESR |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1464 ;; |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1465 ;; Actually most backends (including CVS) have options to control the |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1466 ;; behavior since which one is better depends on the user and on the |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1467 ;; situation). Worse yet: this code does not handle the case where |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1468 ;; `file' is a directory which contains added files. |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1469 ;; I made it conditional on vc-diff-added-files but it should probably |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1470 ;; just be removed (or copied/moved to specific backends). --Stef. |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1471 (when vc-diff-added-files |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1472 (let ((filtered '())) |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1473 (dolist (file files) |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1474 (if (or (file-directory-p file) |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1475 (not (string= (vc-working-revision file) "0"))) |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1476 (push file filtered) |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1477 ;; This file is added but not yet committed; |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1478 ;; there is no master file to diff against. |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1479 (if (or rev1 rev2) |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1480 (error "No revisions of %s exist" file) |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1481 ;; We regard this as "changed". |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1482 ;; Diff it against /dev/null. |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1483 (apply 'vc-do-command "*vc-diff*" |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1484 1 "diff" file |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1485 (append (vc-switches nil 'diff) '("/dev/null")))))) |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1486 (setq files (nreverse filtered)))) |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1487 (let ((vc-disable-async-diff (not async))) |
94240
9f1f284d17b3
(vc-next-action): Do not consider directories when
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94214
diff
changeset
|
1488 (vc-call-backend (car vc-fileset) 'diff files rev1 rev2 "*vc-diff*")) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1489 (set-buffer "*vc-diff*") |
85364
f8d1bb788744
(vc-diff-sentinel, vc-diff-internal): Revert some changes in the
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85178
diff
changeset
|
1490 (if (and (zerop (buffer-size)) |
f8d1bb788744
(vc-diff-sentinel, vc-diff-internal): Revert some changes in the
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85178
diff
changeset
|
1491 (not (get-buffer-process (current-buffer)))) |
f8d1bb788744
(vc-diff-sentinel, vc-diff-internal): Revert some changes in the
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85178
diff
changeset
|
1492 ;; Treat this case specially so as not to pop the buffer. |
f8d1bb788744
(vc-diff-sentinel, vc-diff-internal): Revert some changes in the
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85178
diff
changeset
|
1493 (progn |
91698
c22d8444f043
Make vc-diff-internal messages consistent across many cases.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
88111
diff
changeset
|
1494 (message "%s" (cdr messages)) |
85364
f8d1bb788744
(vc-diff-sentinel, vc-diff-internal): Revert some changes in the
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85178
diff
changeset
|
1495 nil) |
85972
51aa47312c4b
* ediff-init.el (ediff-xemacs-p, ediff-emacs-p): Remove.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85794
diff
changeset
|
1496 (diff-mode) |
86002
613df1ba1584
* vc.el (vc-diff-internal): Make the *vc-diff* buffer read only.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85972
diff
changeset
|
1497 ;; Make the *vc-diff* buffer read only, the diff-mode key |
613df1ba1584
* vc.el (vc-diff-internal): Make the *vc-diff* buffer read only.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85972
diff
changeset
|
1498 ;; bindings are nicer for read only buffers. pcl-cvs does the |
613df1ba1584
* vc.el (vc-diff-internal): Make the *vc-diff* buffer read only.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85972
diff
changeset
|
1499 ;; same thing. |
613df1ba1584
* vc.el (vc-diff-internal): Make the *vc-diff* buffer read only.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85972
diff
changeset
|
1500 (setq buffer-read-only t) |
91698
c22d8444f043
Make vc-diff-internal messages consistent across many cases.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
88111
diff
changeset
|
1501 (vc-exec-after `(vc-diff-finish ,(current-buffer) ',(when verbose |
c22d8444f043
Make vc-diff-internal messages consistent across many cases.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
88111
diff
changeset
|
1502 messages))) |
86100
ac69f23a84ce
(vc-diff-internal): Pop-to-buffer later.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86055
diff
changeset
|
1503 ;; Display the buffer, but at the end because it can change point. |
ac69f23a84ce
(vc-diff-internal): Pop-to-buffer later.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86055
diff
changeset
|
1504 (pop-to-buffer (current-buffer)) |
85364
f8d1bb788744
(vc-diff-sentinel, vc-diff-internal): Revert some changes in the
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85178
diff
changeset
|
1505 ;; In the async case, we return t even if there are no differences |
f8d1bb788744
(vc-diff-sentinel, vc-diff-internal): Revert some changes in the
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85178
diff
changeset
|
1506 ;; because we don't know that yet. |
f8d1bb788744
(vc-diff-sentinel, vc-diff-internal): Revert some changes in the
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85178
diff
changeset
|
1507 t))) |
40124
9031427edfa3
(vc-diff-internal, vc-coding-system-for-diff, vc-default-diff-tree):
André Spiegel <spiegel@gnu.org>
parents:
39427
diff
changeset
|
1508 |
927 | 1509 ;;;###autoload |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1510 (defun vc-version-diff (files rev1 rev2) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1511 "Report diffs between revisions of the fileset in the repository history." |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1512 (interactive |
96046
422d57d537d7
(vc-deduce-fileset): Add arg `only-files'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95966
diff
changeset
|
1513 (let* ((vc-fileset (vc-deduce-fileset t)) ;FIXME: why t? --Stef |
94984
b8d24d4a4bdc
Eliminate exoensive (vc-expand-dirs) calls.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94974
diff
changeset
|
1514 (files (cadr vc-fileset)) |
94805
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
1515 (backend (car vc-fileset)) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1516 (first (car files)) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1517 (completion-table |
94805
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
1518 (vc-call-backend backend 'revision-completion-table files)) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1519 (rev1-default nil) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1520 (rev2-default nil)) |
19055
5439070e5d46
(vc-backend-checkin): For CVS, forget the checkout model after commit.
Richard M. Stallman <rms@gnu.org>
parents:
18857
diff
changeset
|
1521 (cond |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1522 ;; someday we may be able to do revision completion on non-singleton |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1523 ;; filesets, but not yet. |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1524 ((/= (length files) 1) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1525 nil) |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1526 ;; if it's a directory, don't supply any revision default |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1527 ((file-directory-p first) |
19055
5439070e5d46
(vc-backend-checkin): For CVS, forget the checkout model after commit.
Richard M. Stallman <rms@gnu.org>
parents:
18857
diff
changeset
|
1528 nil) |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1529 ;; if the file is not up-to-date, use working revision as older revision |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1530 ((not (vc-up-to-date-p first)) |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1531 (setq rev1-default (vc-working-revision first))) |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1532 ;; if the file is not locked, use last and previous revisions as defaults |
19055
5439070e5d46
(vc-backend-checkin): For CVS, forget the checkout model after commit.
Richard M. Stallman <rms@gnu.org>
parents:
18857
diff
changeset
|
1533 (t |
94805
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
1534 (setq rev1-default (vc-call-backend backend 'previous-revision first |
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
1535 (vc-working-revision first))) |
94207
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1536 (when (string= rev1-default "") (setq rev1-default nil)) |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1537 (setq rev2-default (vc-working-revision first)))) |
19055
5439070e5d46
(vc-backend-checkin): For CVS, forget the checkout model after commit.
Richard M. Stallman <rms@gnu.org>
parents:
18857
diff
changeset
|
1538 ;; construct argument list |
78359
2dd5d799a16d
* vc-git.el: (vc-directory-exclusion-list, vc-handled-backends):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78236
diff
changeset
|
1539 (let* ((rev1-prompt (if rev1-default |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1540 (concat "Older revision (default " |
78359
2dd5d799a16d
* vc-git.el: (vc-directory-exclusion-list, vc-handled-backends):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78236
diff
changeset
|
1541 rev1-default "): ") |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1542 "Older revision: ")) |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1543 (rev2-prompt (concat "Newer revision (default " |
78359
2dd5d799a16d
* vc-git.el: (vc-directory-exclusion-list, vc-handled-backends):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78236
diff
changeset
|
1544 (or rev2-default "current source") "): ")) |
2dd5d799a16d
* vc-git.el: (vc-directory-exclusion-list, vc-handled-backends):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78236
diff
changeset
|
1545 (rev1 (if completion-table |
2dd5d799a16d
* vc-git.el: (vc-directory-exclusion-list, vc-handled-backends):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78236
diff
changeset
|
1546 (completing-read rev1-prompt completion-table |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1547 nil nil nil nil rev1-default) |
78359
2dd5d799a16d
* vc-git.el: (vc-directory-exclusion-list, vc-handled-backends):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78236
diff
changeset
|
1548 (read-string rev1-prompt nil nil rev1-default))) |
2dd5d799a16d
* vc-git.el: (vc-directory-exclusion-list, vc-handled-backends):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78236
diff
changeset
|
1549 (rev2 (if completion-table |
2dd5d799a16d
* vc-git.el: (vc-directory-exclusion-list, vc-handled-backends):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78236
diff
changeset
|
1550 (completing-read rev2-prompt completion-table |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1551 nil nil nil nil rev2-default) |
78359
2dd5d799a16d
* vc-git.el: (vc-directory-exclusion-list, vc-handled-backends):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78236
diff
changeset
|
1552 (read-string rev2-prompt nil nil rev2-default)))) |
94207
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1553 (when (string= rev1 "") (setq rev1 nil)) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1554 (when (string= rev2 "") (setq rev2 nil)) |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1555 (list files rev1 rev2)))) |
94778
b9687393def1
Large simplification in (vc-deduce-fileset) logic.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94729
diff
changeset
|
1556 ;; All that was just so we could do argument completion! |
94240
9f1f284d17b3
(vc-next-action): Do not consider directories when
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94214
diff
changeset
|
1557 (when (and (not rev1) rev2) |
9f1f284d17b3
(vc-next-action): Do not consider directories when
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94214
diff
changeset
|
1558 (error "Not a valid revision range.")) |
94778
b9687393def1
Large simplification in (vc-deduce-fileset) logic.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94729
diff
changeset
|
1559 ;; Yes, it's painful to call (vc-deduce-fileset) again. Alas, the |
b9687393def1
Large simplification in (vc-deduce-fileset) logic.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94729
diff
changeset
|
1560 ;; placement rules for (interactive) don't actually leave us a choice. |
b9687393def1
Large simplification in (vc-deduce-fileset) logic.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94729
diff
changeset
|
1561 (vc-diff-internal t (vc-deduce-fileset) rev1 rev2 (interactive-p))) |
40124
9031427edfa3
(vc-diff-internal, vc-coding-system-for-diff, vc-default-diff-tree):
André Spiegel <spiegel@gnu.org>
parents:
39427
diff
changeset
|
1562 |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1563 ;; (defun vc-contains-version-controlled-file (dir) |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1564 ;; "Return t if DIR contains a version-controlled file, nil otherwise." |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1565 ;; (catch 'found |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1566 ;; (mapc (lambda (f) (and (not (file-directory-p f)) (vc-backend f) (throw 'found 't))) (directory-files dir)) |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1567 ;; nil)) |
85165
9b4cc51391e5
Address an edge case in vc-diff. This is an experimental fix and may change.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85139
diff
changeset
|
1568 |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1569 ;;;###autoload |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1570 (defun vc-diff (historic &optional not-urgent) |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1571 "Display diffs between file revisions. |
85165
9b4cc51391e5
Address an edge case in vc-diff. This is an experimental fix and may change.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85139
diff
changeset
|
1572 Normally this compares the currently selected fileset with their |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1573 working revisions. With a prefix argument HISTORIC, it reads two revision |
85165
9b4cc51391e5
Address an edge case in vc-diff. This is an experimental fix and may change.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85139
diff
changeset
|
1574 designators specifying which revisions to compare. |
9b4cc51391e5
Address an edge case in vc-diff. This is an experimental fix and may change.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85139
diff
changeset
|
1575 |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1576 The optional argument NOT-URGENT non-nil means it is ok to say no to |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1577 saving the buffer." |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1578 (interactive (list current-prefix-arg t)) |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1579 (if historic |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1580 (call-interactively 'vc-version-diff) |
94240
9f1f284d17b3
(vc-next-action): Do not consider directories when
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94214
diff
changeset
|
1581 (when buffer-file-name (vc-buffer-sync not-urgent)) |
94778
b9687393def1
Large simplification in (vc-deduce-fileset) logic.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94729
diff
changeset
|
1582 (vc-diff-internal t (vc-deduce-fileset) nil nil (interactive-p)))) |
40124
9031427edfa3
(vc-diff-internal, vc-coding-system-for-diff, vc-default-diff-tree):
André Spiegel <spiegel@gnu.org>
parents:
39427
diff
changeset
|
1583 |
4725
126cf4bdfd35
(vc-version-other-window): New function.
Paul Eggert <eggert@twinsun.com>
parents:
4684
diff
changeset
|
1584 ;;;###autoload |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1585 (defun vc-revision-other-window (rev) |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1586 "Visit revision REV of the current file in another window. |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1587 If the current file is named `F', the revision is named `F.~REV~'. |
41071 | 1588 If `F.~REV~' already exists, use it instead of checking it out again." |
78359
2dd5d799a16d
* vc-git.el: (vc-directory-exclusion-list, vc-handled-backends):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78236
diff
changeset
|
1589 (interactive |
2dd5d799a16d
* vc-git.el: (vc-directory-exclusion-list, vc-handled-backends):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78236
diff
changeset
|
1590 (save-current-buffer |
2dd5d799a16d
* vc-git.el: (vc-directory-exclusion-list, vc-handled-backends):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78236
diff
changeset
|
1591 (vc-ensure-vc-buffer) |
2dd5d799a16d
* vc-git.el: (vc-directory-exclusion-list, vc-handled-backends):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78236
diff
changeset
|
1592 (let ((completion-table |
2dd5d799a16d
* vc-git.el: (vc-directory-exclusion-list, vc-handled-backends):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78236
diff
changeset
|
1593 (vc-call revision-completion-table buffer-file-name)) |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1594 (prompt "Revision to visit (default is working revision): ")) |
78359
2dd5d799a16d
* vc-git.el: (vc-directory-exclusion-list, vc-handled-backends):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78236
diff
changeset
|
1595 (list |
2dd5d799a16d
* vc-git.el: (vc-directory-exclusion-list, vc-handled-backends):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78236
diff
changeset
|
1596 (if completion-table |
2dd5d799a16d
* vc-git.el: (vc-directory-exclusion-list, vc-handled-backends):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78236
diff
changeset
|
1597 (completing-read prompt completion-table) |
2dd5d799a16d
* vc-git.el: (vc-directory-exclusion-list, vc-handled-backends):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78236
diff
changeset
|
1598 (read-string prompt)))))) |
21366
e7b64d0b3b3d
(vc-ensure-vc-buffer): New function.
André Spiegel <spiegel@gnu.org>
parents:
21357
diff
changeset
|
1599 (vc-ensure-vc-buffer) |
32888
78063b725d3f
(vc-version-other-window): Bind `file'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32748
diff
changeset
|
1600 (let* ((file buffer-file-name) |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1601 (revision (if (string-equal rev "") |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1602 (vc-working-revision file) |
41556
678f91af978a
(vc-find-version): New function.
André Spiegel <spiegel@gnu.org>
parents:
41395
diff
changeset
|
1603 rev))) |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1604 (switch-to-buffer-other-window (vc-find-revision file revision)))) |
41556
678f91af978a
(vc-find-version): New function.
André Spiegel <spiegel@gnu.org>
parents:
41395
diff
changeset
|
1605 |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1606 (defun vc-find-revision (file revision) |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1607 "Read REVISION of FILE into a buffer and return the buffer." |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1608 (let ((automatic-backup (vc-version-backup-file-name file revision)) |
47796
cf312195338d
(vc-find-version): Use the new backend op `find-version'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47781
diff
changeset
|
1609 (filebuf (or (get-file-buffer file) (current-buffer))) |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1610 (filename (vc-version-backup-file-name file revision 'manual))) |
47796
cf312195338d
(vc-find-version): Use the new backend op `find-version'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47781
diff
changeset
|
1611 (unless (file-exists-p filename) |
32748
e2cb0aef151a
(vc-checkout): Added `-p' suffix in call to vc-make-version-backups-p;
André Spiegel <spiegel@gnu.org>
parents:
32344
diff
changeset
|
1612 (if (file-exists-p automatic-backup) |
47796
cf312195338d
(vc-find-version): Use the new backend op `find-version'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47781
diff
changeset
|
1613 (rename-file automatic-backup filename nil) |
cf312195338d
(vc-find-version): Use the new backend op `find-version'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47781
diff
changeset
|
1614 (message "Checking out %s..." filename) |
cf312195338d
(vc-find-version): Use the new backend op `find-version'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47781
diff
changeset
|
1615 (with-current-buffer filebuf |
cf312195338d
(vc-find-version): Use the new backend op `find-version'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47781
diff
changeset
|
1616 (let ((failed t)) |
cf312195338d
(vc-find-version): Use the new backend op `find-version'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47781
diff
changeset
|
1617 (unwind-protect |
cf312195338d
(vc-find-version): Use the new backend op `find-version'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47781
diff
changeset
|
1618 (let ((coding-system-for-read 'no-conversion) |
cf312195338d
(vc-find-version): Use the new backend op `find-version'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47781
diff
changeset
|
1619 (coding-system-for-write 'no-conversion)) |
cf312195338d
(vc-find-version): Use the new backend op `find-version'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47781
diff
changeset
|
1620 (with-temp-file filename |
cf312195338d
(vc-find-version): Use the new backend op `find-version'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47781
diff
changeset
|
1621 (let ((outbuf (current-buffer))) |
cf312195338d
(vc-find-version): Use the new backend op `find-version'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47781
diff
changeset
|
1622 ;; Change buffer to get local value of |
cf312195338d
(vc-find-version): Use the new backend op `find-version'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47781
diff
changeset
|
1623 ;; vc-checkout-switches. |
cf312195338d
(vc-find-version): Use the new backend op `find-version'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47781
diff
changeset
|
1624 (with-current-buffer filebuf |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1625 (vc-call find-revision file revision outbuf)))) |
47796
cf312195338d
(vc-find-version): Use the new backend op `find-version'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47781
diff
changeset
|
1626 (setq failed nil)) |
86248
cde7fc4f5945
(vc-find-revision): Set the parent buffer.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
86100
diff
changeset
|
1627 (when (and failed (file-exists-p filename)) |
cde7fc4f5945
(vc-find-revision): Set the parent buffer.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
86100
diff
changeset
|
1628 (delete-file filename)))) |
47796
cf312195338d
(vc-find-version): Use the new backend op `find-version'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47781
diff
changeset
|
1629 (vc-mode-line file)) |
cf312195338d
(vc-find-version): Use the new backend op `find-version'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47781
diff
changeset
|
1630 (message "Checking out %s...done" filename))) |
86248
cde7fc4f5945
(vc-find-revision): Set the parent buffer.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
86100
diff
changeset
|
1631 (let ((result-buf (find-file-noselect filename))) |
cde7fc4f5945
(vc-find-revision): Set the parent buffer.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
86100
diff
changeset
|
1632 (with-current-buffer result-buf |
86410
bca8808972f0
Delete eol whitespace; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
86370
diff
changeset
|
1633 ;; Set the parent buffer so that things like |
86248
cde7fc4f5945
(vc-find-revision): Set the parent buffer.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
86100
diff
changeset
|
1634 ;; C-x v g, C-x v l, ... etc work. |
92122
74bf6df13b6c
* vc.el (vc-find-revision): Make vc-parent-buffer local before
Dan Nicolaescu <dann@ics.uci.edu>
parents:
92093
diff
changeset
|
1635 (set (make-local-variable 'vc-parent-buffer) filebuf)) |
86248
cde7fc4f5945
(vc-find-revision): Set the parent buffer.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
86100
diff
changeset
|
1636 result-buf))) |
47796
cf312195338d
(vc-find-version): Use the new backend op `find-version'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47781
diff
changeset
|
1637 |
904 | 1638 ;; Header-insertion code |
1639 | |
927 | 1640 ;;;###autoload |
904 | 1641 (defun vc-insert-headers () |
41071 | 1642 "Insert headers into a file for use with a version control system. |
23235 | 1643 Headers desired are inserted at point, and are pulled from |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1644 the variable `vc-BACKEND-header'." |
904 | 1645 (interactive) |
21366
e7b64d0b3b3d
(vc-ensure-vc-buffer): New function.
André Spiegel <spiegel@gnu.org>
parents:
21357
diff
changeset
|
1646 (vc-ensure-vc-buffer) |
904 | 1647 (save-excursion |
1648 (save-restriction | |
1649 (widen) | |
94207
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1650 (when (or (not (vc-check-headers)) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1651 (y-or-n-p "Version headers already exist. Insert another set? ")) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1652 (let* ((delims (cdr (assq major-mode vc-comment-alist))) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1653 (comment-start-vc (or (car delims) comment-start "#")) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1654 (comment-end-vc (or (car (cdr delims)) comment-end "")) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1655 (hdsym (vc-make-backend-sym (vc-backend buffer-file-name) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1656 'header)) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1657 (hdstrings (and (boundp hdsym) (symbol-value hdsym)))) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1658 (dolist (s hdstrings) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1659 (insert comment-start-vc "\t" s "\t" |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1660 comment-end-vc "\n")) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1661 (when vc-static-header-alist |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1662 (dolist (f vc-static-header-alist) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1663 (when (string-match (car f) buffer-file-name) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1664 (insert (format (cdr f) (car hdstrings))))))))))) |
904 | 1665 |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1666 (defun vc-clear-headers (&optional file) |
31404
f2ab9420390f
2000-09-05 Stefan Monnier <monnier@cs.yale.edu>
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
31387
diff
changeset
|
1667 "Clear all version headers in the current buffer (or FILE). |
41071 | 1668 The headers are reset to their non-expanded form." |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1669 (let* ((filename (or file buffer-file-name)) |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1670 (visited (find-buffer-visiting filename)) |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1671 (backend (vc-backend filename))) |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1672 (when (vc-find-backend-function backend 'clear-headers) |
31565
de4e73d77734
(vc-dired-listing-switches): Fix :version.
Dave Love <fx@gnu.org>
parents:
31520
diff
changeset
|
1673 (if visited |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1674 (let ((context (vc-buffer-context))) |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1675 ;; save-excursion may be able to relocate point and mark |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1676 ;; properly. If it fails, vc-restore-buffer-context |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1677 ;; will give it a second try. |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1678 (save-excursion |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1679 (vc-call-backend backend 'clear-headers)) |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1680 (vc-restore-buffer-context context)) |
32058
4196f89984ce
* vc.el (vc-editable-p): Minor optimization.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32054
diff
changeset
|
1681 (set-buffer (find-file-noselect filename)) |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1682 (vc-call-backend backend 'clear-headers) |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1683 (kill-buffer filename))))) |
12872
857663042672
(vc-revert-buffer1): Split part of the function into vc-buffer-context
André Spiegel <spiegel@gnu.org>
parents:
12819
diff
changeset
|
1684 |
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:
87424
diff
changeset
|
1685 (defun vc-modify-change-comment (files rev oldcomment) |
315124ffb889
* (vc.el, vc-sccs.el, vc-rcs.el, vc-cs.el, vc-mcvs.el): Put
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
87424
diff
changeset
|
1686 "Edit the comment associated with the given files and revision." |
94576
7de38dedf0a6
Move the command-closure machinery to vc-dispatcher.el.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94573
diff
changeset
|
1687 (vc-start-logentry |
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:
87424
diff
changeset
|
1688 files rev oldcomment t |
315124ffb889
* (vc.el, vc-sccs.el, vc-rcs.el, vc-cs.el, vc-mcvs.el): Put
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
87424
diff
changeset
|
1689 "Enter a replacement change comment." |
95018
2253b8d4def6
More elimination of buffer name dependencies.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
95017
diff
changeset
|
1690 "*VC-log*" |
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:
87424
diff
changeset
|
1691 (lambda (files rev comment) |
87596
0f01cefc5aa8
Fix typo in comment. Reported by Tom Tromey <tromey@redhat.com>.
Juanma Barranquero <lekktu@gmail.com>
parents:
87590
diff
changeset
|
1692 (vc-call-backend |
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:
87424
diff
changeset
|
1693 ;; Less of a kluge than it looks like; log-view mode only passes |
315124ffb889
* (vc.el, vc-sccs.el, vc-rcs.el, vc-cs.el, vc-mcvs.el): Put
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
87424
diff
changeset
|
1694 ;; this function a singleton list. Arguments left in this form in |
87596
0f01cefc5aa8
Fix typo in comment. Reported by Tom Tromey <tromey@redhat.com>.
Juanma Barranquero <lekktu@gmail.com>
parents:
87590
diff
changeset
|
1695 ;; case the more general operation ever becomes meaningful. |
0f01cefc5aa8
Fix typo in comment. Reported by Tom Tromey <tromey@redhat.com>.
Juanma Barranquero <lekktu@gmail.com>
parents:
87590
diff
changeset
|
1696 (vc-responsible-backend (car files)) |
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:
87424
diff
changeset
|
1697 'modify-change-comment files rev 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:
87424
diff
changeset
|
1698 |
21366
e7b64d0b3b3d
(vc-ensure-vc-buffer): New function.
André Spiegel <spiegel@gnu.org>
parents:
21357
diff
changeset
|
1699 ;;;###autoload |
31404
f2ab9420390f
2000-09-05 Stefan Monnier <monnier@cs.yale.edu>
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
31387
diff
changeset
|
1700 (defun vc-merge () |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1701 "Merge changes between two revisions into the current buffer's file. |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1702 This asks for two revisions to merge from in the minibuffer. If the |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1703 first revision is a branch number, then merge all changes from that |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1704 branch. If the first revision is empty, merge news, i.e. recent changes |
31404
f2ab9420390f
2000-09-05 Stefan Monnier <monnier@cs.yale.edu>
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
31387
diff
changeset
|
1705 from the current branch. |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1706 |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1707 See Info node `Merging'." |
31404
f2ab9420390f
2000-09-05 Stefan Monnier <monnier@cs.yale.edu>
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
31387
diff
changeset
|
1708 (interactive) |
21368
37b978fc46cb
(vc-merge, vc-backend-merge): New functions.
André Spiegel <spiegel@gnu.org>
parents:
21366
diff
changeset
|
1709 (vc-ensure-vc-buffer) |
37b978fc46cb
(vc-merge, vc-backend-merge): New functions.
André Spiegel <spiegel@gnu.org>
parents:
21366
diff
changeset
|
1710 (vc-buffer-sync) |
37b978fc46cb
(vc-merge, vc-backend-merge): New functions.
André Spiegel <spiegel@gnu.org>
parents:
21366
diff
changeset
|
1711 (let* ((file buffer-file-name) |
37b978fc46cb
(vc-merge, vc-backend-merge): New functions.
André Spiegel <spiegel@gnu.org>
parents:
21366
diff
changeset
|
1712 (backend (vc-backend file)) |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1713 (state (vc-state file)) |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1714 first-revision second-revision status) |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1715 (cond |
85064
3e1b7531aa3e
Port various comments from new VC to reduce the noise in the diff.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85059
diff
changeset
|
1716 ((stringp state) ;; Locking VCses only |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1717 (error "File is locked by %s" state)) |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1718 ((not (vc-editable-p file)) |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1719 (if (y-or-n-p |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1720 "File must be checked out for merging. Check out now? ") |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1721 (vc-checkout file t) |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1722 (error "Merge aborted")))) |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1723 (setq first-revision |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1724 (read-string (concat "Branch or revision to merge from " |
65680
ed770a0a7846
2005-09-24 Emilio C. Lopes <eclig@gmx.net>
Romain Francoise <romain@orebokech.com>
parents:
65582
diff
changeset
|
1725 "(default news on current branch): "))) |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1726 (if (string= first-revision "") |
94805
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
1727 (setq status (vc-call-backend backend 'merge-news file)) |
31404
f2ab9420390f
2000-09-05 Stefan Monnier <monnier@cs.yale.edu>
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
31387
diff
changeset
|
1728 (if (not (vc-find-backend-function backend 'merge)) |
f2ab9420390f
2000-09-05 Stefan Monnier <monnier@cs.yale.edu>
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
31387
diff
changeset
|
1729 (error "Sorry, merging is not implemented for %s" backend) |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1730 (if (not (vc-branch-p first-revision)) |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1731 (setq second-revision |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1732 (read-string "Second revision: " |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1733 (concat (vc-branch-part first-revision) "."))) |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1734 ;; We want to merge an entire branch. Set revisions |
31404
f2ab9420390f
2000-09-05 Stefan Monnier <monnier@cs.yale.edu>
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
31387
diff
changeset
|
1735 ;; accordingly, so that vc-BACKEND-merge understands us. |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1736 (setq second-revision first-revision) |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1737 ;; first-revision must be the starting point of the branch |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1738 (setq first-revision (vc-branch-part first-revision))) |
94805
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
1739 (setq status (vc-call-backend backend 'merge file |
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
1740 first-revision second-revision)))) |
31404
f2ab9420390f
2000-09-05 Stefan Monnier <monnier@cs.yale.edu>
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
31387
diff
changeset
|
1741 (vc-maybe-resolve-conflicts file status "WORKFILE" "MERGE SOURCE"))) |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1742 |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1743 (defun vc-maybe-resolve-conflicts (file status &optional name-A name-B) |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1744 (vc-resynch-buffer file t (not (buffer-modified-p))) |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1745 (if (zerop status) (message "Merge successful") |
87785
8f1628da223f
* smerge-mode.el (smerge-start-session): Rename from smerge-auto.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87743
diff
changeset
|
1746 (smerge-mode 1) |
54586
c3043c1faed3
(vc-maybe-resolve-conflicts): Don't prompt the user.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
54562
diff
changeset
|
1747 (message "File contains conflicts."))) |
21368
37b978fc46cb
(vc-merge, vc-backend-merge): New functions.
André Spiegel <spiegel@gnu.org>
parents:
21366
diff
changeset
|
1748 |
37b978fc46cb
(vc-merge, vc-backend-merge): New functions.
André Spiegel <spiegel@gnu.org>
parents:
21366
diff
changeset
|
1749 ;;;###autoload |
47781
79bdd88fb006
(vc-resolve-conflicts); Typo.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47780
diff
changeset
|
1750 (defalias 'vc-resolve-conflicts 'smerge-ediff) |
21324
b0abfde79536
* vc.el (vc-resolve-conflicts): New function.
André Spiegel <spiegel@gnu.org>
parents:
21233
diff
changeset
|
1751 |
904 | 1752 ;; Named-configuration entry points |
1753 | |
95020
4da572dc4992
Snapshot primitives globally renamed to refer to tags, documentation updated.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
95018
diff
changeset
|
1754 (defun vc-tag-precondition (dir) |
41071 | 1755 "Scan the tree below DIR, looking for files not up-to-date. |
31404
f2ab9420390f
2000-09-05 Stefan Monnier <monnier@cs.yale.edu>
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
31387
diff
changeset
|
1756 If any file is not up-to-date, return the name of the first such file. |
95020
4da572dc4992
Snapshot primitives globally renamed to refer to tags, documentation updated.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
95018
diff
changeset
|
1757 \(This means, neither tag creation nor retrieval is allowed.\) |
31404
f2ab9420390f
2000-09-05 Stefan Monnier <monnier@cs.yale.edu>
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
31387
diff
changeset
|
1758 If one or more of the files are currently visited, return `visited'. |
f2ab9420390f
2000-09-05 Stefan Monnier <monnier@cs.yale.edu>
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
31387
diff
changeset
|
1759 Otherwise, return nil." |
12714
192f537bca2a
(vc-resynch-buffer): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12589
diff
changeset
|
1760 (let ((status nil)) |
192f537bca2a
(vc-resynch-buffer): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12589
diff
changeset
|
1761 (catch 'vc-locked-example |
192f537bca2a
(vc-resynch-buffer): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12589
diff
changeset
|
1762 (vc-file-tree-walk |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1763 dir |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1764 (lambda (f) |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1765 (if (not (vc-up-to-date-p f)) (throw 'vc-locked-example f) |
94207
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1766 (when (get-file-buffer f) (setq status 'visited))))) |
12714
192f537bca2a
(vc-resynch-buffer): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12589
diff
changeset
|
1767 status))) |
904 | 1768 |
927 | 1769 ;;;###autoload |
95020
4da572dc4992
Snapshot primitives globally renamed to refer to tags, documentation updated.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
95018
diff
changeset
|
1770 (defun vc-create-tag (dir name branchp) |
4da572dc4992
Snapshot primitives globally renamed to refer to tags, documentation updated.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
95018
diff
changeset
|
1771 "Descending recursively from DIR, make a tag called NAME. |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1772 For each registered file, the working revision becomes part of |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1773 the named configuration. If the prefix argument BRANCHP is |
95020
4da572dc4992
Snapshot primitives globally renamed to refer to tags, documentation updated.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
95018
diff
changeset
|
1774 given, the tag is made as a new branch and the files are |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1775 checked out in that new branch." |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1776 (interactive |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1777 (list (read-file-name "Directory: " default-directory default-directory t) |
95020
4da572dc4992
Snapshot primitives globally renamed to refer to tags, documentation updated.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
95018
diff
changeset
|
1778 (read-string "New tag name: ") |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1779 current-prefix-arg)) |
95020
4da572dc4992
Snapshot primitives globally renamed to refer to tags, documentation updated.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
95018
diff
changeset
|
1780 (message "Making %s... " (if branchp "branch" "tag")) |
94207
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1781 (when (file-directory-p dir) (setq dir (file-name-as-directory dir))) |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1782 (vc-call-backend (vc-responsible-backend dir) |
95020
4da572dc4992
Snapshot primitives globally renamed to refer to tags, documentation updated.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
95018
diff
changeset
|
1783 'create-tag dir name branchp) |
4da572dc4992
Snapshot primitives globally renamed to refer to tags, documentation updated.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
95018
diff
changeset
|
1784 (message "Making %s... done" (if branchp "branch" "tag"))) |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1785 |
927 | 1786 ;;;###autoload |
95020
4da572dc4992
Snapshot primitives globally renamed to refer to tags, documentation updated.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
95018
diff
changeset
|
1787 (defun vc-retrieve-tag (dir name) |
4da572dc4992
Snapshot primitives globally renamed to refer to tags, documentation updated.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
95018
diff
changeset
|
1788 "Descending recursively from DIR, retrieve the tag called NAME. |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1789 If NAME is empty, it refers to the latest revisions. |
31404
f2ab9420390f
2000-09-05 Stefan Monnier <monnier@cs.yale.edu>
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
31387
diff
changeset
|
1790 If locking is used for the files in DIR, then there must not be any |
f2ab9420390f
2000-09-05 Stefan Monnier <monnier@cs.yale.edu>
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
31387
diff
changeset
|
1791 locked files at or below DIR (but if NAME is empty, locked files are |
f2ab9420390f
2000-09-05 Stefan Monnier <monnier@cs.yale.edu>
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
31387
diff
changeset
|
1792 allowed and simply skipped)." |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1793 (interactive |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1794 (list (read-file-name "Directory: " default-directory default-directory t) |
95020
4da572dc4992
Snapshot primitives globally renamed to refer to tags, documentation updated.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
95018
diff
changeset
|
1795 (read-string "Tag name to retrieve (default latest revisions): "))) |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1796 (let ((update (yes-or-no-p "Update any affected buffers? ")) |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1797 (msg (if (or (not name) (string= name "")) |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1798 (format "Updating %s... " (abbreviate-file-name dir)) |
95020
4da572dc4992
Snapshot primitives globally renamed to refer to tags, documentation updated.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
95018
diff
changeset
|
1799 (format "Retrieving tag into %s... " |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1800 (abbreviate-file-name dir))))) |
65582
4d1085b02d64
Message format spec fixes (1)
Deepak Goel <deego@gnufans.org>
parents:
65405
diff
changeset
|
1801 (message "%s" msg) |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1802 (vc-call-backend (vc-responsible-backend dir) |
95020
4da572dc4992
Snapshot primitives globally renamed to refer to tags, documentation updated.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
95018
diff
changeset
|
1803 'retrieve-tag dir name update) |
65582
4d1085b02d64
Message format spec fixes (1)
Deepak Goel <deego@gnufans.org>
parents:
65405
diff
changeset
|
1804 (message "%s" (concat msg "done")))) |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1805 |
904 | 1806 ;; Miscellaneous other entry points |
1807 | |
927 | 1808 ;;;###autoload |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1809 (defun vc-print-log (&optional working-revision) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1810 "List the change log of the current fileset in a window. |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1811 If WORKING-REVISION is non-nil, leave the point at that revision." |
904 | 1812 (interactive) |
96046
422d57d537d7
(vc-deduce-fileset): Add arg `only-files'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95966
diff
changeset
|
1813 (let* ((vc-fileset (vc-deduce-fileset t)) ;FIXME: Why t? --Stef |
94240
9f1f284d17b3
(vc-next-action): Do not consider directories when
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94214
diff
changeset
|
1814 (backend (car vc-fileset)) |
94984
b8d24d4a4bdc
Eliminate exoensive (vc-expand-dirs) calls.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94974
diff
changeset
|
1815 (files (cadr vc-fileset)) |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1816 (working-revision (or working-revision (vc-working-revision (car files))))) |
54553
c862ab7552a4
(vc-print-log): backend-function may be a byte-compiled object, not a lambda
Sam Steingold <sds@gnu.org>
parents:
54530
diff
changeset
|
1817 ;; Don't switch to the output buffer before running the command, |
c862ab7552a4
(vc-print-log): backend-function may be a byte-compiled object, not a lambda
Sam Steingold <sds@gnu.org>
parents:
54530
diff
changeset
|
1818 ;; so that any buffer-local settings in the vc-controlled |
54463
4598019c5c85
Add new optional BUFFER argument to vc-BACKEND-print-log and
André Spiegel <spiegel@gnu.org>
parents:
54398
diff
changeset
|
1819 ;; buffer can be accessed by the command. |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1820 (vc-call-backend backend 'print-log files "*vc-change-log*") |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1821 (pop-to-buffer "*vc-change-log*") |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1822 (vc-exec-after |
40958
4b4504c5aa56
* vc.el (vc-print-log): Bind `inhibit-read-only' to t before and
Sam Steingold <sds@gnu.org>
parents:
40850
diff
changeset
|
1823 `(let ((inhibit-read-only t)) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1824 (vc-call-backend ',backend 'log-view-mode) |
95966
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95946
diff
changeset
|
1825 (set (make-local-variable 'log-view-vc-backend) ',backend) |
054335cbee3d
* log-view.el (log-view-diff-changeset): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95946
diff
changeset
|
1826 (set (make-local-variable 'log-view-vc-fileset) ',files) |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1827 (goto-char (point-max)) (forward-line -1) |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1828 (while (looking-at "=*\n") |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1829 (delete-char (- (match-end 0) (match-beginning 0))) |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1830 (forward-line -1)) |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1831 (goto-char (point-min)) |
94207
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1832 (when (looking-at "[\b\t\n\v\f\r ]+") |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1833 (delete-char (- (match-end 0) (match-beginning 0)))) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1834 (shrink-window-if-larger-than-buffer) |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1835 ;; move point to the log entry for the working revision |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1836 (vc-call-backend ',backend 'show-log-entry ',working-revision) |
84586
3048d1b37570
(vc-process-sentinel): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
84336
diff
changeset
|
1837 (setq vc-sentinel-movepoint (point)) |
40958
4b4504c5aa56
* vc.el (vc-print-log): Bind `inhibit-read-only' to t before and
Sam Steingold <sds@gnu.org>
parents:
40850
diff
changeset
|
1838 (set-buffer-modified-p nil))))) |
904 | 1839 |
927 | 1840 ;;;###autoload |
81957
8f9991bf3b41
Generalize stay-local-p to operatre on lists of files.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
81923
diff
changeset
|
1841 (defun vc-revert () |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1842 "Revert working copies of the selected fileset to their repository contents. |
952 | 1843 This asks for confirmation if the buffer contents are not identical |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1844 to the working revision (except for keyword expansion)." |
904 | 1845 (interactive) |
94240
9f1f284d17b3
(vc-next-action): Do not consider directories when
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94214
diff
changeset
|
1846 (let* ((vc-fileset (vc-deduce-fileset)) |
94984
b8d24d4a4bdc
Eliminate exoensive (vc-expand-dirs) calls.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94974
diff
changeset
|
1847 (files (cadr vc-fileset))) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1848 ;; If any of the files is visited by the current buffer, make |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1849 ;; sure buffer is saved. If the user says `no', abort since |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1850 ;; we cannot show the changes and ask for confirmation to |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1851 ;; discard them. |
94207
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1852 (when (or (not files) (memq (buffer-file-name) files)) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1853 (vc-buffer-sync nil)) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1854 (dolist (file files) |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1855 (let ((buf (get-file-buffer file))) |
94207
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1856 (when (and buf (buffer-modified-p buf)) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1857 (error "Please kill or save all modified buffers before reverting."))) |
94207
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1858 (when (vc-up-to-date-p file) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1859 (unless (yes-or-no-p (format "%s seems up-to-date. Revert anyway? " file)) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1860 (error "Revert canceled")))) |
94240
9f1f284d17b3
(vc-next-action): Do not consider directories when
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94214
diff
changeset
|
1861 (when (vc-diff-internal vc-allow-async-revert vc-fileset nil nil) |
94207
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1862 (unless (yes-or-no-p (format "Discard changes in %s? " (vc-delistify files))) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1863 (error "Revert canceled")) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1864 (delete-windows-on "*vc-diff*") |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1865 (kill-buffer "*vc-diff*")) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1866 (dolist (file files) |
94207
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1867 (message "Reverting %s..." (vc-delistify files)) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1868 (vc-revert-file file) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1869 (message "Reverting %s...done" (vc-delistify files))))) |
904 | 1870 |
43586
62c8a228bc1f
(vc-update): New function.
André Spiegel <spiegel@gnu.org>
parents:
43584
diff
changeset
|
1871 ;;;###autoload |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1872 (defun vc-rollback () |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1873 "Roll back (remove) the most recent changeset committed to the repository. |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1874 This may be either a file-level or a repository-level operation, |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1875 depending on the underlying version-control system." |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1876 (interactive) |
94240
9f1f284d17b3
(vc-next-action): Do not consider directories when
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94214
diff
changeset
|
1877 (let* ((vc-fileset (vc-deduce-fileset)) |
9f1f284d17b3
(vc-next-action): Do not consider directories when
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94214
diff
changeset
|
1878 (backend (car vc-fileset)) |
94984
b8d24d4a4bdc
Eliminate exoensive (vc-expand-dirs) calls.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94974
diff
changeset
|
1879 (files (cadr vc-fileset)) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1880 (granularity (vc-call-backend backend 'revision-granularity))) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1881 (unless (vc-find-backend-function backend 'rollback) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1882 (error "Rollback is not supported in %s" backend)) |
94207
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1883 (when (and (not (eq granularity 'repository)) (/= (length files) 1)) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1884 (error "Rollback requires a singleton fileset or repository versioning")) |
94805
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
1885 ;; FIXME: latest-on-branch-p should take the fileset. |
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
1886 (when (not (vc-call-backend backend 'latest-on-branch-p (car files))) |
94207
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1887 (error "Rollback is only possible at the tip revision.")) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1888 ;; If any of the files is visited by the current buffer, make |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1889 ;; sure buffer is saved. If the user says `no', abort since |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1890 ;; we cannot show the changes and ask for confirmation to |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1891 ;; discard them. |
94207
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1892 (when (or (not files) (memq (buffer-file-name) files)) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1893 (vc-buffer-sync nil)) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1894 (dolist (file files) |
94207
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1895 (when (buffer-modified-p (get-file-buffer file)) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1896 (error "Please kill or save all modified buffers before rollback.")) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1897 (when (not (vc-up-to-date-p file)) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1898 (error "Please revert all modified workfiles before rollback."))) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1899 ;; Accumulate changes associated with the fileset |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1900 (vc-setup-buffer "*vc-diff*") |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1901 (not-modified) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1902 (message "Finding changes...") |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1903 (let* ((tip (vc-working-revision (car files))) |
94805
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
1904 ;; FIXME: `previous-revision' should take the fileset. |
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
1905 (previous (vc-call-backend backend 'previous-revision |
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
1906 (car files) tip))) |
94240
9f1f284d17b3
(vc-next-action): Do not consider directories when
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94214
diff
changeset
|
1907 (vc-diff-internal nil vc-fileset previous tip)) |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1908 ;; Display changes |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1909 (unless (yes-or-no-p "Discard these revisions? ") |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1910 (error "Rollback canceled")) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1911 (delete-windows-on "*vc-diff*") |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1912 (kill-buffer"*vc-diff*") |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1913 ;; Do the actual reversions |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1914 (message "Rolling back %s..." (vc-delistify files)) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1915 (with-vc-properties |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1916 files |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1917 (vc-call-backend backend 'rollback files) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1918 `((vc-state . ,'up-to-date) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1919 (vc-checkout-time . , (nth 5 (file-attributes file))) |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1920 (vc-working-revision . nil))) |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1921 (dolist (f files) (vc-resynch-buffer f t t)) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1922 (message "Rolling back %s...done" (vc-delistify files)))) |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1923 |
38595
396f97177ef1
(vc-switch-backend): Fix autoload cookie.
Gerd Moellmann <gerd@gnu.org>
parents:
38442
diff
changeset
|
1924 ;;;###autoload |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1925 (define-obsolete-function-alias 'vc-revert-buffer 'vc-revert "23.1") |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1926 |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1927 ;;;###autoload |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1928 (defun vc-update () |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1929 "Update the current fileset's files to their tip revisions. |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1930 For each one that contains no changes, and is not locked, then this simply |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1931 replaces the work file with the latest revision on its branch. If the file |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1932 contains changes, and the backend supports merging news, then any recent |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1933 changes from the current branch are merged into the working file." |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1934 (interactive) |
94240
9f1f284d17b3
(vc-next-action): Do not consider directories when
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94214
diff
changeset
|
1935 (let* ((vc-fileset (vc-deduce-fileset)) |
94778
b9687393def1
Large simplification in (vc-deduce-fileset) logic.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94729
diff
changeset
|
1936 (backend (car vc-fileset)) |
94984
b8d24d4a4bdc
Eliminate exoensive (vc-expand-dirs) calls.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94974
diff
changeset
|
1937 (files (cadr vc-fileset))) |
95587
cb8fbc8ef1c5
(vc-update): Use `save-some-buffers' instead of signaling an error on modified buffers.
Sam Steingold <sds@gnu.org>
parents:
95327
diff
changeset
|
1938 (save-some-buffers ; save buffers visiting files |
cb8fbc8ef1c5
(vc-update): Use `save-some-buffers' instead of signaling an error on modified buffers.
Sam Steingold <sds@gnu.org>
parents:
95327
diff
changeset
|
1939 nil (lambda () |
cb8fbc8ef1c5
(vc-update): Use `save-some-buffers' instead of signaling an error on modified buffers.
Sam Steingold <sds@gnu.org>
parents:
95327
diff
changeset
|
1940 (and (buffer-modified-p) |
cb8fbc8ef1c5
(vc-update): Use `save-some-buffers' instead of signaling an error on modified buffers.
Sam Steingold <sds@gnu.org>
parents:
95327
diff
changeset
|
1941 (let ((file (buffer-file-name))) |
cb8fbc8ef1c5
(vc-update): Use `save-some-buffers' instead of signaling an error on modified buffers.
Sam Steingold <sds@gnu.org>
parents:
95327
diff
changeset
|
1942 (and file (member file files)))))) |
94240
9f1f284d17b3
(vc-next-action): Do not consider directories when
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94214
diff
changeset
|
1943 (dolist (file files) |
9f1f284d17b3
(vc-next-action): Do not consider directories when
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94214
diff
changeset
|
1944 (if (vc-up-to-date-p file) |
9f1f284d17b3
(vc-next-action): Do not consider directories when
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94214
diff
changeset
|
1945 (vc-checkout file nil t) |
94563
a0bb8ca25a33
Clean up vc*-revision-granularity and vc*-checkout-model.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94556
diff
changeset
|
1946 (if (eq (vc-checkout-model backend (list file)) 'locking) |
94240
9f1f284d17b3
(vc-next-action): Do not consider directories when
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94214
diff
changeset
|
1947 (if (eq (vc-state file) 'edited) |
9f1f284d17b3
(vc-next-action): Do not consider directories when
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94214
diff
changeset
|
1948 (error "%s" |
9f1f284d17b3
(vc-next-action): Do not consider directories when
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94214
diff
changeset
|
1949 (substitute-command-keys |
9f1f284d17b3
(vc-next-action): Do not consider directories when
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94214
diff
changeset
|
1950 "File is locked--type \\[vc-revert] to discard changes")) |
9f1f284d17b3
(vc-next-action): Do not consider directories when
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94214
diff
changeset
|
1951 (error "Unexpected file state (%s) -- type %s" |
9f1f284d17b3
(vc-next-action): Do not consider directories when
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94214
diff
changeset
|
1952 (vc-state file) |
87147 | 1953 (substitute-command-keys |
94240
9f1f284d17b3
(vc-next-action): Do not consider directories when
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94214
diff
changeset
|
1954 "\\[vc-next-action] to correct"))) |
94805
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
1955 (vc-maybe-resolve-conflicts |
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
1956 file (vc-call-backend backend 'merge-news file))))))) |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1957 |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1958 (defun vc-version-backup-file (file &optional rev) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1959 "Return name of backup file for revision REV of FILE. |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1960 If version backups should be used for FILE, and there exists |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1961 such a backup for REV or the working revision of file, return |
85059
062474ac8e41
Terminology sync, workfile version -> focus version.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85042
diff
changeset
|
1962 its name; otherwise return nil." |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1963 (when (vc-call make-version-backups-p file) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1964 (let ((backup-file (vc-version-backup-file-name file rev))) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1965 (if (file-exists-p backup-file) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1966 backup-file |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1967 ;; there is no automatic backup, but maybe the user made one manually |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1968 (setq backup-file (vc-version-backup-file-name file rev 'manual)) |
94207
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1969 (when (file-exists-p backup-file) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1970 backup-file))))) |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1971 |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1972 (defun vc-revert-file (file) |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1973 "Revert FILE back to the repository working revision it was based on." |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1974 (with-vc-properties |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1975 (list file) |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1976 (let ((backup-file (vc-version-backup-file file))) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1977 (when backup-file |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1978 (copy-file backup-file file 'ok-if-already-exists 'keep-date) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1979 (vc-delete-automatic-version-backups file)) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1980 (vc-call revert file backup-file)) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1981 `((vc-state . up-to-date) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1982 (vc-checkout-time . ,(nth 5 (file-attributes file))))) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1983 (vc-resynch-buffer file t t)) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1984 |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1985 ;;;###autoload |
31810
495ca3bd372d
(vc-index-of, vc-transfer-file, vc-default-receive-file): New functions.
André Spiegel <spiegel@gnu.org>
parents:
31718
diff
changeset
|
1986 (defun vc-switch-backend (file backend) |
32058
4196f89984ce
* vc.el (vc-editable-p): Minor optimization.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32054
diff
changeset
|
1987 "Make BACKEND the current version control system for FILE. |
31810
495ca3bd372d
(vc-index-of, vc-transfer-file, vc-default-receive-file): New functions.
André Spiegel <spiegel@gnu.org>
parents:
31718
diff
changeset
|
1988 FILE must already be registered in BACKEND. The change is not |
495ca3bd372d
(vc-index-of, vc-transfer-file, vc-default-receive-file): New functions.
André Spiegel <spiegel@gnu.org>
parents:
31718
diff
changeset
|
1989 permanent, only for the current session. This function only changes |
32058
4196f89984ce
* vc.el (vc-editable-p): Minor optimization.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32054
diff
changeset
|
1990 VC's perspective on FILE, it does not register or unregister it. |
4196f89984ce
* vc.el (vc-editable-p): Minor optimization.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32054
diff
changeset
|
1991 By default, this command cycles through the registered backends. |
4196f89984ce
* vc.el (vc-editable-p): Minor optimization.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32054
diff
changeset
|
1992 To get a prompt, use a prefix argument." |
4196f89984ce
* vc.el (vc-editable-p): Minor optimization.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32054
diff
changeset
|
1993 (interactive |
31810
495ca3bd372d
(vc-index-of, vc-transfer-file, vc-default-receive-file): New functions.
André Spiegel <spiegel@gnu.org>
parents:
31718
diff
changeset
|
1994 (list |
66549
13a55a7627fd
(vc-switch-backend): Better error message if the buffer is not visiting a
André Spiegel <spiegel@gnu.org>
parents:
66425
diff
changeset
|
1995 (or buffer-file-name |
13a55a7627fd
(vc-switch-backend): Better error message if the buffer is not visiting a
André Spiegel <spiegel@gnu.org>
parents:
66425
diff
changeset
|
1996 (error "There is no version-controlled file in this buffer")) |
96123
7742c3c06407
* vc.el (vc-switch-backend): Simplify.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96122
diff
changeset
|
1997 (let ((crt-bk (vc-backend buffer-file-name)) |
32058
4196f89984ce
* vc.el (vc-editable-p): Minor optimization.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32054
diff
changeset
|
1998 (backends nil)) |
96123
7742c3c06407
* vc.el (vc-switch-backend): Simplify.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96122
diff
changeset
|
1999 (unless crt-bk |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
2000 (error "File %s is not under version control" buffer-file-name)) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
2001 ;; Find the registered backends. |
96123
7742c3c06407
* vc.el (vc-switch-backend): Simplify.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96122
diff
changeset
|
2002 (dolist (crt vc-handled-backends) |
7742c3c06407
* vc.el (vc-switch-backend): Simplify.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96122
diff
changeset
|
2003 (when (and (vc-call-backend crt 'registered buffer-file-name) |
7742c3c06407
* vc.el (vc-switch-backend): Simplify.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96122
diff
changeset
|
2004 (not (eq crt-bk crt))) |
7742c3c06407
* vc.el (vc-switch-backend): Simplify.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96122
diff
changeset
|
2005 (push crt backends))) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
2006 ;; Find the next backend. |
96123
7742c3c06407
* vc.el (vc-switch-backend): Simplify.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96122
diff
changeset
|
2007 (let ((def (car backends)) |
7742c3c06407
* vc.el (vc-switch-backend): Simplify.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96122
diff
changeset
|
2008 (others backends)) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
2009 (cond |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
2010 ((null others) (error "No other backend to switch to")) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
2011 (current-prefix-arg |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
2012 (intern |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
2013 (upcase |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
2014 (completing-read |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
2015 (format "Switch to backend [%s]: " def) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
2016 (mapcar (lambda (b) (list (downcase (symbol-name b)))) backends) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
2017 nil t nil nil (downcase (symbol-name def)))))) |
96123
7742c3c06407
* vc.el (vc-switch-backend): Simplify.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96122
diff
changeset
|
2018 (t def)))))) |
32059
13e0fdf65e3c
(with-vc-file, vc-next-action-on-file):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32058
diff
changeset
|
2019 (unless (eq backend (vc-backend file)) |
13e0fdf65e3c
(with-vc-file, vc-next-action-on-file):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32058
diff
changeset
|
2020 (vc-file-clearprops file) |
13e0fdf65e3c
(with-vc-file, vc-next-action-on-file):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32058
diff
changeset
|
2021 (vc-file-setprop file 'vc-backend backend) |
13e0fdf65e3c
(with-vc-file, vc-next-action-on-file):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32058
diff
changeset
|
2022 ;; Force recomputation of the state |
32189
921a2e8fa97e
(with-vc-properties): Use conses rather than length-2 lists.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32126
diff
changeset
|
2023 (unless (vc-call-backend backend 'registered file) |
921a2e8fa97e
(with-vc-properties): Use conses rather than length-2 lists.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32126
diff
changeset
|
2024 (vc-file-clearprops file) |
921a2e8fa97e
(with-vc-properties): Use conses rather than length-2 lists.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32126
diff
changeset
|
2025 (error "%s is not registered in %s" file backend)) |
32059
13e0fdf65e3c
(with-vc-file, vc-next-action-on-file):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32058
diff
changeset
|
2026 (vc-mode-line file))) |
31810
495ca3bd372d
(vc-index-of, vc-transfer-file, vc-default-receive-file): New functions.
André Spiegel <spiegel@gnu.org>
parents:
31718
diff
changeset
|
2027 |
38726
2dddcf515155
(vc-transfer-file): Fix malformed autoload cookie.
Gerd Moellmann <gerd@gnu.org>
parents:
38608
diff
changeset
|
2028 ;;;###autoload |
31810
495ca3bd372d
(vc-index-of, vc-transfer-file, vc-default-receive-file): New functions.
André Spiegel <spiegel@gnu.org>
parents:
31718
diff
changeset
|
2029 (defun vc-transfer-file (file new-backend) |
32059
13e0fdf65e3c
(with-vc-file, vc-next-action-on-file):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32058
diff
changeset
|
2030 "Transfer FILE to another version control system NEW-BACKEND. |
31810
495ca3bd372d
(vc-index-of, vc-transfer-file, vc-default-receive-file): New functions.
André Spiegel <spiegel@gnu.org>
parents:
31718
diff
changeset
|
2031 If NEW-BACKEND has a higher precedence than FILE's current backend |
32059
13e0fdf65e3c
(with-vc-file, vc-next-action-on-file):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32058
diff
changeset
|
2032 \(i.e. it comes earlier in `vc-handled-backends'), then register FILE in |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
2033 NEW-BACKEND, using the revision number from the current backend as the |
31810
495ca3bd372d
(vc-index-of, vc-transfer-file, vc-default-receive-file): New functions.
André Spiegel <spiegel@gnu.org>
parents:
31718
diff
changeset
|
2034 base level. If NEW-BACKEND has a lower precedence than the current |
495ca3bd372d
(vc-index-of, vc-transfer-file, vc-default-receive-file): New functions.
André Spiegel <spiegel@gnu.org>
parents:
31718
diff
changeset
|
2035 backend, then commit all changes that were made under the current |
495ca3bd372d
(vc-index-of, vc-transfer-file, vc-default-receive-file): New functions.
André Spiegel <spiegel@gnu.org>
parents:
31718
diff
changeset
|
2036 backend to NEW-BACKEND, and unregister FILE from the current backend. |
495ca3bd372d
(vc-index-of, vc-transfer-file, vc-default-receive-file): New functions.
André Spiegel <spiegel@gnu.org>
parents:
31718
diff
changeset
|
2037 \(If FILE is not yet registered under NEW-BACKEND, register it.)" |
32097
adf341c172af
(vc-transfer-file, vc-default-receive-file): Rewritten to factorize
André Spiegel <spiegel@gnu.org>
parents:
32093
diff
changeset
|
2038 (let* ((old-backend (vc-backend file)) |
adf341c172af
(vc-transfer-file, vc-default-receive-file): Rewritten to factorize
André Spiegel <spiegel@gnu.org>
parents:
32093
diff
changeset
|
2039 (edited (memq (vc-state file) '(edited needs-merge))) |
adf341c172af
(vc-transfer-file, vc-default-receive-file): Rewritten to factorize
André Spiegel <spiegel@gnu.org>
parents:
32093
diff
changeset
|
2040 (registered (vc-call-backend new-backend 'registered file)) |
adf341c172af
(vc-transfer-file, vc-default-receive-file): Rewritten to factorize
André Spiegel <spiegel@gnu.org>
parents:
32093
diff
changeset
|
2041 (move |
adf341c172af
(vc-transfer-file, vc-default-receive-file): Rewritten to factorize
André Spiegel <spiegel@gnu.org>
parents:
32093
diff
changeset
|
2042 (and registered ; Never move if not registered in new-backend yet. |
adf341c172af
(vc-transfer-file, vc-default-receive-file): Rewritten to factorize
André Spiegel <spiegel@gnu.org>
parents:
32093
diff
changeset
|
2043 ;; move if new-backend comes later in vc-handled-backends |
adf341c172af
(vc-transfer-file, vc-default-receive-file): Rewritten to factorize
André Spiegel <spiegel@gnu.org>
parents:
32093
diff
changeset
|
2044 (or (memq new-backend (memq old-backend vc-handled-backends)) |
32126
3aab429d3c8a
(vc-revert-buffer): Handle empty diff properly.
André Spiegel <spiegel@gnu.org>
parents:
32097
diff
changeset
|
2045 (y-or-n-p "Final transfer? ")))) |
32097
adf341c172af
(vc-transfer-file, vc-default-receive-file): Rewritten to factorize
André Spiegel <spiegel@gnu.org>
parents:
32093
diff
changeset
|
2046 (comment nil)) |
94240
9f1f284d17b3
(vc-next-action): Do not consider directories when
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94214
diff
changeset
|
2047 (when (eq old-backend new-backend) |
9f1f284d17b3
(vc-next-action): Do not consider directories when
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94214
diff
changeset
|
2048 (error "%s is the current backend of %s" new-backend file)) |
32097
adf341c172af
(vc-transfer-file, vc-default-receive-file): Rewritten to factorize
André Spiegel <spiegel@gnu.org>
parents:
32093
diff
changeset
|
2049 (if registered |
adf341c172af
(vc-transfer-file, vc-default-receive-file): Rewritten to factorize
André Spiegel <spiegel@gnu.org>
parents:
32093
diff
changeset
|
2050 (set-file-modes file (logior (file-modes file) 128)) |
adf341c172af
(vc-transfer-file, vc-default-receive-file): Rewritten to factorize
André Spiegel <spiegel@gnu.org>
parents:
32093
diff
changeset
|
2051 ;; `registered' might have switched under us. |
adf341c172af
(vc-transfer-file, vc-default-receive-file): Rewritten to factorize
André Spiegel <spiegel@gnu.org>
parents:
32093
diff
changeset
|
2052 (vc-switch-backend file old-backend) |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
2053 (let* ((rev (vc-working-revision file)) |
43725
60a9d71aad02
(vc-transfer-file): Use `make-temp-file' instead of `make-temp-name'.
André Spiegel <spiegel@gnu.org>
parents:
43586
diff
changeset
|
2054 (modified-file (and edited (make-temp-file file))) |
32126
3aab429d3c8a
(vc-revert-buffer): Handle empty diff properly.
André Spiegel <spiegel@gnu.org>
parents:
32097
diff
changeset
|
2055 (unmodified-file (and modified-file (vc-version-backup-file file)))) |
32097
adf341c172af
(vc-transfer-file, vc-default-receive-file): Rewritten to factorize
André Spiegel <spiegel@gnu.org>
parents:
32093
diff
changeset
|
2056 ;; Go back to the base unmodified file. |
adf341c172af
(vc-transfer-file, vc-default-receive-file): Rewritten to factorize
André Spiegel <spiegel@gnu.org>
parents:
32093
diff
changeset
|
2057 (unwind-protect |
adf341c172af
(vc-transfer-file, vc-default-receive-file): Rewritten to factorize
André Spiegel <spiegel@gnu.org>
parents:
32093
diff
changeset
|
2058 (progn |
32126
3aab429d3c8a
(vc-revert-buffer): Handle empty diff properly.
André Spiegel <spiegel@gnu.org>
parents:
32097
diff
changeset
|
2059 (when modified-file |
43725
60a9d71aad02
(vc-transfer-file): Use `make-temp-file' instead of `make-temp-name'.
André Spiegel <spiegel@gnu.org>
parents:
43586
diff
changeset
|
2060 (copy-file file modified-file 'ok-if-already-exists) |
32126
3aab429d3c8a
(vc-revert-buffer): Handle empty diff properly.
André Spiegel <spiegel@gnu.org>
parents:
32097
diff
changeset
|
2061 ;; If we have a local copy of the unmodified file, handle that |
3aab429d3c8a
(vc-revert-buffer): Handle empty diff properly.
André Spiegel <spiegel@gnu.org>
parents:
32097
diff
changeset
|
2062 ;; here and not in vc-revert-file because we don't want to |
3aab429d3c8a
(vc-revert-buffer): Handle empty diff properly.
André Spiegel <spiegel@gnu.org>
parents:
32097
diff
changeset
|
2063 ;; delete that copy -- it is still useful for OLD-BACKEND. |
3aab429d3c8a
(vc-revert-buffer): Handle empty diff properly.
André Spiegel <spiegel@gnu.org>
parents:
32097
diff
changeset
|
2064 (if unmodified-file |
50894
4dc2d45403ec
(with-vc-properties, with-vc-file, edit-vc-file):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49869
diff
changeset
|
2065 (copy-file unmodified-file file |
4dc2d45403ec
(with-vc-properties, with-vc-file, edit-vc-file):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49869
diff
changeset
|
2066 'ok-if-already-exists 'keep-date) |
94240
9f1f284d17b3
(vc-next-action): Do not consider directories when
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94214
diff
changeset
|
2067 (when (y-or-n-p "Get base revision from master? ") |
9f1f284d17b3
(vc-next-action): Do not consider directories when
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94214
diff
changeset
|
2068 (vc-revert-file file)))) |
32097
adf341c172af
(vc-transfer-file, vc-default-receive-file): Rewritten to factorize
André Spiegel <spiegel@gnu.org>
parents:
32093
diff
changeset
|
2069 (vc-call-backend new-backend 'receive-file file rev)) |
32126
3aab429d3c8a
(vc-revert-buffer): Handle empty diff properly.
André Spiegel <spiegel@gnu.org>
parents:
32097
diff
changeset
|
2070 (when modified-file |
32097
adf341c172af
(vc-transfer-file, vc-default-receive-file): Rewritten to factorize
André Spiegel <spiegel@gnu.org>
parents:
32093
diff
changeset
|
2071 (vc-switch-backend file new-backend) |
94563
a0bb8ca25a33
Clean up vc*-revision-granularity and vc*-checkout-model.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94556
diff
changeset
|
2072 (unless (eq (vc-checkout-model new-backend (list file)) 'implicit) |
32097
adf341c172af
(vc-transfer-file, vc-default-receive-file): Rewritten to factorize
André Spiegel <spiegel@gnu.org>
parents:
32093
diff
changeset
|
2073 (vc-checkout file t nil)) |
32126
3aab429d3c8a
(vc-revert-buffer): Handle empty diff properly.
André Spiegel <spiegel@gnu.org>
parents:
32097
diff
changeset
|
2074 (rename-file modified-file file 'ok-if-already-exists) |
3aab429d3c8a
(vc-revert-buffer): Handle empty diff properly.
André Spiegel <spiegel@gnu.org>
parents:
32097
diff
changeset
|
2075 (vc-file-setprop file 'vc-checkout-time nil))))) |
32097
adf341c172af
(vc-transfer-file, vc-default-receive-file): Rewritten to factorize
André Spiegel <spiegel@gnu.org>
parents:
32093
diff
changeset
|
2076 (when move |
adf341c172af
(vc-transfer-file, vc-default-receive-file): Rewritten to factorize
André Spiegel <spiegel@gnu.org>
parents:
32093
diff
changeset
|
2077 (vc-switch-backend file old-backend) |
94805
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
2078 (setq comment (vc-call-backend old-backend 'comment-history file)) |
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
2079 (vc-call-backend old-backend 'unregister file)) |
32097
adf341c172af
(vc-transfer-file, vc-default-receive-file): Rewritten to factorize
André Spiegel <spiegel@gnu.org>
parents:
32093
diff
changeset
|
2080 (vc-switch-backend file new-backend) |
adf341c172af
(vc-transfer-file, vc-default-receive-file): Rewritten to factorize
André Spiegel <spiegel@gnu.org>
parents:
32093
diff
changeset
|
2081 (when (or move edited) |
31810
495ca3bd372d
(vc-index-of, vc-transfer-file, vc-default-receive-file): New functions.
André Spiegel <spiegel@gnu.org>
parents:
31718
diff
changeset
|
2082 (vc-file-setprop file 'vc-state 'edited) |
32126
3aab429d3c8a
(vc-revert-buffer): Handle empty diff properly.
André Spiegel <spiegel@gnu.org>
parents:
32097
diff
changeset
|
2083 (vc-mode-line file) |
32054
fef29341db1c
(vc-next-action-on-file): Update mode line only if file is visited.
André Spiegel <spiegel@gnu.org>
parents:
31836
diff
changeset
|
2084 (vc-checkin file nil comment (stringp comment))))) |
31810
495ca3bd372d
(vc-index-of, vc-transfer-file, vc-default-receive-file): New functions.
André Spiegel <spiegel@gnu.org>
parents:
31718
diff
changeset
|
2085 |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
2086 (defun vc-rename-master (oldmaster newfile templates) |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
2087 "Rename OLDMASTER to be the master file for NEWFILE based on TEMPLATES." |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
2088 (let* ((dir (file-name-directory (expand-file-name oldmaster))) |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
2089 (newdir (or (file-name-directory newfile) "")) |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
2090 (newbase (file-name-nondirectory newfile)) |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
2091 (masters |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
2092 ;; List of potential master files for `newfile' |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
2093 (mapcar |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
2094 (lambda (s) (vc-possible-master s newdir newbase)) |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
2095 templates))) |
94207
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
2096 (when (or (file-symlink-p oldmaster) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
2097 (file-symlink-p (file-name-directory oldmaster))) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
2098 (error "This is unsafe in the presence of symbolic links")) |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
2099 (rename-file |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
2100 oldmaster |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
2101 (catch 'found |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
2102 ;; If possible, keep the master file in the same directory. |
50894
4dc2d45403ec
(with-vc-properties, with-vc-file, edit-vc-file):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49869
diff
changeset
|
2103 (dolist (f masters) |
94240
9f1f284d17b3
(vc-next-action): Do not consider directories when
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94214
diff
changeset
|
2104 (when (and f (string= (file-name-directory (expand-file-name f)) dir)) |
9f1f284d17b3
(vc-next-action): Do not consider directories when
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94214
diff
changeset
|
2105 (throw 'found f))) |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
2106 ;; If not, just use the first possible place. |
50894
4dc2d45403ec
(with-vc-properties, with-vc-file, edit-vc-file):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49869
diff
changeset
|
2107 (dolist (f masters) |
4dc2d45403ec
(with-vc-properties, with-vc-file, edit-vc-file):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49869
diff
changeset
|
2108 (and f (or (not (setq dir (file-name-directory f))) |
4dc2d45403ec
(with-vc-properties, with-vc-file, edit-vc-file):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49869
diff
changeset
|
2109 (file-directory-p dir)) |
4dc2d45403ec
(with-vc-properties, with-vc-file, edit-vc-file):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49869
diff
changeset
|
2110 (throw 'found f))) |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
2111 (error "New file lacks a version control directory"))))) |
904 | 2112 |
50926
dd6110a63907
New backend functions `delete-file' and `repository-hostname'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50894
diff
changeset
|
2113 (defun vc-delete-file (file) |
dd6110a63907
New backend functions `delete-file' and `repository-hostname'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50894
diff
changeset
|
2114 "Delete file and mark it as such in the version control system." |
dd6110a63907
New backend functions `delete-file' and `repository-hostname'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50894
diff
changeset
|
2115 (interactive "fVC delete file: ") |
93165
c4dc2a72d555
(vc-status-mark-buffer-changed): Add an optional file parameter.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93159
diff
changeset
|
2116 (setq file (expand-file-name file)) |
51245
f6920b201e1c
(vc-delete-file): Fix free variable reference.
André Spiegel <spiegel@gnu.org>
parents:
51064
diff
changeset
|
2117 (let ((buf (get-file-buffer file)) |
f6920b201e1c
(vc-delete-file): Fix free variable reference.
André Spiegel <spiegel@gnu.org>
parents:
51064
diff
changeset
|
2118 (backend (vc-backend file))) |
f6920b201e1c
(vc-delete-file): Fix free variable reference.
André Spiegel <spiegel@gnu.org>
parents:
51064
diff
changeset
|
2119 (unless backend |
51627
1329f6a6c949
(vc-rename-file): Fix typo.
Luc Teirlinck <teirllm@auburn.edu>
parents:
51369
diff
changeset
|
2120 (error "File %s is not under version control" |
51245
f6920b201e1c
(vc-delete-file): Fix free variable reference.
André Spiegel <spiegel@gnu.org>
parents:
51064
diff
changeset
|
2121 (file-name-nondirectory file))) |
50926
dd6110a63907
New backend functions `delete-file' and `repository-hostname'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50894
diff
changeset
|
2122 (unless (vc-find-backend-function backend 'delete-file) |
51245
f6920b201e1c
(vc-delete-file): Fix free variable reference.
André Spiegel <spiegel@gnu.org>
parents:
51064
diff
changeset
|
2123 (error "Deleting files under %s is not supported in VC" backend)) |
94207
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
2124 (when (and buf (buffer-modified-p buf)) |
94520
069edac43148
(vc-delete-file): Check if the file has uncommitted changed.
Sam Steingold <sds@gnu.org>
parents:
94519
diff
changeset
|
2125 (error "Please save or undo your changes before deleting %s" file)) |
069edac43148
(vc-delete-file): Check if the file has uncommitted changed.
Sam Steingold <sds@gnu.org>
parents:
94519
diff
changeset
|
2126 (let ((state (vc-state file))) |
069edac43148
(vc-delete-file): Check if the file has uncommitted changed.
Sam Steingold <sds@gnu.org>
parents:
94519
diff
changeset
|
2127 (when (eq state 'edited) |
069edac43148
(vc-delete-file): Check if the file has uncommitted changed.
Sam Steingold <sds@gnu.org>
parents:
94519
diff
changeset
|
2128 (error "Please commit or undo your changes before deleting %s" file)) |
069edac43148
(vc-delete-file): Check if the file has uncommitted changed.
Sam Steingold <sds@gnu.org>
parents:
94519
diff
changeset
|
2129 (when (eq state 'conflict) |
069edac43148
(vc-delete-file): Check if the file has uncommitted changed.
Sam Steingold <sds@gnu.org>
parents:
94519
diff
changeset
|
2130 (error "Please resolve the conflicts before deleting %s" file))) |
65689
96187e7edd1b
2005-09-25 Romain Francoise <romain@orebokech.com>
Romain Francoise <romain@orebokech.com>
parents:
65680
diff
changeset
|
2131 (unless (y-or-n-p (format "Really want to delete %s? " |
50926
dd6110a63907
New backend functions `delete-file' and `repository-hostname'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50894
diff
changeset
|
2132 (file-name-nondirectory file))) |
dd6110a63907
New backend functions `delete-file' and `repository-hostname'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50894
diff
changeset
|
2133 (error "Abort!")) |
94499
5f57377d1eff
(vc-dir-mode-map): Bind "d" to vc-dir-delete-file.
Sam Steingold <sds@gnu.org>
parents:
94495
diff
changeset
|
2134 (unless (or (file-directory-p file) (null make-backup-files) |
5f57377d1eff
(vc-dir-mode-map): Bind "d" to vc-dir-delete-file.
Sam Steingold <sds@gnu.org>
parents:
94495
diff
changeset
|
2135 (not (file-exists-p file))) |
50926
dd6110a63907
New backend functions `delete-file' and `repository-hostname'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50894
diff
changeset
|
2136 (with-current-buffer (or buf (find-file-noselect file)) |
dd6110a63907
New backend functions `delete-file' and `repository-hostname'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50894
diff
changeset
|
2137 (let ((backup-inhibited nil)) |
95269
1e9eb6106f5a
(vc-delete-file): Don't try to resynch the buffer.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95079
diff
changeset
|
2138 (backup-buffer)))) |
95895
2ab93a71b21a
(vc-delete-file): Bound default-directory before calling
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95853
diff
changeset
|
2139 ;; Bind `default-directory' so that the command that the backend |
2ab93a71b21a
(vc-delete-file): Bound default-directory before calling
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95853
diff
changeset
|
2140 ;; runs to remove the file is invoked in the correct context. |
2ab93a71b21a
(vc-delete-file): Bound default-directory before calling
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95853
diff
changeset
|
2141 (let ((default-directory (file-name-directory file))) |
2ab93a71b21a
(vc-delete-file): Bound default-directory before calling
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95853
diff
changeset
|
2142 (vc-call-backend backend 'delete-file file)) |
50926
dd6110a63907
New backend functions `delete-file' and `repository-hostname'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50894
diff
changeset
|
2143 ;; If the backend hasn't deleted the file itself, let's do it for him. |
94207
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
2144 (when (file-exists-p file) (delete-file file)) |
93165
c4dc2a72d555
(vc-status-mark-buffer-changed): Add an optional file parameter.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93159
diff
changeset
|
2145 ;; Forget what VC knew about the file. |
c4dc2a72d555
(vc-status-mark-buffer-changed): Add an optional file parameter.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93159
diff
changeset
|
2146 (vc-file-clearprops file) |
95270
4d7bc1390196
(vc-delete-file): Make sure the buffer is deleted and
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95269
diff
changeset
|
2147 ;; Make sure the buffer is deleted and the *vc-dir* buffers are |
4d7bc1390196
(vc-delete-file): Make sure the buffer is deleted and
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95269
diff
changeset
|
2148 ;; updated after this. |
4d7bc1390196
(vc-delete-file): Make sure the buffer is deleted and
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95269
diff
changeset
|
2149 (vc-resynch-buffer file nil t))) |
50926
dd6110a63907
New backend functions `delete-file' and `repository-hostname'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50894
diff
changeset
|
2150 |
9044
5ddb0e0adb08
(vc-backend-checkout): Add if-statements to the shell cmds
Richard M. Stallman <rms@gnu.org>
parents:
8726
diff
changeset
|
2151 ;;;###autoload |
904 | 2152 (defun vc-rename-file (old new) |
2750
6f340eabf13f
Improve doc strings and prompt strings.
Richard M. Stallman <rms@gnu.org>
parents:
2745
diff
changeset
|
2153 "Rename file OLD to NEW, and rename its master file likewise." |
6f340eabf13f
Improve doc strings and prompt strings.
Richard M. Stallman <rms@gnu.org>
parents:
2745
diff
changeset
|
2154 (interactive "fVC rename file: \nFRename to: ") |
95853
174293e3d9fc
(vc-rename-file): DTRT when the destination is a directory name and the source is a file.
Sam Steingold <sds@gnu.org>
parents:
95587
diff
changeset
|
2155 ;; in CL I would have said (setq new (merge-pathnames new old)) |
174293e3d9fc
(vc-rename-file): DTRT when the destination is a directory name and the source is a file.
Sam Steingold <sds@gnu.org>
parents:
95587
diff
changeset
|
2156 (let ((old-base (file-name-nondirectory old))) |
174293e3d9fc
(vc-rename-file): DTRT when the destination is a directory name and the source is a file.
Sam Steingold <sds@gnu.org>
parents:
95587
diff
changeset
|
2157 (when (and (not (string= "" old-base)) |
174293e3d9fc
(vc-rename-file): DTRT when the destination is a directory name and the source is a file.
Sam Steingold <sds@gnu.org>
parents:
95587
diff
changeset
|
2158 (string= "" (file-name-nondirectory new))) |
174293e3d9fc
(vc-rename-file): DTRT when the destination is a directory name and the source is a file.
Sam Steingold <sds@gnu.org>
parents:
95587
diff
changeset
|
2159 (setq new (concat new old-base)))) |
50926
dd6110a63907
New backend functions `delete-file' and `repository-hostname'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50894
diff
changeset
|
2160 (let ((oldbuf (get-file-buffer old))) |
94207
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
2161 (when (and oldbuf (buffer-modified-p oldbuf)) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
2162 (error "Please save files before moving them")) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
2163 (when (get-file-buffer new) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
2164 (error "Already editing new file name")) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
2165 (when (file-exists-p new) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
2166 (error "New file already exists")) |
51627
1329f6a6c949
(vc-rename-file): Fix typo.
Luc Teirlinck <teirllm@auburn.edu>
parents:
51369
diff
changeset
|
2167 (let ((state (vc-state old))) |
50926
dd6110a63907
New backend functions `delete-file' and `repository-hostname'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50894
diff
changeset
|
2168 (unless (memq state '(up-to-date edited)) |
dd6110a63907
New backend functions `delete-file' and `repository-hostname'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50894
diff
changeset
|
2169 (error "Please %s files before moving them" |
dd6110a63907
New backend functions `delete-file' and `repository-hostname'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50894
diff
changeset
|
2170 (if (stringp state) "check in" "update")))) |
dd6110a63907
New backend functions `delete-file' and `repository-hostname'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50894
diff
changeset
|
2171 (vc-call rename-file old new) |
50894
4dc2d45403ec
(with-vc-properties, with-vc-file, edit-vc-file):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49869
diff
changeset
|
2172 (vc-file-clearprops old) |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
2173 ;; Move the actual file (unless the backend did it already) |
94207
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
2174 (when (file-exists-p old) (rename-file old new)) |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
2175 ;; ?? Renaming a file might change its contents due to keyword expansion. |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
2176 ;; We should really check out a new copy if the old copy was precisely equal |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
2177 ;; to some checked-in revision. However, testing for this is tricky.... |
94207
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
2178 (when oldbuf |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
2179 (with-current-buffer oldbuf |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
2180 (let ((buffer-read-only buffer-read-only)) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
2181 (set-visited-file-name new)) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
2182 (vc-backend new) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
2183 (vc-mode-line new) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
2184 (set-buffer-modified-p nil))))) |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
2185 |
927 | 2186 ;;;###autoload |
1226
573df03a54d8
(vc-update-change-log): Use shell-command, not shell-command-on-region.
Roland McGrath <roland@gnu.org>
parents:
952
diff
changeset
|
2187 (defun vc-update-change-log (&rest args) |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
2188 "Find change log file and add entries from recent version control logs. |
15989
2813c68432c9
(vc-update-change-log): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15977
diff
changeset
|
2189 Normally, find log entries for all registered files in the default |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
2190 directory. |
15989
2813c68432c9
(vc-update-change-log): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15977
diff
changeset
|
2191 |
31404
f2ab9420390f
2000-09-05 Stefan Monnier <monnier@cs.yale.edu>
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
31387
diff
changeset
|
2192 With prefix arg of \\[universal-argument], only find log entries for the current buffer's file. |
15989
2813c68432c9
(vc-update-change-log): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15977
diff
changeset
|
2193 |
2813c68432c9
(vc-update-change-log): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15977
diff
changeset
|
2194 With any numeric prefix arg, find log entries for all currently visited |
2813c68432c9
(vc-update-change-log): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15977
diff
changeset
|
2195 files that are under version control. This puts all the entries in the |
2813c68432c9
(vc-update-change-log): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15977
diff
changeset
|
2196 log for the default directory, which may not be appropriate. |
2813c68432c9
(vc-update-change-log): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15977
diff
changeset
|
2197 |
31404
f2ab9420390f
2000-09-05 Stefan Monnier <monnier@cs.yale.edu>
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
31387
diff
changeset
|
2198 From a program, any ARGS are assumed to be filenames for which |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
2199 log entries should be gathered." |
1227
d07030650283
(vc-checkin-hook): New user hook variable.
Roland McGrath <roland@gnu.org>
parents:
1226
diff
changeset
|
2200 (interactive |
d07030650283
(vc-checkin-hook): New user hook variable.
Roland McGrath <roland@gnu.org>
parents:
1226
diff
changeset
|
2201 (cond ((consp current-prefix-arg) ;C-u |
d07030650283
(vc-checkin-hook): New user hook variable.
Roland McGrath <roland@gnu.org>
parents:
1226
diff
changeset
|
2202 (list buffer-file-name)) |
d07030650283
(vc-checkin-hook): New user hook variable.
Roland McGrath <roland@gnu.org>
parents:
1226
diff
changeset
|
2203 (current-prefix-arg ;Numeric argument. |
d07030650283
(vc-checkin-hook): New user hook variable.
Roland McGrath <roland@gnu.org>
parents:
1226
diff
changeset
|
2204 (let ((files nil) |
d07030650283
(vc-checkin-hook): New user hook variable.
Roland McGrath <roland@gnu.org>
parents:
1226
diff
changeset
|
2205 (buffers (buffer-list)) |
d07030650283
(vc-checkin-hook): New user hook variable.
Roland McGrath <roland@gnu.org>
parents:
1226
diff
changeset
|
2206 file) |
d07030650283
(vc-checkin-hook): New user hook variable.
Roland McGrath <roland@gnu.org>
parents:
1226
diff
changeset
|
2207 (while buffers |
d07030650283
(vc-checkin-hook): New user hook variable.
Roland McGrath <roland@gnu.org>
parents:
1226
diff
changeset
|
2208 (setq file (buffer-file-name (car buffers))) |
11605
36b1eb58d0c9
(vc-next-action-on-file): Add missing let-binding.
Karl Heuer <kwzh@gnu.org>
parents:
11597
diff
changeset
|
2209 (and file (vc-backend file) |
3939
1b954eb0f249
(vc-update-change-log): Ensure that file names inserted into a ChangeLog
Paul Eggert <eggert@twinsun.com>
parents:
3905
diff
changeset
|
2210 (setq files (cons file files))) |
1227
d07030650283
(vc-checkin-hook): New user hook variable.
Roland McGrath <roland@gnu.org>
parents:
1226
diff
changeset
|
2211 (setq buffers (cdr buffers))) |
3939
1b954eb0f249
(vc-update-change-log): Ensure that file names inserted into a ChangeLog
Paul Eggert <eggert@twinsun.com>
parents:
3905
diff
changeset
|
2212 files)) |
1b954eb0f249
(vc-update-change-log): Ensure that file names inserted into a ChangeLog
Paul Eggert <eggert@twinsun.com>
parents:
3905
diff
changeset
|
2213 (t |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
2214 ;; Don't supply any filenames to backend; this means |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
2215 ;; it should find all relevant files relative to |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
2216 ;; the default-directory. |
15977
abc3b3e7ea88
(vc-update-change-log): Remove code which found RCS files
Richard M. Stallman <rms@gnu.org>
parents:
15787
diff
changeset
|
2217 nil))) |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
2218 (vc-call-backend (vc-responsible-backend default-directory) |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
2219 'update-changelog args)) |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
2220 |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
2221 ;;; The default back end. Assumes RCS-like revision numbering. |
85064
3e1b7531aa3e
Port various comments from new VC to reduce the noise in the diff.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85059
diff
changeset
|
2222 |
3e1b7531aa3e
Port various comments from new VC to reduce the noise in the diff.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85059
diff
changeset
|
2223 (defun vc-default-revision-granularity () |
3e1b7531aa3e
Port various comments from new VC to reduce the noise in the diff.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85059
diff
changeset
|
2224 (error "Your backend will not work with this version of VC mode.")) |
3e1b7531aa3e
Port various comments from new VC to reduce the noise in the diff.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85059
diff
changeset
|
2225 |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2226 ;; functions that operate on RCS revision numbers. This code should |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2227 ;; also be moved into the backends. It stays for now, however, since |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2228 ;; it is used in code below. |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2229 ;;;###autoload |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2230 (defun vc-trunk-p (rev) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2231 "Return t if REV is a revision on the trunk." |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2232 (not (eq nil (string-match "\\`[0-9]+\\.[0-9]+\\'" rev)))) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2233 |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2234 (defun vc-branch-p (rev) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2235 "Return t if REV is a branch revision." |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2236 (not (eq nil (string-match "\\`[0-9]+\\(\\.[0-9]+\\.[0-9]+\\)*\\'" rev)))) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2237 |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2238 ;;;###autoload |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2239 (defun vc-branch-part (rev) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2240 "Return the branch part of a revision number REV." |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2241 (let ((index (string-match "\\.[0-9]+\\'" rev))) |
94207
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
2242 (when index |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
2243 (substring rev 0 index)))) |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2244 |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2245 (defun vc-minor-part (rev) |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
2246 "Return the minor revision number of a revision number REV." |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2247 (string-match "[0-9]+\\'" rev) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2248 (substring rev (match-beginning 0) (match-end 0))) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2249 |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
2250 (defun vc-default-previous-revision (backend file rev) |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
2251 "Return the revision number immediately preceding REV for FILE, |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
2252 or nil if there is no previous revision. This default |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
2253 implementation works for MAJOR.MINOR-style revision numbers as |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2254 used by RCS and CVS." |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2255 (let ((branch (vc-branch-part rev)) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2256 (minor-num (string-to-number (vc-minor-part rev)))) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2257 (when branch |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2258 (if (> minor-num 1) |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
2259 ;; revision does probably not start a branch or release |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2260 (concat branch "." (number-to-string (1- minor-num))) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2261 (if (vc-trunk-p rev) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2262 ;; we are at the beginning of the trunk -- |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2263 ;; don't know anything to return here |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2264 nil |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2265 ;; we are at the beginning of a branch -- |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
2266 ;; return revision of starting point |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2267 (vc-branch-part branch)))))) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2268 |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
2269 (defun vc-default-next-revision (backend file rev) |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
2270 "Return the revision number immediately following REV for FILE, |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
2271 or nil if there is no next revision. This default implementation |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
2272 works for MAJOR.MINOR-style revision numbers as used by RCS |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2273 and CVS." |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
2274 (when (not (string= rev (vc-working-revision file))) |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2275 (let ((branch (vc-branch-part rev)) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2276 (minor-num (string-to-number (vc-minor-part rev)))) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2277 (concat branch "." (number-to-string (1+ minor-num)))))) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2278 |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2279 (defun vc-default-responsible-p (backend file) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2280 "Indicate whether BACKEND is reponsible for FILE. |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2281 The default is to return nil always." |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2282 nil) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2283 |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2284 (defun vc-default-could-register (backend file) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2285 "Return non-nil if BACKEND could be used to register FILE. |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2286 The default implementation returns t for all files." |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2287 t) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2288 |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2289 (defun vc-default-latest-on-branch-p (backend file) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2290 "Return non-nil if FILE is the latest on its branch. |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2291 This default implementation always returns non-nil, which means that |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
2292 editing non-current revisions is not supported by default." |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2293 t) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2294 |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
2295 (defun vc-default-init-revision (backend) vc-default-init-revision) |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2296 |
80875
51b85ee9ab0f
Ensure that update-changelog issues an error when used with
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
75347
diff
changeset
|
2297 (defalias 'vc-cvs-update-changelog 'vc-update-changelog-rcs2log) |
95324
51f0a2e341de
(vc-make-backend-object): Fix name.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95322
diff
changeset
|
2298 |
80875
51b85ee9ab0f
Ensure that update-changelog issues an error when used with
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
75347
diff
changeset
|
2299 (defalias 'vc-rcs-update-changelog 'vc-update-changelog-rcs2log) |
95324
51f0a2e341de
(vc-make-backend-object): Fix name.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95322
diff
changeset
|
2300 |
80875
51b85ee9ab0f
Ensure that update-changelog issues an error when used with
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
75347
diff
changeset
|
2301 ;; FIXME: This should probably be moved to vc-rcs.el and replaced in |
51b85ee9ab0f
Ensure that update-changelog issues an error when used with
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
75347
diff
changeset
|
2302 ;; vc-cvs.el by code using cvs2cl. |
85606
b0f9e8f1fbb2
(vc-update-changelog-rcs2log): Remove incorrect `backend' arg.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85495
diff
changeset
|
2303 (defun vc-update-changelog-rcs2log (files) |
31404
f2ab9420390f
2000-09-05 Stefan Monnier <monnier@cs.yale.edu>
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
31387
diff
changeset
|
2304 "Default implementation of update-changelog. |
f2ab9420390f
2000-09-05 Stefan Monnier <monnier@cs.yale.edu>
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
31387
diff
changeset
|
2305 Uses `rcs2log' which only works for RCS and CVS." |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
2306 ;; FIXME: We (c|sh)ould add support for cvs2cl |
14053
c8c5b83d9691
(vc-update-change-log): Use add-log-full-name and
Karl Heuer <kwzh@gnu.org>
parents:
14040
diff
changeset
|
2307 (let ((odefault default-directory) |
17410
777a31320b0f
(vc-update-change-log): Run `rcs2log' in the correct
Richard M. Stallman <rms@gnu.org>
parents:
17274
diff
changeset
|
2308 (changelog (find-change-log)) |
777a31320b0f
(vc-update-change-log): Run `rcs2log' in the correct
Richard M. Stallman <rms@gnu.org>
parents:
17274
diff
changeset
|
2309 ;; Presumably not portable to non-Unixy systems, along with rcs2log: |
43725
60a9d71aad02
(vc-transfer-file): Use `make-temp-file' instead of `make-temp-name'.
André Spiegel <spiegel@gnu.org>
parents:
43586
diff
changeset
|
2310 (tempfile (make-temp-file |
25488
48c997ce6c8d
(vc-update-change-log): Use small-temporary-file-directory when non-nil.
Eli Zaretskii <eliz@gnu.org>
parents:
25406
diff
changeset
|
2311 (expand-file-name "vc" |
48c997ce6c8d
(vc-update-change-log): Use small-temporary-file-directory when non-nil.
Eli Zaretskii <eliz@gnu.org>
parents:
25406
diff
changeset
|
2312 (or small-temporary-file-directory |
48c997ce6c8d
(vc-update-change-log): Use small-temporary-file-directory when non-nil.
Eli Zaretskii <eliz@gnu.org>
parents:
25406
diff
changeset
|
2313 temporary-file-directory)))) |
68384
1d4de26bcb1f
(vc-default-dired-state-info): Pass FILE to vc-user-login-name.
André Spiegel <spiegel@gnu.org>
parents:
67885
diff
changeset
|
2314 (login-name (or user-login-name |
1d4de26bcb1f
(vc-default-dired-state-info): Pass FILE to vc-user-login-name.
André Spiegel <spiegel@gnu.org>
parents:
67885
diff
changeset
|
2315 (format "uid%d" (number-to-string (user-uid))))) |
14855
52f730593064
(vc-update-change-log): Use add-log-full-name and
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
2316 (full-name (or add-log-full-name |
16743
612fe5713ede
(vc-next-action-on-file, vc-update-change-log,
André Spiegel <spiegel@gnu.org>
parents:
16590
diff
changeset
|
2317 (user-full-name) |
612fe5713ede
(vc-next-action-on-file, vc-update-change-log,
André Spiegel <spiegel@gnu.org>
parents:
16590
diff
changeset
|
2318 (user-login-name) |
612fe5713ede
(vc-next-action-on-file, vc-update-change-log,
André Spiegel <spiegel@gnu.org>
parents:
16590
diff
changeset
|
2319 (format "uid%d" (number-to-string (user-uid))))) |
14855
52f730593064
(vc-update-change-log): Use add-log-full-name and
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
2320 (mailing-address (or add-log-mailing-address |
52f730593064
(vc-update-change-log): Use add-log-full-name and
Richard M. Stallman <rms@gnu.org>
parents:
14734
diff
changeset
|
2321 user-mail-address))) |
17410
777a31320b0f
(vc-update-change-log): Run `rcs2log' in the correct
Richard M. Stallman <rms@gnu.org>
parents:
17274
diff
changeset
|
2322 (find-file-other-window changelog) |
3905
5669887e3692
(vc-update-change-log): Restore previous default-directory
Richard M. Stallman <rms@gnu.org>
parents:
3895
diff
changeset
|
2323 (barf-if-buffer-read-only) |
5669887e3692
(vc-update-change-log): Restore previous default-directory
Richard M. Stallman <rms@gnu.org>
parents:
3895
diff
changeset
|
2324 (vc-buffer-sync) |
5669887e3692
(vc-update-change-log): Restore previous default-directory
Richard M. Stallman <rms@gnu.org>
parents:
3895
diff
changeset
|
2325 (undo-boundary) |
5669887e3692
(vc-update-change-log): Restore previous default-directory
Richard M. Stallman <rms@gnu.org>
parents:
3895
diff
changeset
|
2326 (goto-char (point-min)) |
5669887e3692
(vc-update-change-log): Restore previous default-directory
Richard M. Stallman <rms@gnu.org>
parents:
3895
diff
changeset
|
2327 (push-mark) |
5669887e3692
(vc-update-change-log): Restore previous default-directory
Richard M. Stallman <rms@gnu.org>
parents:
3895
diff
changeset
|
2328 (message "Computing change log entries...") |
3939
1b954eb0f249
(vc-update-change-log): Ensure that file names inserted into a ChangeLog
Paul Eggert <eggert@twinsun.com>
parents:
3905
diff
changeset
|
2329 (message "Computing change log entries... %s" |
17410
777a31320b0f
(vc-update-change-log): Run `rcs2log' in the correct
Richard M. Stallman <rms@gnu.org>
parents:
17274
diff
changeset
|
2330 (unwind-protect |
777a31320b0f
(vc-update-change-log): Run `rcs2log' in the correct
Richard M. Stallman <rms@gnu.org>
parents:
17274
diff
changeset
|
2331 (progn |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
2332 (setq default-directory odefault) |
31565
de4e73d77734
(vc-dired-listing-switches): Fix :version.
Dave Love <fx@gnu.org>
parents:
31520
diff
changeset
|
2333 (if (eq 0 (apply 'call-process |
de4e73d77734
(vc-dired-listing-switches): Fix :version.
Dave Love <fx@gnu.org>
parents:
31520
diff
changeset
|
2334 (expand-file-name "rcs2log" |
de4e73d77734
(vc-dired-listing-switches): Fix :version.
Dave Love <fx@gnu.org>
parents:
31520
diff
changeset
|
2335 exec-directory) |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
2336 nil (list t tempfile) nil |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
2337 "-c" changelog |
68384
1d4de26bcb1f
(vc-default-dired-state-info): Pass FILE to vc-user-login-name.
André Spiegel <spiegel@gnu.org>
parents:
67885
diff
changeset
|
2338 "-u" (concat login-name |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
2339 "\t" full-name |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
2340 "\t" mailing-address) |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
2341 (mapcar |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
2342 (lambda (f) |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
2343 (file-relative-name |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
2344 (expand-file-name f odefault))) |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
2345 files))) |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
2346 "done" |
67755
0cdb122ad4db
Remove unnecessary leading * in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67578
diff
changeset
|
2347 (pop-to-buffer (get-buffer-create "*vc*")) |
17410
777a31320b0f
(vc-update-change-log): Run `rcs2log' in the correct
Richard M. Stallman <rms@gnu.org>
parents:
17274
diff
changeset
|
2348 (erase-buffer) |
59011
816dc38b1981
(vc-default-update-changelog): Use insert-file-contents, rather than
André Spiegel <spiegel@gnu.org>
parents:
58642
diff
changeset
|
2349 (insert-file-contents tempfile) |
17410
777a31320b0f
(vc-update-change-log): Run `rcs2log' in the correct
Richard M. Stallman <rms@gnu.org>
parents:
17274
diff
changeset
|
2350 "failed")) |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
2351 (setq default-directory (file-name-directory changelog)) |
17410
777a31320b0f
(vc-update-change-log): Run `rcs2log' in the correct
Richard M. Stallman <rms@gnu.org>
parents:
17274
diff
changeset
|
2352 (delete-file tempfile))))) |
18174
238e30645d07
(diff-switches): defvar deleted.
Richard M. Stallman <rms@gnu.org>
parents:
17911
diff
changeset
|
2353 |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
2354 (defun vc-default-find-revision (backend file rev buffer) |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
2355 "Provide the new `find-revision' op based on the old `checkout' op. |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2356 This is only for compatibility with old backends. They should be updated |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
2357 to provide the `find-revision' operation instead." |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2358 (let ((tmpfile (make-temp-file (expand-file-name file)))) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2359 (unwind-protect |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2360 (progn |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2361 (vc-call-backend backend 'checkout file nil rev tmpfile) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2362 (with-current-buffer buffer |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2363 (insert-file-contents-literally tmpfile))) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2364 (delete-file tmpfile)))) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2365 |
94539
fee32a11924d
Name change in preparation for ripping out vc-dired.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94538
diff
changeset
|
2366 (defun vc-default-prettify-state-info (backend file) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
2367 (let* ((state (vc-state file)) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
2368 (statestring |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
2369 (cond |
95054
31c82b39ac3c
Use state prettyprinter in vc-dir buffers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
95049
diff
changeset
|
2370 ((stringp state) (concat "(locked:" state ")")) |
93124
97c5b398eee4
* vc-hooks.el (vc-default-mode-line-string): Add case for added files.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
93119
diff
changeset
|
2371 ((eq state 'edited) "(modified)") |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
2372 ((eq state 'needs-merge) "(merge)") |
94521
2a61c5f918a5
Change 'needs-patch to 'needs-update.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94520
diff
changeset
|
2373 ((eq state 'needs-update) "(update)") |
87449
7477a697d7e1
* vc-cvs.el, vc-svn.el: Simplify backend dired-state-info
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
87446
diff
changeset
|
2374 ((eq state 'added) "(added)") |
87477
b5060e79eb98
* vc-svn.el (vc-svn-parse-status): Recognize 'added, 'removed,
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
87450
diff
changeset
|
2375 ((eq state 'removed) "(removed)") |
94699
7e7ef774315b
Cleanup preparatory to getting rid of dired.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94698
diff
changeset
|
2376 ((eq state 'ignored) "(ignored)") |
95054
31c82b39ac3c
Use state prettyprinter in vc-dir buffers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
95049
diff
changeset
|
2377 ((eq state 'unregistered) "(unregistered)") |
87450
71fc7b1db920
* vc-hooks.el (vc-state): Document new 'ignored and 'unregistered
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
87449
diff
changeset
|
2378 ((eq state 'unlocked-changes) "(stale)") |
95314
325b3c8ac762
(vc-default-prettify-state-info): Fix formatting of an
Andreas Schwab <schwab@suse.de>
parents:
95270
diff
changeset
|
2379 (t (format "(unknown:%s)" state)))) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
2380 (buffer |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
2381 (get-file-buffer file)) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
2382 (modflag |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
2383 (if (and buffer (buffer-modified-p buffer)) "+" ""))) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
2384 (concat statestring modflag))) |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2385 |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2386 (defun vc-default-rename-file (backend old new) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2387 (condition-case nil |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2388 (add-name-to-file old new) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2389 (error (rename-file old new))) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2390 (vc-delete-file old) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2391 (with-current-buffer (find-file-noselect new) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2392 (vc-register))) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2393 |
85364
f8d1bb788744
(vc-diff-sentinel, vc-diff-internal): Revert some changes in the
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85178
diff
changeset
|
2394 (defalias 'vc-default-check-headers 'ignore) |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2395 |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2396 (defun vc-default-log-view-mode (backend) (log-view-mode)) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2397 |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2398 (defun vc-default-show-log-entry (backend rev) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2399 (with-no-warnings |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2400 (log-view-goto-rev rev))) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2401 |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2402 (defun vc-default-comment-history (backend file) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2403 "Return a string with all log entries stored in BACKEND for FILE." |
93956
bfc762f0b49c
* vc-hooks.el (vc-state): Add new state `conflict'.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93934
diff
changeset
|
2404 (when (vc-find-backend-function backend 'print-log) |
bfc762f0b49c
* vc-hooks.el (vc-state): Add new state `conflict'.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93934
diff
changeset
|
2405 (with-current-buffer "*vc*" |
94805
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
2406 (vc-call-backend backend 'print-log (list file)) |
93956
bfc762f0b49c
* vc-hooks.el (vc-state): Add new state `conflict'.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93934
diff
changeset
|
2407 (buffer-string)))) |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2408 |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2409 (defun vc-default-receive-file (backend file rev) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2410 "Let BACKEND receive FILE from another version control system." |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2411 (vc-call-backend backend 'register file rev "")) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2412 |
95020
4da572dc4992
Snapshot primitives globally renamed to refer to tags, documentation updated.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
95018
diff
changeset
|
2413 (defun vc-default-retrieve-tag (backend dir name update) |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2414 (if (string= name "") |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2415 (progn |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2416 (vc-file-tree-walk |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2417 dir |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2418 (lambda (f) (and |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2419 (vc-up-to-date-p f) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2420 (vc-error-occurred |
94805
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
2421 (vc-call-backend backend 'checkout f nil "") |
94207
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
2422 (when update (vc-resynch-buffer f t t))))))) |
95020
4da572dc4992
Snapshot primitives globally renamed to refer to tags, documentation updated.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
95018
diff
changeset
|
2423 (let ((result (vc-tag-precondition dir))) |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2424 (if (stringp result) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2425 (error "File %s is locked" result) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2426 (setq update (and (eq result 'visited) update)) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2427 (vc-file-tree-walk |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2428 dir |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2429 (lambda (f) (vc-error-occurred |
94805
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
2430 (vc-call-backend backend 'checkout f nil name) |
94207
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
2431 (when update (vc-resynch-buffer f t t))))))))) |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2432 |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2433 (defun vc-default-revert (backend file contents-done) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2434 (unless contents-done |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
2435 (let ((rev (vc-working-revision file)) |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2436 (file-buffer (or (get-file-buffer file) (current-buffer)))) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2437 (message "Checking out %s..." file) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2438 (let ((failed t) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2439 (backup-name (car (find-backup-file-name file)))) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2440 (when backup-name |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2441 (copy-file file backup-name 'ok-if-already-exists 'keep-date) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2442 (unless (file-writable-p file) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2443 (set-file-modes file (logior (file-modes file) 128)))) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2444 (unwind-protect |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2445 (let ((coding-system-for-read 'no-conversion) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2446 (coding-system-for-write 'no-conversion)) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2447 (with-temp-file file |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2448 (let ((outbuf (current-buffer))) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2449 ;; Change buffer to get local value of vc-checkout-switches. |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2450 (with-current-buffer file-buffer |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2451 (let ((default-directory (file-name-directory file))) |
94805
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
2452 (vc-call-backend backend 'find-revision |
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
2453 file rev outbuf))))) |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2454 (setq failed nil)) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2455 (when backup-name |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2456 (if failed |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2457 (rename-file backup-name file 'ok-if-already-exists) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2458 (and (not vc-make-backup-files) (delete-file backup-name)))))) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2459 (message "Checking out %s...done" file)))) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2460 |
85364
f8d1bb788744
(vc-diff-sentinel, vc-diff-internal): Revert some changes in the
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85178
diff
changeset
|
2461 (defalias 'vc-default-revision-completion-table 'ignore) |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2462 |
94059
c249cf124bd6
(vc-status-update): Revert an incorrect rewrite. Add some
Alexandre Julliard <julliard@winehq.org>
parents:
94003
diff
changeset
|
2463 (defun vc-default-dir-status-files (backend dir files default-state update-function) |
c249cf124bd6
(vc-status-update): Revert an incorrect rewrite. Add some
Alexandre Julliard <julliard@winehq.org>
parents:
94003
diff
changeset
|
2464 (funcall update-function |
c249cf124bd6
(vc-status-update): Revert an incorrect rewrite. Add some
Alexandre Julliard <julliard@winehq.org>
parents:
94003
diff
changeset
|
2465 (mapcar (lambda (file) (list file default-state)) files))) |
c249cf124bd6
(vc-status-update): Revert an incorrect rewrite. Add some
Alexandre Julliard <julliard@winehq.org>
parents:
94003
diff
changeset
|
2466 |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2467 (defun vc-check-headers () |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2468 "Check if the current file has any headers in it." |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2469 (interactive) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2470 (vc-call-backend (vc-backend buffer-file-name) 'check-headers)) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2471 |
18174
238e30645d07
(diff-switches): defvar deleted.
Richard M. Stallman <rms@gnu.org>
parents:
17911
diff
changeset
|
2472 |
904 | 2473 |
94573
ce09c5078ae7
Partially undo the dispatcher split, it needs to happen more gradually
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94572
diff
changeset
|
2474 ;; These things should probably be generally available |
ce09c5078ae7
Partially undo the dispatcher split, it needs to happen more gradually
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94572
diff
changeset
|
2475 |
96390
02d657f45045
* vc-dir.el (vc-dir-hide-up-to-date): Also hide empty directories.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96310
diff
changeset
|
2476 (defun vc-string-prefix-p (prefix string) |
02d657f45045
* vc-dir.el (vc-dir-hide-up-to-date): Also hide empty directories.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96310
diff
changeset
|
2477 (let ((lpref (length prefix))) |
02d657f45045
* vc-dir.el (vc-dir-hide-up-to-date): Also hide empty directories.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96310
diff
changeset
|
2478 (and (>= (length string) lpref) |
02d657f45045
* vc-dir.el (vc-dir-hide-up-to-date): Also hide empty directories.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96310
diff
changeset
|
2479 (eq t (compare-strings prefix nil nil string nil lpref))))) |
02d657f45045
* vc-dir.el (vc-dir-hide-up-to-date): Also hide empty directories.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96310
diff
changeset
|
2480 |
94573
ce09c5078ae7
Partially undo the dispatcher split, it needs to happen more gradually
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94572
diff
changeset
|
2481 (defun vc-file-tree-walk (dirname func &rest args) |
ce09c5078ae7
Partially undo the dispatcher split, it needs to happen more gradually
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94572
diff
changeset
|
2482 "Walk recursively through DIRNAME. |
ce09c5078ae7
Partially undo the dispatcher split, it needs to happen more gradually
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94572
diff
changeset
|
2483 Invoke FUNC f ARGS on each VC-managed file f underneath it." |
ce09c5078ae7
Partially undo the dispatcher split, it needs to happen more gradually
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94572
diff
changeset
|
2484 (vc-file-tree-walk-internal (expand-file-name dirname) func args) |
ce09c5078ae7
Partially undo the dispatcher split, it needs to happen more gradually
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94572
diff
changeset
|
2485 (message "Traversing directory %s...done" dirname)) |
ce09c5078ae7
Partially undo the dispatcher split, it needs to happen more gradually
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94572
diff
changeset
|
2486 |
ce09c5078ae7
Partially undo the dispatcher split, it needs to happen more gradually
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94572
diff
changeset
|
2487 (defun vc-file-tree-walk-internal (file func args) |
ce09c5078ae7
Partially undo the dispatcher split, it needs to happen more gradually
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94572
diff
changeset
|
2488 (if (not (file-directory-p file)) |
ce09c5078ae7
Partially undo the dispatcher split, it needs to happen more gradually
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94572
diff
changeset
|
2489 (when (vc-backend file) (apply func file args)) |
ce09c5078ae7
Partially undo the dispatcher split, it needs to happen more gradually
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94572
diff
changeset
|
2490 (message "Traversing directory %s..." (abbreviate-file-name file)) |
ce09c5078ae7
Partially undo the dispatcher split, it needs to happen more gradually
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94572
diff
changeset
|
2491 (let ((dir (file-name-as-directory file))) |
ce09c5078ae7
Partially undo the dispatcher split, it needs to happen more gradually
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94572
diff
changeset
|
2492 (mapcar |
ce09c5078ae7
Partially undo the dispatcher split, it needs to happen more gradually
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94572
diff
changeset
|
2493 (lambda (f) (or |
ce09c5078ae7
Partially undo the dispatcher split, it needs to happen more gradually
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94572
diff
changeset
|
2494 (string-equal f ".") |
ce09c5078ae7
Partially undo the dispatcher split, it needs to happen more gradually
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94572
diff
changeset
|
2495 (string-equal f "..") |
ce09c5078ae7
Partially undo the dispatcher split, it needs to happen more gradually
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94572
diff
changeset
|
2496 (member f vc-directory-exclusion-list) |
ce09c5078ae7
Partially undo the dispatcher split, it needs to happen more gradually
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94572
diff
changeset
|
2497 (let ((dirf (expand-file-name f dir))) |
ce09c5078ae7
Partially undo the dispatcher split, it needs to happen more gradually
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94572
diff
changeset
|
2498 (or |
ce09c5078ae7
Partially undo the dispatcher split, it needs to happen more gradually
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94572
diff
changeset
|
2499 (file-symlink-p dirf) ;; Avoid possible loops. |
ce09c5078ae7
Partially undo the dispatcher split, it needs to happen more gradually
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94572
diff
changeset
|
2500 (vc-file-tree-walk-internal dirf func args))))) |
ce09c5078ae7
Partially undo the dispatcher split, it needs to happen more gradually
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94572
diff
changeset
|
2501 (directory-files dir))))) |
ce09c5078ae7
Partially undo the dispatcher split, it needs to happen more gradually
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94572
diff
changeset
|
2502 |
904 | 2503 (provide 'vc) |
2504 | |
56952
1e43327f7457
(vc-buffer-context, vc-restore-buffer-context): Disable obsolete code.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
55100
diff
changeset
|
2505 ;; arch-tag: ca82c1de-3091-4e26-af92-460abc6213a6 |
904 | 2506 ;;; vc.el ends here |