Mercurial > emacs
annotate lisp/vc.el @ 104677:4be7a4e891e2
(clean): Add buildobj.h.
author | Eli Zaretskii <eliz@gnu.org> |
---|---|
date | Fri, 28 Aug 2009 14:00:24 +0000 |
parents | ef4820f099a1 |
children | adeed914a5fb |
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, |
100908 | 4 ;; 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 |
87893
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 ;; | |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
85 ;; ADDING SUPPORT FOR OTHER BACKENDS |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
86 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
87 ;; 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
|
88 ;; 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
|
89 ;; 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
|
90 ;; 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
|
91 ;; 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
|
92 ;; `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
|
93 ;; 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
|
94 ;; will be available for that file. |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
95 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
96 ;; 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
|
97 ;; 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
|
98 ;; 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
|
99 ;; `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
|
100 ;; 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
|
101 ;; 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
|
102 ;; 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
|
103 ;; 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
|
104 ;; the macro `with-vc-properties' in vc.el). |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
105 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
106 ;; 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
|
107 ;; 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
|
108 ;; `*'), others are optional (`-'). |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
109 ;; |
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
|
110 ;; 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
|
111 ;; |
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
|
112 ;; * 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
|
113 ;; |
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
|
114 ;; 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
|
115 ;; 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
|
116 ;; 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
|
117 ;; 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
|
118 ;; |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
119 ;; STATE-QUERYING FUNCTIONS |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
120 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
121 ;; * registered (file) |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
122 ;; |
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
|
123 ;; 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
|
124 ;; 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
|
125 ;; 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
|
126 ;; 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
|
127 ;; 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
|
128 ;; (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
|
129 ;; the controlling backend for FILE. |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
130 ;; |
40958
4b4504c5aa56
* vc.el (vc-print-log): Bind `inhibit-read-only' to t before and
Sam Steingold <sds@gnu.org>
parents:
40850
diff
changeset
|
131 ;; * state (file) |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
132 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
133 ;; 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
|
134 ;; 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
|
135 ;; reliable state computation; it is usually called immediately after |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
136 ;; 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
|
137 ;; 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
|
138 ;; 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
|
139 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
140 ;; - state-heuristic (file) |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
141 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
142 ;; 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
|
143 ;; 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
|
144 ;; 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
|
145 ;; see the doc string of `vc-state'. |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
146 ;; |
94003
2ecb2ea8d5b5
Change `dir-status' to not take (and pass) status-buffer.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
93956
diff
changeset
|
147 ;; - dir-status (dir update-function) |
91960
81890a88d53d
(dir-status): Add a brief description.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
91951
diff
changeset
|
148 ;; |
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
|
149 ;; 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
|
150 ;; 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
|
151 ;; 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
|
152 ;; 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
|
153 ;; 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
|
154 ;; 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
|
155 ;; 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
|
156 ;; 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
|
157 ;; 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
|
158 ;; (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
|
159 ;; 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
|
160 ;; 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
|
161 ;; To provide more backend specific functionality for `vc-dir' |
99159
b0dce7f34dda
* vc.el: Rename VC methods that were missed when vc-status was
Dan Nicolaescu <dann@ics.uci.edu>
parents:
98388
diff
changeset
|
162 ;; the following functions might be needed: `dir-extra-headers', |
b0dce7f34dda
* vc.el: Rename VC methods that were missed when vc-status was
Dan Nicolaescu <dann@ics.uci.edu>
parents:
98388
diff
changeset
|
163 ;; `dir-printer', `extra-dir-menu' and `dir-status-files'. |
91960
81890a88d53d
(dir-status): Add a brief description.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
91951
diff
changeset
|
164 ;; |
94059
c249cf124bd6
(vc-status-update): Revert an incorrect rewrite. Add some
Alexandre Julliard <julliard@winehq.org>
parents:
94003
diff
changeset
|
165 ;; - 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
|
166 ;; |
c249cf124bd6
(vc-status-update): Revert an incorrect rewrite. Add some
Alexandre Julliard <julliard@winehq.org>
parents:
94003
diff
changeset
|
167 ;; 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
|
168 ;; 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
|
169 ;; 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
|
170 ;; 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
|
171 ;; are in DEFAULT-STATE. |
c249cf124bd6
(vc-status-update): Revert an incorrect rewrite. Add some
Alexandre Julliard <julliard@winehq.org>
parents:
94003
diff
changeset
|
172 ;; |
99159
b0dce7f34dda
* vc.el: Rename VC methods that were missed when vc-status was
Dan Nicolaescu <dann@ics.uci.edu>
parents:
98388
diff
changeset
|
173 ;; - dir-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
|
174 ;; |
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
|
175 ;; 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
|
176 ;; |
99159
b0dce7f34dda
* vc.el: Rename VC methods that were missed when vc-status was
Dan Nicolaescu <dann@ics.uci.edu>
parents:
98388
diff
changeset
|
177 ;; - dir-printer (fileinfo) |
93425
8459d55c7312
Allow backends to display backend specific information in
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93382
diff
changeset
|
178 ;; |
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
|
179 ;; 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
|
180 ;; 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
|
181 ;; 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
|
182 ;; 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
|
183 ;; 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
|
184 ;; |
93670
80757ac2da77
(vc-default-status-fileinfo-extra): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93461
diff
changeset
|
185 ;; - status-fileinfo-extra (file) |
80757ac2da77
(vc-default-status-fileinfo-extra): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93461
diff
changeset
|
186 ;; |
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
|
187 ;; 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
|
188 ;; |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
189 ;; * working-revision (file) |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
190 ;; |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
191 ;; 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
|
192 ;; 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
|
193 ;; 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
|
194 ;; committed. |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
195 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
196 ;; - latest-on-branch-p (file) |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
197 ;; |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
198 ;; 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
|
199 ;; 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
|
200 ;; The default implementation always returns t, which means that |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
201 ;; 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
|
202 ;; |
94481
ad6c174910db
Make `checkout-model' apply to filesets.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94478
diff
changeset
|
203 ;; * checkout-model (files) |
ad6c174910db
Make `checkout-model' apply to filesets.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94478
diff
changeset
|
204 ;; |
ad6c174910db
Make `checkout-model' apply to filesets.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94478
diff
changeset
|
205 ;; 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
|
206 ;; 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
|
207 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
208 ;; - workfile-unchanged-p (file) |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
209 ;; |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
210 ;; 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
|
211 ;; 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
|
212 ;; 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
|
213 ;; 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
|
214 ;; default implementation of this function can be used, which |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
215 ;; 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
|
216 ;; 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
|
217 ;; `vc-disable-async-diff'.) |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
218 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
219 ;; - mode-line-string (file) |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
220 ;; |
82027
1350ba0c0448
* vc-cvs.el (vc-cvs-mode-line-string): Add support for tooltips
Dan Nicolaescu <dann@ics.uci.edu>
parents:
81990
diff
changeset
|
221 ;; 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
|
222 ;; 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
|
223 ;; `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
|
224 ;; 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
|
225 ;; 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
|
226 ;; `vc-state' can return. |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
227 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
228 ;; STATE-CHANGING FUNCTIONS |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
229 ;; |
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
|
230 ;; * 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
|
231 ;; |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
232 ;; 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
|
233 ;; 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
|
234 ;; 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
|
235 ;; |
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
|
236 ;; * 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
|
237 ;; |
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
|
238 ;; 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
|
239 ;; 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
|
240 ;; 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
|
241 ;; 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
|
242 ;; 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
|
243 ;; 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
|
244 ;; |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
245 ;; - init-revision (file) |
43450
2b50b9c69fde
Patch by Jonathan Kamens <jik@kamens.brookline.ma.us>.
André Spiegel <spiegel@gnu.org>
parents:
42548
diff
changeset
|
246 ;; |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
247 ;; 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
|
248 ;; specified by the user. If not provided, the variable |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
249 ;; 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
|
250 ;; |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
251 ;; - responsible-p (file) |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
252 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
253 ;; 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
|
254 ;; 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
|
255 ;; 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
|
256 ;; like change log generation. The default implementation always |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
257 ;; returns nil. |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
258 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
259 ;; - could-register (file) |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
260 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
261 ;; 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
|
262 ;; default implementation always returns t. |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
263 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
264 ;; - receive-file (file rev) |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
265 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
266 ;; 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
|
267 ;; another backend. The default implementation simply calls `register' |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
268 ;; 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
|
269 ;; 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
|
270 ;; FILE that resemble those of the other backend. |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
271 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
272 ;; - unregister (file) |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
273 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
274 ;; 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
|
275 ;; 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
|
276 ;; |
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
|
277 ;; * checkin (files rev comment) |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
278 ;; |
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
|
279 ;; 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
|
280 ;; 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
|
281 ;; 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
|
282 ;; 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
|
283 ;; 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
|
284 ;; 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
|
285 ;; |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
286 ;; * 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
|
287 ;; |
cf312195338d
(vc-find-version): Use the new backend op `find-version'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47781
diff
changeset
|
288 ;; 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
|
289 ;; 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
|
290 ;; 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
|
291 ;; 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
|
292 ;; |
cf312195338d
(vc-find-version): Use the new backend op `find-version'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47781
diff
changeset
|
293 ;; * checkout (file &optional editable rev) |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
294 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
295 ;; 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
|
296 ;; 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
|
297 ;; 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
|
298 ;; 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
|
299 ;; 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
|
300 ;; 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
|
301 ;; 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
|
302 ;; to the backend command. |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
303 ;; |
39000
60cf6aee9fd1
(vc-revert-file): Call the backend even if the FILE's
André Spiegel <spiegel@gnu.org>
parents:
38726
diff
changeset
|
304 ;; * revert (file &optional contents-done) |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
305 ;; |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
306 ;; 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
|
307 ;; 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
|
308 ;; 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
|
309 ;; only needs to update the status of FILE within the backend. |
104614
92965f3f01f0
Document the desired behavior for reverted files in the
Dan Nicolaescu <dann@ics.uci.edu>
parents:
104597
diff
changeset
|
310 ;; If FILE is in the `added' state it should be returned to the |
92965f3f01f0
Document the desired behavior for reverted files in the
Dan Nicolaescu <dann@ics.uci.edu>
parents:
104597
diff
changeset
|
311 ;; `unregistered' state. |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
312 ;; |
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
|
313 ;; - rollback (files) |
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 ;; 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
|
316 ;; 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
|
317 ;; 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
|
318 ;; 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
|
319 ;; '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
|
320 ;; files.) |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
321 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
322 ;; - merge (file rev1 rev2) |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
323 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
324 ;; 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
|
325 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
326 ;; - merge-news (file) |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
327 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
328 ;; Merge recent changes from the current branch into FILE. |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
329 ;; |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
330 ;; - steal-lock (file &optional revision) |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
331 ;; |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
332 ;; 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
|
333 ;; 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
|
334 ;; 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
|
335 ;; locked by other users. |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
336 ;; |
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
|
337 ;; - 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
|
338 ;; |
87596
0f01cefc5aa8
Fix typo in comment. Reported by Tom Tromey <tromey@redhat.com>.
Juanma Barranquero <lekktu@gmail.com>
parents:
87590
diff
changeset
|
339 ;; 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
|
340 ;; 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
|
341 ;; |
93956
bfc762f0b49c
* vc-hooks.el (vc-state): Add new state `conflict'.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93934
diff
changeset
|
342 ;; - mark-resolved (files) |
bfc762f0b49c
* vc-hooks.el (vc-state): Add new state `conflict'.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93934
diff
changeset
|
343 ;; |
bfc762f0b49c
* vc-hooks.el (vc-state): Add new state `conflict'.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93934
diff
changeset
|
344 ;; 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
|
345 ;; 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
|
346 ;; |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
347 ;; HISTORY FUNCTIONS |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
348 ;; |
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
|
349 ;; * print-log (files &optional buffer) |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
350 ;; |
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
|
351 ;; 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
|
352 ;; 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
|
353 ;; only a single file argument.) |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
354 ;; |
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
|
355 ;; - 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
|
356 ;; |
a861d80cf88c
* log-view.el (log-view-font-lock-keywords): Use `eval' to consult the
Dan Nicolaescu <dann@ics.uci.edu>
parents:
75347
diff
changeset
|
357 ;; 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
|
358 ;; `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
|
359 ;; 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
|
360 ;; |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
361 ;; - show-log-entry (revision) |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
362 ;; |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
363 ;; 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
|
364 ;; 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
|
365 ;; implementation of this function works for RCS-style logs. |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
366 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
367 ;; - comment-history (file) |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
368 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
369 ;; 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
|
370 ;; 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
|
371 ;; retaining comment information. |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
372 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
373 ;; - update-changelog (files) |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
374 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
375 ;; 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
|
376 ;; 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
|
377 ;; default implementation runs rcs2log, which handles RCS- and |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
378 ;; CVS-style logs. |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
379 ;; |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
380 ;; * diff (files &optional rev1 rev2 buffer) |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
381 ;; |
54463
4598019c5c85
Add new optional BUFFER argument to vc-BACKEND-print-log and
André Spiegel <spiegel@gnu.org>
parents:
54398
diff
changeset
|
382 ;; 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
|
383 ;; 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
|
384 ;; 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
|
385 ;; 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
|
386 ;; 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
|
387 ;; 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
|
388 ;; 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
|
389 ;; 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
|
390 ;; run asynchronously). |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
391 ;; |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
392 ;; - 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
|
393 ;; |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
394 ;; 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
|
395 ;; 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
|
396 ;; |
58321
f398ebfc07e2
Update annotation-related comments.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
57906
diff
changeset
|
397 ;; - annotate-command (file buf &optional rev) |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
398 ;; |
58321
f398ebfc07e2
Update annotation-related comments.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
57906
diff
changeset
|
399 ;; 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
|
400 ;; 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
|
401 ;; 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
|
402 ;; 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
|
403 ;; file is fontified according to age. |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
404 ;; |
40170
115527dd1d27
Change scaling algorithm for vc-annotate.
André Spiegel <spiegel@gnu.org>
parents:
40164
diff
changeset
|
405 ;; - annotate-time () |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
406 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
407 ;; 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
|
408 ;; 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
|
409 ;; 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
|
410 ;; 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
|
411 ;; multi-part times as returned by `current-time' and `encode-time' |
42205 | 412 ;; 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
|
413 ;; 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
|
414 ;; 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
|
415 ;; 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
|
416 ;; 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
|
417 ;; 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
|
418 ;; |
115527dd1d27
Change scaling algorithm for vc-annotate.
André Spiegel <spiegel@gnu.org>
parents:
40164
diff
changeset
|
419 ;; - annotate-current-time () |
115527dd1d27
Change scaling algorithm for vc-annotate.
André Spiegel <spiegel@gnu.org>
parents:
40164
diff
changeset
|
420 ;; |
115527dd1d27
Change scaling algorithm for vc-annotate.
André Spiegel <spiegel@gnu.org>
parents:
40164
diff
changeset
|
421 ;; 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
|
422 ;; 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
|
423 ;; (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
|
424 ;; 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
|
425 ;; 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
|
426 ;; |
53630
2f41b6c48585
* vc.el (vc-default-previous-version): Doc enhancement.
André Spiegel <spiegel@gnu.org>
parents:
53283
diff
changeset
|
427 ;; - annotate-extract-revision-at-line () |
2f41b6c48585
* vc.el (vc-default-previous-version): Doc enhancement.
André Spiegel <spiegel@gnu.org>
parents:
53283
diff
changeset
|
428 ;; |
2f41b6c48585
* vc.el (vc-default-previous-version): Doc enhancement.
André Spiegel <spiegel@gnu.org>
parents:
53283
diff
changeset
|
429 ;; 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
|
430 ;; 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
|
431 ;; 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
|
432 ;; corresponding to the current line. |
2f41b6c48585
* vc.el (vc-default-previous-version): Doc enhancement.
André Spiegel <spiegel@gnu.org>
parents:
53283
diff
changeset
|
433 ;; |
95020
4da572dc4992
Snapshot primitives globally renamed to refer to tags, documentation updated.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
95018
diff
changeset
|
434 ;; TAG SYSTEM |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
435 ;; |
95020
4da572dc4992
Snapshot primitives globally renamed to refer to tags, documentation updated.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
95018
diff
changeset
|
436 ;; - create-tag (dir name branchp) |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
437 ;; |
95020
4da572dc4992
Snapshot primitives globally renamed to refer to tags, documentation updated.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
95018
diff
changeset
|
438 ;; 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
|
439 ;; 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
|
440 ;; 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
|
441 ;; 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
|
442 ;; 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
|
443 ;; 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
|
444 ;; assigns the tag to each file. |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
445 ;; |
95020
4da572dc4992
Snapshot primitives globally renamed to refer to tags, documentation updated.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
95018
diff
changeset
|
446 ;; - retrieve-tag (dir name update) |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
447 ;; |
95020
4da572dc4992
Snapshot primitives globally renamed to refer to tags, documentation updated.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
95018
diff
changeset
|
448 ;; 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
|
449 ;; 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
|
450 ;; tag that are currently visited. The default implementation |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
451 ;; 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
|
452 ;; 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
|
453 ;; function to retrieve the corresponding revisions. |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
454 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
455 ;; MISCELLANEOUS |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
456 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
457 ;; - make-version-backups-p (file) |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
458 ;; |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
459 ;; 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
|
460 ;; 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
|
461 ;; `revert' operations itself, without calling the backend system. The |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
462 ;; default implementation always returns nil. |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
463 ;; |
50926
dd6110a63907
New backend functions `delete-file' and `repository-hostname'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50894
diff
changeset
|
464 ;; - repository-hostname (dirname) |
dd6110a63907
New backend functions `delete-file' and `repository-hostname'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50894
diff
changeset
|
465 ;; |
dd6110a63907
New backend functions `delete-file' and `repository-hostname'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50894
diff
changeset
|
466 ;; 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
|
467 ;; 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
|
468 ;; 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
|
469 ;; 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
|
470 ;; for their convenience. |
dd6110a63907
New backend functions `delete-file' and `repository-hostname'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50894
diff
changeset
|
471 ;; |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
472 ;; - previous-revision (file rev) |
42548
1cf3624d80ac
(vc-branch-part): Return nil if there's no `.'
André Spiegel <spiegel@gnu.org>
parents:
42205
diff
changeset
|
473 ;; |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
474 ;; 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
|
475 ;; revision exists. |
53630
2f41b6c48585
* vc.el (vc-default-previous-version): Doc enhancement.
André Spiegel <spiegel@gnu.org>
parents:
53283
diff
changeset
|
476 ;; |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
477 ;; - next-revision (file rev) |
53630
2f41b6c48585
* vc.el (vc-default-previous-version): Doc enhancement.
André Spiegel <spiegel@gnu.org>
parents:
53283
diff
changeset
|
478 ;; |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
479 ;; 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
|
480 ;; revision exists. |
42548
1cf3624d80ac
(vc-branch-part): Return nil if there's no `.'
André Spiegel <spiegel@gnu.org>
parents:
42205
diff
changeset
|
481 ;; |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
482 ;; - check-headers () |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
483 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
484 ;; 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
|
485 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
486 ;; - clear-headers () |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
487 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
488 ;; 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
|
489 ;; 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
|
490 ;; 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
|
491 ;; 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
|
492 ;; 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
|
493 ;; wrong information. |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
494 ;; |
50926
dd6110a63907
New backend functions `delete-file' and `repository-hostname'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50894
diff
changeset
|
495 ;; - delete-file (file) |
dd6110a63907
New backend functions `delete-file' and `repository-hostname'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50894
diff
changeset
|
496 ;; |
dd6110a63907
New backend functions `delete-file' and `repository-hostname'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50894
diff
changeset
|
497 ;; 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
|
498 ;; 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
|
499 ;; signal an error. |
dd6110a63907
New backend functions `delete-file' and `repository-hostname'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50894
diff
changeset
|
500 ;; |
35199
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
501 ;; - rename-file (old new) |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
502 ;; |
aa38d1de35cb
Added documentation for backend interface.
André Spiegel <spiegel@gnu.org>
parents:
35131
diff
changeset
|
503 ;; 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
|
504 ;; 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
|
505 ;; 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
|
506 ;; |
54398
2decd50569f3
Document new find-file-hook operation.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
53874
diff
changeset
|
507 ;; - find-file-hook () |
2decd50569f3
Document new find-file-hook operation.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
53874
diff
changeset
|
508 ;; |
54530
b217df9a35e0
Document new backend operation `find-file-not-found-hook'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
54463
diff
changeset
|
509 ;; 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
|
510 ;; 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
|
511 ;; |
78822
1926a08e8926
* vc-arch.el (vc-arch-extra-menu-map): New var and fun.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78599
diff
changeset
|
512 ;; - 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
|
513 ;; |
1926a08e8926
* vc-arch.el (vc-arch-extra-menu-map): New var and fun.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78599
diff
changeset
|
514 ;; 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
|
515 ;; 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
|
516 ;; 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
|
517 ;; 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
|
518 ;; 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
|
519 ;; 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
|
520 ;; |
99159
b0dce7f34dda
* vc.el: Rename VC methods that were missed when vc-status was
Dan Nicolaescu <dann@ics.uci.edu>
parents:
98388
diff
changeset
|
521 ;; - extra-dir-menu () |
91951
d42fe75822fe
* vc.el (vc-status-menu, vc-status-menu-map-filter): New functions.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
91944
diff
changeset
|
522 ;; |
92122
74bf6df13b6c
* vc.el (vc-find-revision): Make vc-parent-buffer local before
Dan Nicolaescu <dann@ics.uci.edu>
parents:
92093
diff
changeset
|
523 ;; 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
|
524 ;; 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
|
525 ;; 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
|
526 ;; 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
|
527 ;; 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
|
528 ;; generic concepts. |
904 | 529 |
87743
c2a952d12e21
* smerge-mode.el (smerge-auto): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87739
diff
changeset
|
530 ;;; Todo: |
c2a952d12e21
* smerge-mode.el (smerge-auto): New function.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87739
diff
changeset
|
531 |
96046
422d57d537d7
(vc-deduce-fileset): Add arg `only-files'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95966
diff
changeset
|
532 ;; - 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
|
533 |
95269
1e9eb6106f5a
(vc-delete-file): Don't try to resynch the buffer.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95079
diff
changeset
|
534 ;; - 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
|
535 |
94861
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
536 ;;;; New Primitives: |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
537 ;; |
93362 | 538 ;; - deal with push/pull operations. |
539 ;; | |
94861
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
540 ;; - 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
|
541 ;; to be ignored, when that's possible. |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
542 ;; |
94883
b615f9b9d57e
Re-add Todo item about merging.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94882
diff
changeset
|
543 ;;;; Primitives that need changing: |
b615f9b9d57e
Re-add Todo item about merging.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94882
diff
changeset
|
544 ;; |
b615f9b9d57e
Re-add Todo item about merging.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94882
diff
changeset
|
545 ;; - 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
|
546 ;; 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
|
547 ;; 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
|
548 ;; 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
|
549 ;; is updated after these operations. |
94883
b615f9b9d57e
Re-add Todo item about merging.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94882
diff
changeset
|
550 ;; 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
|
551 ;; |
94861
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
552 ;;;; Improved branch and tag handling: |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
553 ;; |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
554 ;; - 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
|
555 ;; 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
|
556 ;; vc-cvs-sticky-tag with that. |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
557 ;; |
95020
4da572dc4992
Snapshot primitives globally renamed to refer to tags, documentation updated.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
95018
diff
changeset
|
558 ;; - 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
|
559 ;; buffers that might be visiting the affected files. |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
560 ;; |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
561 ;;;; Default Behavior: |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
562 ;; |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
563 ;; - 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
|
564 ;; 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
|
565 ;; |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
566 ;; - 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
|
567 ;; declares itself responsible. |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
568 ;; |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
569 ;;;; Internal cleanups: |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
570 ;; |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
571 ;; - 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
|
572 ;; 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
|
573 ;; |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
574 ;; - 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
|
575 ;; files managed by that backend. |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
576 ;; |
142a56989604
Reorganize to-do list.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94857
diff
changeset
|
577 ;; - 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
|
578 ;; 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
|
579 ;; 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
|
580 ;; (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
|
581 ;; (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
|
582 ;; 4 operations in term of this one. |
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 ;;;; Other |
93362 | 585 ;; |
93956
bfc762f0b49c
* vc-hooks.el (vc-state): Add new state `conflict'.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93934
diff
changeset
|
586 ;; - 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
|
587 ;; |
bfc762f0b49c
* vc-hooks.el (vc-state): Add new state `conflict'.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93934
diff
changeset
|
588 ;; - 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
|
589 ;; 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
|
590 ;; 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
|
591 ;; 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
|
592 ;; 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
|
593 ;; |
93362 | 594 ;; - make it easier to write logs. Maybe C-x 4 a should add to the log |
595 ;; 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
|
596 ;; |
94488
d3100c0eddb7
(vc-deduce-fileset): Add new parameter.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94481
diff
changeset
|
597 ;; - 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
|
598 ;; *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
|
599 ;; 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
|
600 ;; 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
|
601 ;; `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
|
602 ;; skeleton for the log... |
d3100c0eddb7
(vc-deduce-fileset): Add new parameter.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94481
diff
changeset
|
603 ;; |
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
|
604 ;; - 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
|
605 ;; 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
|
606 ;; possible VC states. |
bfc762f0b49c
* vc-hooks.el (vc-state): Add new state `conflict'.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93934
diff
changeset
|
607 ;; |
94836 | 608 ;; - 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
|
609 ;; |
92091
f6aa0a65fa82
(vc-exec-after): Move setting mode-line-process in the
Dan Nicolaescu <dann@ics.uci.edu>
parents:
92038
diff
changeset
|
610 ;; - 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
|
611 ;; 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
|
612 ;; 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
|
613 ;; 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
|
614 ;; |
96215 | 615 ;; - vc-next-action needs work in order to work with multiple |
616 ;; backends: `vc-state' returns the state for the default backend, | |
617 ;; 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
|
618 ;; |
96203 | 619 ;; - vc-dir-kill-dir-status-process should not be specific to dir-status, |
620 ;; it should work for other async commands done through vc-do-command | |
621 ;; as well, | |
622 ;; | |
623 ;; - vc-dir toolbar needs more icons. | |
624 ;; | |
96886 | 625 ;; - The backends should avoid using `vc-file-setprop' and `vc-file-getprop'. |
626 ;; | |
904 | 627 ;;; Code: |
628 | |
629 (require 'vc-hooks) | |
94571
61cca370b8f5
vc-dispatcher layer separation.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94570
diff
changeset
|
630 (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
|
631 |
94573
ce09c5078ae7
Partially undo the dispatcher split, it needs to happen more gradually
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94572
diff
changeset
|
632 (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
|
633 (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
|
634 |
94207
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
635 (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
|
636 (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
|
637 (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
|
638 minor-mode-alist))) |
904 | 639 |
640 ;; General customization | |
641 | |
17672
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
642 (defgroup vc nil |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
643 "Version-control system in Emacs." |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
644 :group 'tools) |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
645 |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
646 (defcustom vc-initial-comment nil |
67755
0cdb122ad4db
Remove unnecessary leading * in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67578
diff
changeset
|
647 "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
|
648 :type 'boolean |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
649 :group 'vc) |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
650 |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
651 (defcustom vc-default-init-revision "1.1" |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
652 "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
|
653 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
|
654 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
|
655 :type 'string |
21669
9861518505cb
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21560
diff
changeset
|
656 :group 'vc |
9861518505cb
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21560
diff
changeset
|
657 :version "20.3") |
20988
9a6179e6eff6
(vc-default-init-version): New variable.
André Spiegel <spiegel@gnu.org>
parents:
20977
diff
changeset
|
658 |
17672
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
659 (defcustom vc-checkin-switches nil |
67755
0cdb122ad4db
Remove unnecessary leading * in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67578
diff
changeset
|
660 "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
|
661 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
|
662 :type '(choice (const :tag "None" nil) |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
663 (string :tag "Argument String") |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
664 (repeat :tag "Argument List" |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
665 :value ("") |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
666 string)) |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
667 :group 'vc) |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
668 |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
669 (defcustom vc-checkout-switches nil |
67755
0cdb122ad4db
Remove unnecessary leading * in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67578
diff
changeset
|
670 "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
|
671 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
|
672 :type '(choice (const :tag "None" nil) |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
673 (string :tag "Argument String") |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
674 (repeat :tag "Argument List" |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
675 :value ("") |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
676 string)) |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
677 :group 'vc) |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
678 |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
679 (defcustom vc-register-switches nil |
67755
0cdb122ad4db
Remove unnecessary leading * in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67578
diff
changeset
|
680 "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
|
681 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
|
682 :type '(choice (const :tag "None" nil) |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
683 (string :tag "Argument String") |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
684 (repeat :tag "Argument List" |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
685 :value ("") |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
686 string)) |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
687 :group 'vc) |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
688 |
35820
3cfa6e077b83
(vc-diff-switches): New user option.
André Spiegel <spiegel@gnu.org>
parents:
35199
diff
changeset
|
689 (defcustom vc-diff-switches nil |
67755
0cdb122ad4db
Remove unnecessary leading * in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67578
diff
changeset
|
690 "A string or list of strings specifying switches for diff under VC. |
100187 | 691 When running diff under a given BACKEND, VC uses the first |
692 non-nil value of `vc-BACKEND-diff-switches', `vc-diff-switches', | |
693 and `diff-switches', in that order. Since nil means to check the | |
694 next variable in the sequence, either of the first two may use | |
695 the value t to mean no switches at all. `vc-diff-switches' | |
696 should contain switches that are specific to version control, but | |
697 not specific to any particular backend." | |
698 :type '(choice (const :tag "Unspecified" nil) | |
699 (const :tag "None" t) | |
35820
3cfa6e077b83
(vc-diff-switches): New user option.
André Spiegel <spiegel@gnu.org>
parents:
35199
diff
changeset
|
700 (string :tag "Argument String") |
100187 | 701 (repeat :tag "Argument List" :value ("") string)) |
35820
3cfa6e077b83
(vc-diff-switches): New user option.
André Spiegel <spiegel@gnu.org>
parents:
35199
diff
changeset
|
702 :group 'vc |
3cfa6e077b83
(vc-diff-switches): New user option.
André Spiegel <spiegel@gnu.org>
parents:
35199
diff
changeset
|
703 :version "21.1") |
3cfa6e077b83
(vc-diff-switches): New user option.
André Spiegel <spiegel@gnu.org>
parents:
35199
diff
changeset
|
704 |
71446
b0324f716b87
(vc-diff-knows-L): New variable.
André Spiegel <spiegel@gnu.org>
parents:
71228
diff
changeset
|
705 (defcustom vc-diff-knows-L nil |
100171 | 706 "Indicates whether diff understands the -L option. |
71446
b0324f716b87
(vc-diff-knows-L): New variable.
André Spiegel <spiegel@gnu.org>
parents:
71228
diff
changeset
|
707 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
|
708 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
|
709 :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
|
710 :group 'vc) |
b0324f716b87
(vc-diff-knows-L): New variable.
André Spiegel <spiegel@gnu.org>
parents:
71228
diff
changeset
|
711 |
59442
37d47d9bf8b1
(vc-allow-async-revert): New user option.
André Spiegel <spiegel@gnu.org>
parents:
59011
diff
changeset
|
712 (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
|
713 "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
|
714 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
|
715 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
|
716 :type '(choice (const :tag "No" nil) |
37d47d9bf8b1
(vc-allow-async-revert): New user option.
André Spiegel <spiegel@gnu.org>
parents:
59011
diff
changeset
|
717 (const :tag "Yes" t)) |
37d47d9bf8b1
(vc-allow-async-revert): New user option.
André Spiegel <spiegel@gnu.org>
parents:
59011
diff
changeset
|
718 :group 'vc |
59996
aac0a33f5772
Change release version from 21.4 to 22.1 throughout.
Kim F. Storm <storm@cua.dk>
parents:
59442
diff
changeset
|
719 :version "22.1") |
59442
37d47d9bf8b1
(vc-allow-async-revert): New user option.
André Spiegel <spiegel@gnu.org>
parents:
59011
diff
changeset
|
720 |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
721 ;;;###autoload |
38606
32e167f31eb6
(vc-checkout-hook): New hook.
André Spiegel <spiegel@gnu.org>
parents:
38595
diff
changeset
|
722 (defcustom vc-checkout-hook nil |
67755
0cdb122ad4db
Remove unnecessary leading * in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67578
diff
changeset
|
723 "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
|
724 See `run-hooks'." |
32e167f31eb6
(vc-checkout-hook): New hook.
André Spiegel <spiegel@gnu.org>
parents:
38595
diff
changeset
|
725 :type 'hook |
32e167f31eb6
(vc-checkout-hook): New hook.
André Spiegel <spiegel@gnu.org>
parents:
38595
diff
changeset
|
726 :group 'vc |
32e167f31eb6
(vc-checkout-hook): New hook.
André Spiegel <spiegel@gnu.org>
parents:
38595
diff
changeset
|
727 :version "21.1") |
32e167f31eb6
(vc-checkout-hook): New hook.
André Spiegel <spiegel@gnu.org>
parents:
38595
diff
changeset
|
728 |
32e167f31eb6
(vc-checkout-hook): New hook.
André Spiegel <spiegel@gnu.org>
parents:
38595
diff
changeset
|
729 ;;;###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
|
730 (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
|
731 "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
|
732 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
|
733 :type 'hook |
51369
91b1fb194872
(vc-directory-exclusion-list): Add MCVS and .svn.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
51245
diff
changeset
|
734 :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
|
735 :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
|
736 |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
737 ;;;###autoload |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
738 (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
|
739 "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
|
740 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
|
741 :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
|
742 :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
|
743 |
904 | 744 ;; Header-insertion hair |
745 | |
17672
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
746 (defcustom vc-static-header-alist |
67755
0cdb122ad4db
Remove unnecessary leading * in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67578
diff
changeset
|
747 '(("\\.c\\'" . |
904 | 748 "\n#ifndef lint\nstatic char vcid[] = \"\%s\";\n#endif /* lint */\n")) |
100171 | 749 "Associate static header string templates with file types. |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
750 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
|
751 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
|
752 :type '(repeat (cons :format "%v" |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
753 (regexp :tag "File Type") |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
754 (string :tag "Header String"))) |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
755 :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
|
756 |
17672
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
757 (defcustom vc-comment-alist |
904 | 758 '((nroff-mode ".\\\"" "")) |
100171 | 759 "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
|
760 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
|
761 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
|
762 is sensitive to blank lines." |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
763 :type '(repeat (list :format "%v" |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
764 (symbol :tag "Mode") |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
765 (string :tag "Comment Start") |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
766 (string :tag "Comment End"))) |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
767 :group 'vc) |
904 | 768 |
17672
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
769 (defcustom vc-checkout-carefully (= (user-uid) 0) |
100171 | 770 "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
|
771 Verify that the file really is not locked |
17672
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
772 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
|
773 :type 'boolean |
3e14521699ff
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17410
diff
changeset
|
774 :group 'vc) |
49619
b48f8839a782
(vc-annotate-display, vc-checkout-carefully): Add obsolescence declaration and
Juanma Barranquero <lekktu@gmail.com>
parents:
49597
diff
changeset
|
775 (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
|
776 "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
|
777 "21.1") |
5201
b27badfb4040
(vc-buffer-sync): Signal error if user says no.
Richard M. Stallman <rms@gnu.org>
parents:
5015
diff
changeset
|
778 |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
779 |
94576
7de38dedf0a6
Move the command-closure machinery to vc-dispatcher.el.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94573
diff
changeset
|
780 ;; Variables users don't need to see |
904 | 781 |
59442
37d47d9bf8b1
(vc-allow-async-revert): New user option.
André Spiegel <spiegel@gnu.org>
parents:
59011
diff
changeset
|
782 (defvar vc-disable-async-diff nil |
37d47d9bf8b1
(vc-allow-async-revert): New user option.
André Spiegel <spiegel@gnu.org>
parents:
59011
diff
changeset
|
783 "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
|
784 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
|
785 in their implementation of vc-BACKEND-diff.") |
37d47d9bf8b1
(vc-allow-async-revert): New user option.
André Spiegel <spiegel@gnu.org>
parents:
59011
diff
changeset
|
786 |
904 | 787 ;; File property caching |
788 | |
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
|
789 (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
|
790 "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
|
791 (interactive) |
51064
f2383fb5260e
(vc-log-mode-map, vc-maximum-comment-ring-size)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50926
diff
changeset
|
792 (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
|
793 |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
794 (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
|
795 "Execute FORM, then maybe set per-file properties for FILES. |
41071 | 796 SETTINGS is an association list of property/value pairs. After |
797 executing FORM, set those properties from SETTINGS that have not yet | |
798 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
|
799 (declare (debug t)) |
41395
0abfca935c80
(with-vc-properties): Don't bind `filename' locally.
André Spiegel <spiegel@gnu.org>
parents:
41071
diff
changeset
|
800 `(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
|
801 ,form |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
802 (dolist (file ,files) |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
803 (dolist (setting ,settings) |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
804 (let ((property (car setting))) |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
805 (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
|
806 (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
|
807 property (cdr setting)))))))) |
31404
f2ab9420390f
2000-09-05 Stefan Monnier <monnier@cs.yale.edu>
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
31387
diff
changeset
|
808 |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
809 ;;; 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
|
810 |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
811 (defun vc-responsible-backend (file &optional register) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
812 "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
|
813 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
|
814 registration should be found. |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
815 |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
816 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
|
817 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
|
818 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
|
819 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
|
820 responsible, return the first backend. |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
821 |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
822 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
|
823 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
|
824 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
|
825 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
|
826 (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
|
827 (error "No handled backends")) |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
828 (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
|
829 (catch 'found |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
830 ;; 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
|
831 ;; 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
|
832 (dolist (backend vc-handled-backends) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
833 (and (or (not register) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
834 (not (vc-call-backend backend 'registered file))) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
835 (vc-call-backend backend 'responsible-p file) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
836 (throw 'found backend))) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
837 ;; no responsible backend |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
838 (if (not register) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
839 ;; 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
|
840 (car vc-handled-backends) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
841 ;; 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
|
842 ;; could register FILE |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
843 (dolist (backend vc-handled-backends) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
844 (and (not (vc-call-backend backend 'registered file)) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
845 (vc-call-backend backend 'could-register file) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
846 (throw 'found backend))) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
847 (error "No backend that could register"))))) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
848 |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
849 (defun vc-expand-dirs (file-or-dir-list) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
850 "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
|
851 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
|
852 (let ((flattened '())) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
853 (dolist (node file-or-dir-list) |
95322
54121bb9b5ad
(Problems): Remove fixed issues.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95319
diff
changeset
|
854 (when (file-directory-p node) |
54121bb9b5ad
(Problems): Remove fixed issues.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95319
diff
changeset
|
855 (vc-file-tree-walk |
54121bb9b5ad
(Problems): Remove fixed issues.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95319
diff
changeset
|
856 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
|
857 (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
|
858 (nreverse flattened))) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
859 |
94974
3a282ce8370c
Make vc-deduce-fileset do the right thing in derived buffers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94886
diff
changeset
|
860 (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
|
861 "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
|
862 (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
|
863 (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
|
864 (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
|
865 (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
|
866 |
96203 | 867 (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
|
868 |
23822423eb64
(vc-deduce-fileset): Replace implementation with one based on a
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95325
diff
changeset
|
869 ;; 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
|
870 ;; (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
|
871 ;; "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
|
872 ;; 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
|
873 ;; (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
|
874 ;; (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
|
875 ;; (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
|
876 ;; ;; 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
|
877 ;; (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
|
878 ;; ;; 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
|
879 ;; ;; 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
|
880 ;; (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
|
881 ;; (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
|
882 ;; (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
|
883 ;; (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
|
884 ;; (cons backend selection))) |
23822423eb64
(vc-deduce-fileset): Replace implementation with one based on a
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95325
diff
changeset
|
885 |
96203 | 886 (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
|
887 (declare-function vc-dir-deduce-fileset "vc-dir" (&optional state-model-only-files)) |
96203 | 888 |
96256
a56e02fe83fc
* vc-dir.el (vc-dir-marked-only-files-and-states): Rename from
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96215
diff
changeset
|
889 (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
|
890 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
|
891 "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
|
892 |
96256
a56e02fe83fc
* vc-dir.el (vc-dir-marked-only-files-and-states): Rename from
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96215
diff
changeset
|
893 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
|
894 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
|
895 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
|
896 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
|
897 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
|
898 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
|
899 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
|
900 |
a56e02fe83fc
* vc-dir.el (vc-dir-marked-only-files-and-states): Rename from
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96215
diff
changeset
|
901 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
|
902 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
|
903 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
|
904 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
|
905 current buffer." |
95326
23822423eb64
(vc-deduce-fileset): Replace implementation with one based on a
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95325
diff
changeset
|
906 ;; 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
|
907 ;; 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
|
908 (let (backend) |
23822423eb64
(vc-deduce-fileset): Replace implementation with one based on a
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95325
diff
changeset
|
909 (cond |
23822423eb64
(vc-deduce-fileset): Replace implementation with one based on a
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95325
diff
changeset
|
910 ((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
|
911 (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
|
912 ((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
|
913 (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
|
914 (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
|
915 (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
|
916 (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
|
917 (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
|
918 (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
|
919 ((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
|
920 ;; FIXME: Why this test? --Stef |
422d57d537d7
(vc-deduce-fileset): Add arg `only-files'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95966
diff
changeset
|
921 (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
|
922 (with-current-buffer vc-parent-buffer |
103553
af4ee0cb7fb7
* vc-hooks.el (vc-stay-local-p, vc-state, vc-working-revision):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103434
diff
changeset
|
923 (derived-mode-p 'vc-dir-mode)))) |
96046
422d57d537d7
(vc-deduce-fileset): Add arg `only-files'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95966
diff
changeset
|
924 (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
|
925 (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
|
926 (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
|
927 ((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
|
928 (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
|
929 ((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
|
930 (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
|
931 (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
|
932 (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
|
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 (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
|
935 (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
|
936 nil) |
a56e02fe83fc
* vc-dir.el (vc-dir-marked-only-files-and-states): Rename from
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96215
diff
changeset
|
937 (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
|
938 (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
|
939 (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
|
940 (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
|
941 |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
942 (defun vc-ensure-vc-buffer () |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
943 "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
|
944 (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
|
945 ((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
|
946 (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
|
947 (t |
87337
bad7c1eb5392
(vc-ensure-vc-buffer): Avoid infinite looping when
Martin Rudalics <rudalics@gmx.at>
parents:
87319
diff
changeset
|
948 (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
|
949 (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
|
950 ;; 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
|
951 ;; current buffer are the same buffer. |
bad7c1eb5392
(vc-ensure-vc-buffer): Avoid infinite looping when
Martin Rudalics <rudalics@gmx.at>
parents:
87319
diff
changeset
|
952 (not (eq vc-parent-buffer (current-buffer)))) |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
953 (set-buffer vc-parent-buffer)) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
954 (if (not buffer-file-name) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
955 (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
|
956 (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
|
957 (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
|
958 |
94481
ad6c174910db
Make `checkout-model' apply to filesets.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94478
diff
changeset
|
959 ;;; 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
|
960 ;; 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
|
961 ;; 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
|
962 |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
963 (defsubst vc-editable-p (file) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
964 "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
|
965 (let ((backend (vc-backend file))) |
ad6c174910db
Make `checkout-model' apply to filesets.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94478
diff
changeset
|
966 (and backend |
94563
a0bb8ca25a33
Clean up vc*-revision-granularity and vc*-checkout-model.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94556
diff
changeset
|
967 (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
|
968 (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
|
969 |
87477
b5060e79eb98
* vc-svn.el (vc-svn-parse-status): Recognize 'added, 'removed,
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
87450
diff
changeset
|
970 (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
|
971 "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
|
972 (or |
b5060e79eb98
* vc-svn.el (vc-svn-parse-status): Recognize 'added, 'removed,
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
87450
diff
changeset
|
973 (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
|
974 (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
|
975 |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
976 ;; Here's the major entry point. |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
977 |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
978 ;;;###autoload |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
979 (defun vc-next-action (verbose) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
980 "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
|
981 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
|
982 |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
983 For locking systems: |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
984 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
|
985 control. |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
986 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
|
987 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
|
988 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
|
989 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
|
990 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
|
991 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
|
992 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
|
993 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
|
994 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
|
995 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
|
996 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
|
997 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
|
998 |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
999 For merging systems: |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1000 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
|
1001 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
|
1002 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
|
1003 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
|
1004 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
|
1005 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
|
1006 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
|
1007 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
|
1008 merge in the changes into your working copy." |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1009 (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
|
1010 (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
|
1011 (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
|
1012 (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
|
1013 (fileset-only-files (nth 2 vc-fileset)) |
94878 | 1014 ;; 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
|
1015 (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
|
1016 ;; 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
|
1017 ;; 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
|
1018 (model (nth 4 vc-fileset)) |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1019 revision) |
94803
0c63a93bf877
(vc-deduce-fileset): Don't require the checkout-model and the
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94796
diff
changeset
|
1020 |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1021 ;; Do the right thing |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1022 (cond |
94538
dc1cd59ce955
Better error message on missing files.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94536
diff
changeset
|
1023 ((eq state 'missing) |
dc1cd59ce955
Better error message on missing files.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94536
diff
changeset
|
1024 (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
|
1025 ((eq state 'ignored) |
b9687393def1
Large simplification in (vc-deduce-fileset) logic.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94729
diff
changeset
|
1026 (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
|
1027 ((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
|
1028 (vc-register nil vc-fileset)) |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1029 ;; 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
|
1030 ((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
|
1031 (cond |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1032 (verbose |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1033 ;; go to a different revision |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1034 (setq revision (read-string "Branch, revision, or backend to move to: ")) |
102577
a4d2ede95fbd
(vc-checkin): Add an extra argument for the VC backend,
Dan Nicolaescu <dann@ics.uci.edu>
parents:
102576
diff
changeset
|
1035 (let ((revision-downcase (downcase revision))) |
a4d2ede95fbd
(vc-checkin): Add an extra argument for the VC backend,
Dan Nicolaescu <dann@ics.uci.edu>
parents:
102576
diff
changeset
|
1036 (if (member |
a4d2ede95fbd
(vc-checkin): Add an extra argument for the VC backend,
Dan Nicolaescu <dann@ics.uci.edu>
parents:
102576
diff
changeset
|
1037 revision-downcase |
a4d2ede95fbd
(vc-checkin): Add an extra argument for the VC backend,
Dan Nicolaescu <dann@ics.uci.edu>
parents:
102576
diff
changeset
|
1038 (mapcar (lambda (arg) (downcase (symbol-name arg))) vc-handled-backends)) |
a4d2ede95fbd
(vc-checkin): Add an extra argument for the VC backend,
Dan Nicolaescu <dann@ics.uci.edu>
parents:
102576
diff
changeset
|
1039 (let ((vsym (intern-soft revision-downcase))) |
a4d2ede95fbd
(vc-checkin): Add an extra argument for the VC backend,
Dan Nicolaescu <dann@ics.uci.edu>
parents:
102576
diff
changeset
|
1040 (dolist (file files) (vc-transfer-file file vsym))) |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1041 (dolist (file files) |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1042 (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
|
1043 ((not (eq model 'implicit)) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1044 ;; check the files out |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1045 (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
|
1046 (t |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1047 ;; do nothing |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1048 (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
|
1049 ;; 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
|
1050 ((vc-compatible-state state 'edited) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1051 (let ((ready-for-commit files)) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1052 ;; 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
|
1053 (dolist (file files) |
87826
06bebff4deab
Add a TODO note about vc-state.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87785
diff
changeset
|
1054 (unless (file-writable-p file) |
06bebff4deab
Add a TODO note about vc-state.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87785
diff
changeset
|
1055 ;; Make the file+buffer read-write. |
06bebff4deab
Add a TODO note about vc-state.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87785
diff
changeset
|
1056 (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
|
1057 (error "Aborted")) |
06bebff4deab
Add a TODO note about vc-state.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87785
diff
changeset
|
1058 (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
|
1059 (let ((visited (get-file-buffer file))) |
06bebff4deab
Add a TODO note about vc-state.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87785
diff
changeset
|
1060 (when visited |
06bebff4deab
Add a TODO note about vc-state.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87785
diff
changeset
|
1061 (with-current-buffer visited |
06bebff4deab
Add a TODO note about vc-state.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87785
diff
changeset
|
1062 (toggle-read-only -1)))))) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1063 ;; 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
|
1064 (save-excursion |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1065 (dolist (file files) |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1066 (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
|
1067 ;; 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
|
1068 ;; 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
|
1069 (when (and (not (eq model 'implicit)) |
06bebff4deab
Add a TODO note about vc-state.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87785
diff
changeset
|
1070 (vc-workfile-unchanged-p file) |
06bebff4deab
Add a TODO note about vc-state.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87785
diff
changeset
|
1071 ;; 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
|
1072 ;; 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
|
1073 ;; 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
|
1074 ;; finishing the log entry and committing. |
06bebff4deab
Add a TODO note about vc-state.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87785
diff
changeset
|
1075 (not (and visited (buffer-modified-p)))) |
06bebff4deab
Add a TODO note about vc-state.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87785
diff
changeset
|
1076 (vc-revert-file file) |
97245
855f5155ed05
(vc-next-action): Update list var correctly after delete.
Chong Yidong <cyd@stupidchicken.com>
parents:
96886
diff
changeset
|
1077 (setq ready-for-commit (delete file ready-for-commit)))))) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1078 ;; Remaining files need to be committed |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1079 (if (not ready-for-commit) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1080 (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
|
1081 (if (not verbose) |
102576
ca736f834e8c
(vc-checkin): Add an extra argument for the VC backend,
Dan Nicolaescu <dann@ics.uci.edu>
parents:
102554
diff
changeset
|
1082 (vc-checkin ready-for-commit backend) |
102577
a4d2ede95fbd
(vc-checkin): Add an extra argument for the VC backend,
Dan Nicolaescu <dann@ics.uci.edu>
parents:
102576
diff
changeset
|
1083 (setq revision (read-string "New revision or backend: ")) |
a4d2ede95fbd
(vc-checkin): Add an extra argument for the VC backend,
Dan Nicolaescu <dann@ics.uci.edu>
parents:
102576
diff
changeset
|
1084 (let ((revision-downcase (downcase revision))) |
a4d2ede95fbd
(vc-checkin): Add an extra argument for the VC backend,
Dan Nicolaescu <dann@ics.uci.edu>
parents:
102576
diff
changeset
|
1085 (if (member |
a4d2ede95fbd
(vc-checkin): Add an extra argument for the VC backend,
Dan Nicolaescu <dann@ics.uci.edu>
parents:
102576
diff
changeset
|
1086 revision-downcase |
a4d2ede95fbd
(vc-checkin): Add an extra argument for the VC backend,
Dan Nicolaescu <dann@ics.uci.edu>
parents:
102576
diff
changeset
|
1087 (mapcar (lambda (arg) (downcase (symbol-name arg))) |
a4d2ede95fbd
(vc-checkin): Add an extra argument for the VC backend,
Dan Nicolaescu <dann@ics.uci.edu>
parents:
102576
diff
changeset
|
1088 vc-handled-backends)) |
a4d2ede95fbd
(vc-checkin): Add an extra argument for the VC backend,
Dan Nicolaescu <dann@ics.uci.edu>
parents:
102576
diff
changeset
|
1089 (let ((vsym (intern revision-downcase))) |
a4d2ede95fbd
(vc-checkin): Add an extra argument for the VC backend,
Dan Nicolaescu <dann@ics.uci.edu>
parents:
102576
diff
changeset
|
1090 (dolist (file files) (vc-transfer-file file vsym))) |
a4d2ede95fbd
(vc-checkin): Add an extra argument for the VC backend,
Dan Nicolaescu <dann@ics.uci.edu>
parents:
102576
diff
changeset
|
1091 (vc-checkin ready-for-commit backend revision))))))) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1092 ;; 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
|
1093 ((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
|
1094 ;; 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
|
1095 ;; 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
|
1096 ;; 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
|
1097 ;; 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
|
1098 ;; 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
|
1099 ;; 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
|
1100 ;; 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
|
1101 ;; 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
|
1102 ;; 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
|
1103 ;; 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
|
1104 ;; 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
|
1105 ;; 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
|
1106 (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
|
1107 (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
|
1108 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
|
1109 (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
|
1110 (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
|
1111 state))) |
93956
bfc762f0b49c
* vc-hooks.el (vc-state): Add new state `conflict'.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93934
diff
changeset
|
1112 ;; conflict |
bfc762f0b49c
* vc-hooks.el (vc-state): Add new state `conflict'.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93934
diff
changeset
|
1113 ((eq state 'conflict) |
94805
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
1114 ;; 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
|
1115 ;; 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
|
1116 ;; 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
|
1117 ;; 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
|
1118 ;; very rarely. |
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
1119 (vc-mark-resolved backend files)) |
94521
2a61c5f918a5
Change 'needs-patch to 'needs-update.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94520
diff
changeset
|
1120 ;; needs-update |
2a61c5f918a5
Change 'needs-patch to 'needs-update.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94520
diff
changeset
|
1121 ((eq state 'needs-update) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1122 (dolist (file files) |
31565
de4e73d77734
(vc-dired-listing-switches): Fix :version.
Dave Love <fx@gnu.org>
parents:
31520
diff
changeset
|
1123 (if (yes-or-no-p (format |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1124 "%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
|
1125 (file-name-nondirectory file))) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1126 (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
|
1127 (when (and (not (eq model 'implicit)) |
06bebff4deab
Add a TODO note about vc-state.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87785
diff
changeset
|
1128 (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
|
1129 (vc-checkout file t))))) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1130 ;; needs-merge |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1131 ((eq state 'needs-merge) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1132 (dolist (file files) |
87826
06bebff4deab
Add a TODO note about vc-state.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
87785
diff
changeset
|
1133 (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
|
1134 "%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
|
1135 (file-name-nondirectory file))) |
94805
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
1136 (vc-maybe-resolve-conflicts |
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
1137 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
|
1138 |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1139 ;; unlocked-changes |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1140 ((eq state 'unlocked-changes) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1141 (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
|
1142 (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
|
1143 (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
|
1144 (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
|
1145 (vc-diff-internal nil |
94778
b9687393def1
Large simplification in (vc-deduce-fileset) logic.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94729
diff
changeset
|
1146 (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
|
1147 (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
|
1148 (goto-char (point-min)) |
32059
13e0fdf65e3c
(with-vc-file, vc-next-action-on-file):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32058
diff
changeset
|
1149 (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
|
1150 (insert |
32059
13e0fdf65e3c
(with-vc-file, vc-next-action-on-file):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32058
diff
changeset
|
1151 (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
|
1152 (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
|
1153 (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
|
1154 "Claim lock retaining changes? "))) |
94805
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
1155 (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
|
1156 (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
|
1157 ;; 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
|
1158 ;; 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
|
1159 (vc-clear-headers file) |
50926
dd6110a63907
New backend functions `delete-file' and `repository-hostname'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50894
diff
changeset
|
1160 (write-file buffer-file-name) |
103553
af4ee0cb7fb7
* vc-hooks.el (vc-stay-local-p, vc-state, vc-working-revision):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103434
diff
changeset
|
1161 (vc-mode-line file backend)) |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1162 (if (not (yes-or-no-p |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1163 "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
|
1164 (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
|
1165 (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
|
1166 (vc-checkout file t))))) |
2a61c5f918a5
Change 'needs-patch to 'needs-update.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94520
diff
changeset
|
1167 ;; Unknown fileset state |
2a61c5f918a5
Change 'needs-patch to 'needs-update.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94520
diff
changeset
|
1168 (t |
2a61c5f918a5
Change 'needs-patch to 'needs-update.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94520
diff
changeset
|
1169 (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
|
1170 |
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
|
1171 (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
|
1172 "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
|
1173 (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
|
1174 (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
|
1175 (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
|
1176 (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
|
1177 (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
|
1178 "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
|
1179 (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
|
1180 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
|
1181 (vc-call-backend backend 'create-repo)) |
67755
0cdb122ad4db
Remove unnecessary leading * in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67578
diff
changeset
|
1182 |
104042
47d49939ab41
(vc-dir-move-to-goal-column): Declare.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
104041
diff
changeset
|
1183 (declare-function vc-dir-move-to-goal-column "vc-dir" ()) |
47d49939ab41
(vc-dir-move-to-goal-column): Declare.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
104041
diff
changeset
|
1184 |
927 | 1185 ;;;###autoload |
95946
3a39d3ac157c
(vc-deduce-fileset): Check if the buffer has a file.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95896
diff
changeset
|
1186 (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
|
1187 "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
|
1188 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
|
1189 Otherwise register the current file. |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1190 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
|
1191 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
|
1192 |
31520
f9d2d484e1e2
* vc-sccs.el (vc-sccs-register):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
31435
diff
changeset
|
1193 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
|
1194 `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
|
1195 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
|
1196 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
|
1197 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
|
1198 first backend that could register the file is used." |
904 | 1199 (interactive "P") |
95946
3a39d3ac157c
(vc-deduce-fileset): Check if the buffer has a file.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95896
diff
changeset
|
1200 (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
|
1201 (backend (car fileset-arg)) |
96046
422d57d537d7
(vc-deduce-fileset): Add arg `only-files'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95966
diff
changeset
|
1202 (files (nth 1 fileset-arg))) |
422d57d537d7
(vc-deduce-fileset): Add arg `only-files'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95966
diff
changeset
|
1203 ;; 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
|
1204 ;; 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
|
1205 ;; many VCS allow that as well. |
422d57d537d7
(vc-deduce-fileset): Add arg `only-files'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95966
diff
changeset
|
1206 (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
|
1207 (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
|
1208 (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
|
1209 (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
|
1210 (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
|
1211 (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
|
1212 (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
|
1213 (error "Aborted")))) |
3a39d3ac157c
(vc-deduce-fileset): Check if the buffer has a file.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95896
diff
changeset
|
1214 ;; 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
|
1215 ;; 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
|
1216 (when bname |
3a39d3ac157c
(vc-deduce-fileset): Check if the buffer has a file.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95896
diff
changeset
|
1217 (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
|
1218 (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
|
1219 (zerop (buffer-size)) |
3a39d3ac157c
(vc-deduce-fileset): Check if the buffer has a file.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95896
diff
changeset
|
1220 (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
|
1221 (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
|
1222 (vc-buffer-sync))))) |
103553
af4ee0cb7fb7
* vc-hooks.el (vc-stay-local-p, vc-state, vc-working-revision):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103434
diff
changeset
|
1223 (message "Registering %s... " files) |
af4ee0cb7fb7
* vc-hooks.el (vc-stay-local-p, vc-state, vc-working-revision):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103434
diff
changeset
|
1224 (mapc 'vc-file-clearprops files) |
af4ee0cb7fb7
* vc-hooks.el (vc-stay-local-p, vc-state, vc-working-revision):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103434
diff
changeset
|
1225 (vc-call-backend backend 'register files |
af4ee0cb7fb7
* vc-hooks.el (vc-stay-local-p, vc-state, vc-working-revision):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103434
diff
changeset
|
1226 (if set-revision |
af4ee0cb7fb7
* vc-hooks.el (vc-stay-local-p, vc-state, vc-working-revision):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103434
diff
changeset
|
1227 (read-string (format "Initial revision level for %s: " files)) |
af4ee0cb7fb7
* vc-hooks.el (vc-stay-local-p, vc-state, vc-working-revision):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103434
diff
changeset
|
1228 (vc-call-backend backend 'init-revision)) |
af4ee0cb7fb7
* vc-hooks.el (vc-stay-local-p, vc-state, vc-working-revision):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103434
diff
changeset
|
1229 comment) |
af4ee0cb7fb7
* vc-hooks.el (vc-stay-local-p, vc-state, vc-working-revision):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103434
diff
changeset
|
1230 (mapc |
af4ee0cb7fb7
* vc-hooks.el (vc-stay-local-p, vc-state, vc-working-revision):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103434
diff
changeset
|
1231 (lambda (file) |
af4ee0cb7fb7
* vc-hooks.el (vc-stay-local-p, vc-state, vc-working-revision):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103434
diff
changeset
|
1232 (vc-file-setprop file 'vc-backend backend) |
af4ee0cb7fb7
* vc-hooks.el (vc-stay-local-p, vc-state, vc-working-revision):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103434
diff
changeset
|
1233 ;; FIXME: This is wrong: it should set `backup-inhibited' in all |
af4ee0cb7fb7
* vc-hooks.el (vc-stay-local-p, vc-state, vc-working-revision):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103434
diff
changeset
|
1234 ;; the buffers visiting files affected by this `vc-register', not |
af4ee0cb7fb7
* vc-hooks.el (vc-stay-local-p, vc-state, vc-working-revision):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103434
diff
changeset
|
1235 ;; in the current-buffer. |
af4ee0cb7fb7
* vc-hooks.el (vc-stay-local-p, vc-state, vc-working-revision):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103434
diff
changeset
|
1236 ;; (unless vc-make-backup-files |
af4ee0cb7fb7
* vc-hooks.el (vc-stay-local-p, vc-state, vc-working-revision):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103434
diff
changeset
|
1237 ;; (make-local-variable 'backup-inhibited) |
af4ee0cb7fb7
* vc-hooks.el (vc-stay-local-p, vc-state, vc-working-revision):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103434
diff
changeset
|
1238 ;; (setq backup-inhibited t)) |
af4ee0cb7fb7
* vc-hooks.el (vc-stay-local-p, vc-state, vc-working-revision):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103434
diff
changeset
|
1239 |
af4ee0cb7fb7
* vc-hooks.el (vc-stay-local-p, vc-state, vc-working-revision):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103434
diff
changeset
|
1240 (vc-resynch-buffer file vc-keep-workfiles t)) |
af4ee0cb7fb7
* vc-hooks.el (vc-stay-local-p, vc-state, vc-working-revision):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103434
diff
changeset
|
1241 files) |
af4ee0cb7fb7
* vc-hooks.el (vc-stay-local-p, vc-state, vc-working-revision):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103434
diff
changeset
|
1242 (when (derived-mode-p 'vc-dir-mode) |
af4ee0cb7fb7
* vc-hooks.el (vc-stay-local-p, vc-state, vc-working-revision):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103434
diff
changeset
|
1243 (vc-dir-move-to-goal-column)) |
af4ee0cb7fb7
* vc-hooks.el (vc-stay-local-p, vc-state, vc-working-revision):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103434
diff
changeset
|
1244 (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
|
1245 |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1246 (defun vc-register-with (backend) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1247 "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
|
1248 (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
|
1249 (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
|
1250 (error "Unknown back end.")) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1251 (let ((vc-handled-backends (list backend))) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1252 (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
|
1253 |
11597
d6d53a54da18
(vc-backend-checkout): Pass vc-checkout-switches arg
Richard M. Stallman <rms@gnu.org>
parents:
11080
diff
changeset
|
1254 (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
|
1255 "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
|
1256 If WRITABLE is non-nil, make sure the retrieved file is writable. |
38608 | 1257 REV defaults to the latest revision. |
1258 | |
1259 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
|
1260 (and writable |
3aab429d3c8a
(vc-revert-buffer): Handle empty diff properly.
André Spiegel <spiegel@gnu.org>
parents:
32097
diff
changeset
|
1261 (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
|
1262 (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
|
1263 (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
|
1264 (vc-make-version-backup file)) |
94481
ad6c174910db
Make `checkout-model' apply to filesets.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94478
diff
changeset
|
1265 (let ((backend (vc-backend file))) |
ad6c174910db
Make `checkout-model' apply to filesets.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94478
diff
changeset
|
1266 (with-vc-properties (list file) |
ad6c174910db
Make `checkout-model' apply to filesets.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94478
diff
changeset
|
1267 (condition-case err |
94495
027a58c5f305
(vc-checkout): Typo.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94488
diff
changeset
|
1268 (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
|
1269 (file-error |
ad6c174910db
Make `checkout-model' apply to filesets.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94478
diff
changeset
|
1270 ;; Maybe the backend is not installed ;-( |
ad6c174910db
Make `checkout-model' apply to filesets.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94478
diff
changeset
|
1271 (when writable |
ad6c174910db
Make `checkout-model' apply to filesets.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94478
diff
changeset
|
1272 (let ((buf (get-file-buffer file))) |
ad6c174910db
Make `checkout-model' apply to filesets.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94478
diff
changeset
|
1273 (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
|
1274 (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
|
1275 `((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
|
1276 (not writable)) |
94805
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
1277 (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
|
1278 'up-to-date |
94521
2a61c5f918a5
Change 'needs-patch to 'needs-update.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94520
diff
changeset
|
1279 'needs-update) |
94481
ad6c174910db
Make `checkout-model' apply to filesets.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94478
diff
changeset
|
1280 'edited)) |
ad6c174910db
Make `checkout-model' apply to filesets.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94478
diff
changeset
|
1281 (vc-checkout-time . ,(nth 5 (file-attributes file)))))) |
38606
32e167f31eb6
(vc-checkout-hook): New hook.
André Spiegel <spiegel@gnu.org>
parents:
38595
diff
changeset
|
1282 (vc-resynch-buffer file t t) |
32e167f31eb6
(vc-checkout-hook): New hook.
André Spiegel <spiegel@gnu.org>
parents:
38595
diff
changeset
|
1283 (run-hooks 'vc-checkout-hook)) |
904 | 1284 |
94805
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
1285 (defun vc-mark-resolved (backend files) |
98337 | 1286 (prog1 (with-vc-properties |
1287 files | |
1288 (vc-call-backend backend 'mark-resolved files) | |
1289 ;; FIXME: Is this TRTD? Might not be. | |
1290 `((vc-state . edited))) | |
1291 (message | |
1292 (substitute-command-keys | |
1293 "Conflicts have been resolved in %s. \ | |
98336
26ff192a882a
(vc-mark-resolved): Move message here from vc-default-mark-resolved.
Chong Yidong <cyd@stupidchicken.com>
parents:
98326
diff
changeset
|
1294 Type \\[vc-next-action] to check in changes.") |
98337 | 1295 (if (> (length files) 1) |
1296 (format "%d files" (length files)) | |
1297 "this file")))) | |
93956
bfc762f0b49c
* vc-hooks.el (vc-state): Add new state `conflict'.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
93934
diff
changeset
|
1298 |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1299 (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
|
1300 "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
|
1301 (let (file-description) |
5ddb0e0adb08
(vc-backend-checkout): Add if-statements to the shell cmds
Richard M. Stallman <rms@gnu.org>
parents:
8726
diff
changeset
|
1302 (if rev |
5ddb0e0adb08
(vc-backend-checkout): Add if-statements to the shell cmds
Richard M. Stallman <rms@gnu.org>
parents:
8726
diff
changeset
|
1303 (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
|
1304 (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
|
1305 (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
|
1306 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
|
1307 (error "Steal canceled")) |
42548
1cf3624d80ac
(vc-branch-part): Return nil if there's no `.'
André Spiegel <spiegel@gnu.org>
parents:
42205
diff
changeset
|
1308 (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
|
1309 (with-vc-properties |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1310 (list file) |
42548
1cf3624d80ac
(vc-branch-part): Return nil if there's no `.'
André Spiegel <spiegel@gnu.org>
parents:
42205
diff
changeset
|
1311 (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
|
1312 `((vc-state . edited))) |
1cf3624d80ac
(vc-branch-part): Return nil if there's no `.'
André Spiegel <spiegel@gnu.org>
parents:
42205
diff
changeset
|
1313 (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
|
1314 (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
|
1315 ;; 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
|
1316 ;; 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
|
1317 (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
|
1318 (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
|
1319 (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
|
1320 (insert |
5ddb0e0adb08
(vc-backend-checkout): Add if-statements to the shell cmds
Richard M. Stallman <rms@gnu.org>
parents:
8726
diff
changeset
|
1321 (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
|
1322 (current-time-string) |
5ddb0e0adb08
(vc-backend-checkout): Add if-statements to the shell cmds
Richard M. Stallman <rms@gnu.org>
parents:
8726
diff
changeset
|
1323 ".\n") |
5ddb0e0adb08
(vc-backend-checkout): Add if-statements to the shell cmds
Richard M. Stallman <rms@gnu.org>
parents:
8726
diff
changeset
|
1324 (message "Please explain why you stole the lock. Type C-c C-c when done."))) |
904 | 1325 |
102576
ca736f834e8c
(vc-checkin): Add an extra argument for the VC backend,
Dan Nicolaescu <dann@ics.uci.edu>
parents:
102554
diff
changeset
|
1326 (defun vc-checkin (files backend &optional rev comment initial-contents) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1327 "Check in FILES. |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1328 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
|
1329 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
|
1330 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
|
1331 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
|
1332 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
|
1333 |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1334 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
|
1335 that the version control system supports this mode of operation. |
20967 | 1336 |
94579
dca2377770e7
Move context-preservation machinery.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94576
diff
changeset
|
1337 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
|
1338 (when vc-before-checkin-hook |
dca2377770e7
Move context-preservation machinery.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94576
diff
changeset
|
1339 (run-hooks 'vc-before-checkin-hook)) |
102576
ca736f834e8c
(vc-checkin): Add an extra argument for the VC backend,
Dan Nicolaescu <dann@ics.uci.edu>
parents:
102554
diff
changeset
|
1340 (lexical-let |
ca736f834e8c
(vc-checkin): Add an extra argument for the VC backend,
Dan Nicolaescu <dann@ics.uci.edu>
parents:
102554
diff
changeset
|
1341 ((backend backend)) |
ca736f834e8c
(vc-checkin): Add an extra argument for the VC backend,
Dan Nicolaescu <dann@ics.uci.edu>
parents:
102554
diff
changeset
|
1342 (vc-start-logentry |
ca736f834e8c
(vc-checkin): Add an extra argument for the VC backend,
Dan Nicolaescu <dann@ics.uci.edu>
parents:
102554
diff
changeset
|
1343 files rev comment initial-contents |
ca736f834e8c
(vc-checkin): Add an extra argument for the VC backend,
Dan Nicolaescu <dann@ics.uci.edu>
parents:
102554
diff
changeset
|
1344 "Enter a change comment." |
ca736f834e8c
(vc-checkin): Add an extra argument for the VC backend,
Dan Nicolaescu <dann@ics.uci.edu>
parents:
102554
diff
changeset
|
1345 "*VC-log*" |
ca736f834e8c
(vc-checkin): Add an extra argument for the VC backend,
Dan Nicolaescu <dann@ics.uci.edu>
parents:
102554
diff
changeset
|
1346 (lambda (files rev comment) |
ca736f834e8c
(vc-checkin): Add an extra argument for the VC backend,
Dan Nicolaescu <dann@ics.uci.edu>
parents:
102554
diff
changeset
|
1347 (message "Checking in %s..." (vc-delistify files)) |
ca736f834e8c
(vc-checkin): Add an extra argument for the VC backend,
Dan Nicolaescu <dann@ics.uci.edu>
parents:
102554
diff
changeset
|
1348 ;; "This log message intentionally left almost blank". |
ca736f834e8c
(vc-checkin): Add an extra argument for the VC backend,
Dan Nicolaescu <dann@ics.uci.edu>
parents:
102554
diff
changeset
|
1349 ;; RCS 5.7 gripes about white-space-only comments too. |
ca736f834e8c
(vc-checkin): Add an extra argument for the VC backend,
Dan Nicolaescu <dann@ics.uci.edu>
parents:
102554
diff
changeset
|
1350 (or (and comment (string-match "[^\t\n ]" comment)) |
ca736f834e8c
(vc-checkin): Add an extra argument for the VC backend,
Dan Nicolaescu <dann@ics.uci.edu>
parents:
102554
diff
changeset
|
1351 (setq comment "*** empty log message ***")) |
ca736f834e8c
(vc-checkin): Add an extra argument for the VC backend,
Dan Nicolaescu <dann@ics.uci.edu>
parents:
102554
diff
changeset
|
1352 (with-vc-properties |
ca736f834e8c
(vc-checkin): Add an extra argument for the VC backend,
Dan Nicolaescu <dann@ics.uci.edu>
parents:
102554
diff
changeset
|
1353 files |
ca736f834e8c
(vc-checkin): Add an extra argument for the VC backend,
Dan Nicolaescu <dann@ics.uci.edu>
parents:
102554
diff
changeset
|
1354 ;; We used to change buffers to get local value of vc-checkin-switches, |
ca736f834e8c
(vc-checkin): Add an extra argument for the VC backend,
Dan Nicolaescu <dann@ics.uci.edu>
parents:
102554
diff
changeset
|
1355 ;; but 'the' local buffer is not a well-defined concept for filesets. |
ca736f834e8c
(vc-checkin): Add an extra argument for the VC backend,
Dan Nicolaescu <dann@ics.uci.edu>
parents:
102554
diff
changeset
|
1356 (progn |
ca736f834e8c
(vc-checkin): Add an extra argument for the VC backend,
Dan Nicolaescu <dann@ics.uci.edu>
parents:
102554
diff
changeset
|
1357 (vc-call-backend backend 'checkin files rev comment) |
ca736f834e8c
(vc-checkin): Add an extra argument for the VC backend,
Dan Nicolaescu <dann@ics.uci.edu>
parents:
102554
diff
changeset
|
1358 (mapc 'vc-delete-automatic-version-backups files)) |
ca736f834e8c
(vc-checkin): Add an extra argument for the VC backend,
Dan Nicolaescu <dann@ics.uci.edu>
parents:
102554
diff
changeset
|
1359 `((vc-state . up-to-date) |
ca736f834e8c
(vc-checkin): Add an extra argument for the VC backend,
Dan Nicolaescu <dann@ics.uci.edu>
parents:
102554
diff
changeset
|
1360 (vc-checkout-time . ,(nth 5 (file-attributes file))) |
ca736f834e8c
(vc-checkin): Add an extra argument for the VC backend,
Dan Nicolaescu <dann@ics.uci.edu>
parents:
102554
diff
changeset
|
1361 (vc-working-revision . nil))) |
ca736f834e8c
(vc-checkin): Add an extra argument for the VC backend,
Dan Nicolaescu <dann@ics.uci.edu>
parents:
102554
diff
changeset
|
1362 (message "Checking in %s...done" (vc-delistify files))) |
ca736f834e8c
(vc-checkin): Add an extra argument for the VC backend,
Dan Nicolaescu <dann@ics.uci.edu>
parents:
102554
diff
changeset
|
1363 'vc-checkin-hook))) |
904 | 1364 |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1365 ;;; Additional entry points for examining version histories |
904 | 1366 |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1367 ;; (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
|
1368 ;; "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
|
1369 ;; 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
|
1370 ;; ;; 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
|
1371 ;; ;; 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
|
1372 ;; ;; 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
|
1373 ;; ;; 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
|
1374 ;; ;; 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
|
1375 ;; ;; to backend-specific implementations. |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1376 ;; (setq default-directory dir) |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1377 ;; (vc-file-tree-walk |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1378 ;; default-directory |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1379 ;; (lambda (f) |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1380 ;; (vc-exec-after |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1381 ;; `(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
|
1382 ;; (message "Looking at %s" ',f) |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1383 ;; (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
|
1384 ;; '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
|
1385 |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1386 (defun vc-coding-system-for-diff (file) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1387 "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
|
1388 (or coding-system-for-read |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1389 ;; if we already have this file open, |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1390 ;; use the buffer's coding system |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1391 (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
|
1392 (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
|
1393 buffer-file-coding-system))) |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1394 ;; 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
|
1395 (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
|
1396 ;; and a final fallback |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1397 'undecided)) |
904 | 1398 |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1399 (defun vc-switches (backend op) |
98386
48cf5d8c02af
(vc-switches): Give it a doc string.
Glenn Morris <rgm@gnu.org>
parents:
98337
diff
changeset
|
1400 "Return a list of vc-BACKEND switches for operation OP. |
48cf5d8c02af
(vc-switches): Give it a doc string.
Glenn Morris <rgm@gnu.org>
parents:
98337
diff
changeset
|
1401 BACKEND is a symbol such as `CVS', which will be downcased. |
48cf5d8c02af
(vc-switches): Give it a doc string.
Glenn Morris <rgm@gnu.org>
parents:
98337
diff
changeset
|
1402 OP is a symbol such as `diff'. |
48cf5d8c02af
(vc-switches): Give it a doc string.
Glenn Morris <rgm@gnu.org>
parents:
98337
diff
changeset
|
1403 |
100171 | 1404 In decreasing order of preference, return the value of: |
98386
48cf5d8c02af
(vc-switches): Give it a doc string.
Glenn Morris <rgm@gnu.org>
parents:
98337
diff
changeset
|
1405 vc-BACKEND-OP-switches (e.g. `vc-cvs-diff-switches'); |
48cf5d8c02af
(vc-switches): Give it a doc string.
Glenn Morris <rgm@gnu.org>
parents:
98337
diff
changeset
|
1406 vc-OP-switches (e.g. `vc-diff-switches'); or, in the case of |
98388 | 1407 diff only, `diff-switches'. |
98386
48cf5d8c02af
(vc-switches): Give it a doc string.
Glenn Morris <rgm@gnu.org>
parents:
98337
diff
changeset
|
1408 |
100171 | 1409 If the chosen value is not a string or a list, return nil. |
98386
48cf5d8c02af
(vc-switches): Give it a doc string.
Glenn Morris <rgm@gnu.org>
parents:
98337
diff
changeset
|
1410 This is so that you may set, e.g. `vc-svn-diff-switches' to t in order |
48cf5d8c02af
(vc-switches): Give it a doc string.
Glenn Morris <rgm@gnu.org>
parents:
98337
diff
changeset
|
1411 to override the value of `vc-diff-switches' and `diff-switches'." |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1412 (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
|
1413 (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
|
1414 (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
|
1415 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
|
1416 "-switches"))))) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1417 (when (boundp sym) (symbol-value sym)))) |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1418 (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
|
1419 (when (boundp sym) (symbol-value sym))) |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1420 (cond |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1421 ((eq op 'diff) diff-switches))))) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1422 (if (stringp switches) (list switches) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1423 ;; If not a list, return nil. |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1424 ;; 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
|
1425 ;; 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
|
1426 (when (listp switches) switches)))) |
904 | 1427 |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1428 ;; Old def for compatibility with Emacs-21.[123]. |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1429 (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
|
1430 (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
|
1431 |
91698
c22d8444f043
Make vc-diff-internal messages consistent across many cases.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
88111
diff
changeset
|
1432 (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
|
1433 ;; 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
|
1434 ;; 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
|
1435 (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
|
1436 (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
|
1437 (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
|
1438 (with-current-buffer buffer |
c22d8444f043
Make vc-diff-internal messages consistent across many cases.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
88111
diff
changeset
|
1439 (and messages emptyp |
c22d8444f043
Make vc-diff-internal messages consistent across many cases.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
88111
diff
changeset
|
1440 (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
|
1441 (insert (cdr messages) ".\n") |
c22d8444f043
Make vc-diff-internal messages consistent across many cases.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
88111
diff
changeset
|
1442 (message "%s" (cdr messages)))) |
c22d8444f043
Make vc-diff-internal messages consistent across many cases.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
88111
diff
changeset
|
1443 (goto-char (point-min)) |
87931
9f4909ced989
Handle dead buffers in async filters/sentinels.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
87930
diff
changeset
|
1444 (when window |
91698
c22d8444f043
Make vc-diff-internal messages consistent across many cases.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
88111
diff
changeset
|
1445 (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
|
1446 (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
|
1447 (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
|
1448 |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1449 (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
|
1450 "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
|
1451 |
94240
9f1f284d17b3
(vc-next-action): Do not consider directories when
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94214
diff
changeset
|
1452 (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
|
1453 "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
|
1454 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
|
1455 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
|
1456 (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
|
1457 (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
|
1458 (vc-delistify files)) |
c22d8444f043
Make vc-diff-internal messages consistent across many cases.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
88111
diff
changeset
|
1459 (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
|
1460 (or rev1 "working revision") |
c22d8444f043
Make vc-diff-internal messages consistent across many cases.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
88111
diff
changeset
|
1461 (or rev2 "workfile")))) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1462 ;; 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
|
1463 ;; 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
|
1464 ;; 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
|
1465 (coding-system-for-read |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1466 (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
|
1467 (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
|
1468 (message "%s" (car messages)) |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1469 ;; 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
|
1470 ;; 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
|
1471 ;; 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
|
1472 ;; |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1473 ;; 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
|
1474 ;; 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
|
1475 ;; 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
|
1476 ;; `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
|
1477 ;; 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
|
1478 ;; 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
|
1479 (when vc-diff-added-files |
104597
d3ef713449d3
* vc.el (vc-diff-internal): Let-bind `process-file-side-effects' with nil.
Michael Albinus <michael.albinus@gmx.de>
parents:
104042
diff
changeset
|
1480 (let ((filtered '()) |
d3ef713449d3
* vc.el (vc-diff-internal): Let-bind `process-file-side-effects' with nil.
Michael Albinus <michael.albinus@gmx.de>
parents:
104042
diff
changeset
|
1481 process-file-side-effects) |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1482 (dolist (file files) |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1483 (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
|
1484 (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
|
1485 (push file filtered) |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1486 ;; 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
|
1487 ;; 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
|
1488 (if (or rev1 rev2) |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1489 (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
|
1490 ;; We regard this as "changed". |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1491 ;; Diff it against /dev/null. |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1492 (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
|
1493 1 "diff" file |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1494 (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
|
1495 (setq files (nreverse filtered)))) |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1496 (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
|
1497 (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
|
1498 (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
|
1499 (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
|
1500 (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
|
1501 ;; 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
|
1502 (progn |
91698
c22d8444f043
Make vc-diff-internal messages consistent across many cases.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
88111
diff
changeset
|
1503 (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
|
1504 nil) |
85972
51aa47312c4b
* ediff-init.el (ediff-xemacs-p, ediff-emacs-p): Remove.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85794
diff
changeset
|
1505 (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
|
1506 ;; 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
|
1507 ;; 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
|
1508 ;; 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
|
1509 (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
|
1510 (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
|
1511 messages))) |
86100
ac69f23a84ce
(vc-diff-internal): Pop-to-buffer later.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86055
diff
changeset
|
1512 ;; 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
|
1513 (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
|
1514 ;; 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
|
1515 ;; 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
|
1516 t))) |
40124
9031427edfa3
(vc-diff-internal, vc-coding-system-for-diff, vc-default-diff-tree):
André Spiegel <spiegel@gnu.org>
parents:
39427
diff
changeset
|
1517 |
104647
ef4820f099a1
(vc-read-revision): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104621
diff
changeset
|
1518 (defun vc-read-revision (prompt &optional files backend default initial-input) |
ef4820f099a1
(vc-read-revision): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104621
diff
changeset
|
1519 (cond |
ef4820f099a1
(vc-read-revision): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104621
diff
changeset
|
1520 ((null files) |
ef4820f099a1
(vc-read-revision): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104621
diff
changeset
|
1521 (let ((vc-fileset (vc-deduce-fileset t))) ;FIXME: why t? --Stef |
ef4820f099a1
(vc-read-revision): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104621
diff
changeset
|
1522 (setq files (cadr vc-fileset)) |
ef4820f099a1
(vc-read-revision): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104621
diff
changeset
|
1523 (setq backend (car vc-fileset)))) |
ef4820f099a1
(vc-read-revision): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104621
diff
changeset
|
1524 ((null backend) (setq backend (vc-backend (car files))))) |
ef4820f099a1
(vc-read-revision): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104621
diff
changeset
|
1525 (let ((completion-table |
ef4820f099a1
(vc-read-revision): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104621
diff
changeset
|
1526 (vc-call-backend backend 'revision-completion-table files))) |
ef4820f099a1
(vc-read-revision): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104621
diff
changeset
|
1527 (if completion-table |
ef4820f099a1
(vc-read-revision): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104621
diff
changeset
|
1528 (completing-read prompt completion-table |
ef4820f099a1
(vc-read-revision): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104621
diff
changeset
|
1529 nil nil initial-input nil default) |
ef4820f099a1
(vc-read-revision): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104621
diff
changeset
|
1530 (read-string prompt initial-input nil default)))) |
ef4820f099a1
(vc-read-revision): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104621
diff
changeset
|
1531 |
927 | 1532 ;;;###autoload |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1533 (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
|
1534 "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
|
1535 (interactive |
96046
422d57d537d7
(vc-deduce-fileset): Add arg `only-files'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95966
diff
changeset
|
1536 (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
|
1537 (files (cadr vc-fileset)) |
94805
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
1538 (backend (car vc-fileset)) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1539 (first (car files)) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1540 (rev1-default nil) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1541 (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
|
1542 (cond |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1543 ;; 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
|
1544 ;; filesets, but not yet. |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1545 ((/= (length files) 1) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1546 nil) |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1547 ;; 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
|
1548 ((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
|
1549 nil) |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1550 ;; 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
|
1551 ((not (vc-up-to-date-p first)) |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1552 (setq rev1-default (vc-working-revision first))) |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1553 ;; 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
|
1554 (t |
94805
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
1555 (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
|
1556 (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
|
1557 (when (string= rev1-default "") (setq rev1-default nil)) |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1558 (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
|
1559 ;; 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
|
1560 (let* ((rev1-prompt (if rev1-default |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1561 (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
|
1562 rev1-default "): ") |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1563 "Older revision: ")) |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1564 (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
|
1565 (or rev2-default "current source") "): ")) |
104647
ef4820f099a1
(vc-read-revision): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104621
diff
changeset
|
1566 (rev1 (vc-read-revision rev1-prompt files backend rev1-default)) |
ef4820f099a1
(vc-read-revision): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104621
diff
changeset
|
1567 (rev2 (vc-read-revision rev2-prompt files backend 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
|
1568 (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
|
1569 (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
|
1570 (list files rev1 rev2)))) |
94778
b9687393def1
Large simplification in (vc-deduce-fileset) logic.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94729
diff
changeset
|
1571 ;; 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
|
1572 (when (and (not rev1) rev2) |
9f1f284d17b3
(vc-next-action): Do not consider directories when
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94214
diff
changeset
|
1573 (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
|
1574 ;; 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
|
1575 ;; 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
|
1576 (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
|
1577 |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1578 ;; (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
|
1579 ;; "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
|
1580 ;; (catch 'found |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1581 ;; (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
|
1582 ;; 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
|
1583 |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1584 ;;;###autoload |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1585 (defun vc-diff (historic &optional not-urgent) |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1586 "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
|
1587 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
|
1588 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
|
1589 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
|
1590 |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1591 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
|
1592 saving the buffer." |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1593 (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
|
1594 (if historic |
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1595 (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
|
1596 (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
|
1597 (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
|
1598 |
4725
126cf4bdfd35
(vc-version-other-window): New function.
Paul Eggert <eggert@twinsun.com>
parents:
4684
diff
changeset
|
1599 ;;;###autoload |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1600 (defun vc-revision-other-window (rev) |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1601 "Visit revision REV of the current file in another window. |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1602 If the current file is named `F', the revision is named `F.~REV~'. |
41071 | 1603 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
|
1604 (interactive |
2dd5d799a16d
* vc-git.el: (vc-directory-exclusion-list, vc-handled-backends):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78236
diff
changeset
|
1605 (save-current-buffer |
2dd5d799a16d
* vc-git.el: (vc-directory-exclusion-list, vc-handled-backends):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
78236
diff
changeset
|
1606 (vc-ensure-vc-buffer) |
104647
ef4820f099a1
(vc-read-revision): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104621
diff
changeset
|
1607 (list |
ef4820f099a1
(vc-read-revision): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104621
diff
changeset
|
1608 (vc-read-revision "Revision to visit (default is working revision): " |
ef4820f099a1
(vc-read-revision): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104621
diff
changeset
|
1609 (list buffer-file-name))))) |
21366
e7b64d0b3b3d
(vc-ensure-vc-buffer): New function.
André Spiegel <spiegel@gnu.org>
parents:
21357
diff
changeset
|
1610 (vc-ensure-vc-buffer) |
32888
78063b725d3f
(vc-version-other-window): Bind `file'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32748
diff
changeset
|
1611 (let* ((file buffer-file-name) |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1612 (revision (if (string-equal rev "") |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1613 (vc-working-revision file) |
41556
678f91af978a
(vc-find-version): New function.
André Spiegel <spiegel@gnu.org>
parents:
41395
diff
changeset
|
1614 rev))) |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1615 (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
|
1616 |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1617 (defun vc-find-revision (file revision) |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1618 "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
|
1619 (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
|
1620 (filebuf (or (get-file-buffer file) (current-buffer))) |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1621 (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
|
1622 (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
|
1623 (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
|
1624 (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
|
1625 (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
|
1626 (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
|
1627 (let ((failed t)) |
cf312195338d
(vc-find-version): Use the new backend op `find-version'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47781
diff
changeset
|
1628 (unwind-protect |
cf312195338d
(vc-find-version): Use the new backend op `find-version'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47781
diff
changeset
|
1629 (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
|
1630 (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
|
1631 (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
|
1632 (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
|
1633 ;; 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
|
1634 ;; vc-checkout-switches. |
cf312195338d
(vc-find-version): Use the new backend op `find-version'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47781
diff
changeset
|
1635 (with-current-buffer filebuf |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1636 (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
|
1637 (setq failed nil)) |
86248
cde7fc4f5945
(vc-find-revision): Set the parent buffer.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
86100
diff
changeset
|
1638 (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
|
1639 (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
|
1640 (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
|
1641 (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
|
1642 (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
|
1643 (with-current-buffer result-buf |
86410
bca8808972f0
Delete eol whitespace; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
86370
diff
changeset
|
1644 ;; 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
|
1645 ;; 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
|
1646 (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
|
1647 result-buf))) |
47796
cf312195338d
(vc-find-version): Use the new backend op `find-version'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47781
diff
changeset
|
1648 |
904 | 1649 ;; Header-insertion code |
1650 | |
927 | 1651 ;;;###autoload |
904 | 1652 (defun vc-insert-headers () |
41071 | 1653 "Insert headers into a file for use with a version control system. |
23235 | 1654 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
|
1655 the variable `vc-BACKEND-header'." |
904 | 1656 (interactive) |
21366
e7b64d0b3b3d
(vc-ensure-vc-buffer): New function.
André Spiegel <spiegel@gnu.org>
parents:
21357
diff
changeset
|
1657 (vc-ensure-vc-buffer) |
904 | 1658 (save-excursion |
1659 (save-restriction | |
1660 (widen) | |
94207
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1661 (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
|
1662 (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
|
1663 (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
|
1664 (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
|
1665 (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
|
1666 (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
|
1667 'header)) |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1668 (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
|
1669 (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
|
1670 (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
|
1671 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
|
1672 (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
|
1673 (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
|
1674 (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
|
1675 (insert (format (cdr f) (car hdstrings))))))))))) |
904 | 1676 |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1677 (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
|
1678 "Clear all version headers in the current buffer (or FILE). |
41071 | 1679 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
|
1680 (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
|
1681 (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
|
1682 (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
|
1683 (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
|
1684 (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
|
1685 (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
|
1686 ;; 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
|
1687 ;; 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
|
1688 ;; 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
|
1689 (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
|
1690 (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
|
1691 (vc-restore-buffer-context context)) |
32058
4196f89984ce
* vc.el (vc-editable-p): Minor optimization.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32054
diff
changeset
|
1692 (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
|
1693 (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
|
1694 (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
|
1695 |
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
|
1696 (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
|
1697 "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
|
1698 (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
|
1699 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
|
1700 "Enter a replacement change comment." |
95018
2253b8d4def6
More elimination of buffer name dependencies.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
95017
diff
changeset
|
1701 "*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
|
1702 (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
|
1703 (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
|
1704 ;; 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
|
1705 ;; 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
|
1706 ;; 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
|
1707 (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
|
1708 '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
|
1709 |
21366
e7b64d0b3b3d
(vc-ensure-vc-buffer): New function.
André Spiegel <spiegel@gnu.org>
parents:
21357
diff
changeset
|
1710 ;;;###autoload |
31404
f2ab9420390f
2000-09-05 Stefan Monnier <monnier@cs.yale.edu>
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
31387
diff
changeset
|
1711 (defun vc-merge () |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1712 "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
|
1713 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
|
1714 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
|
1715 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
|
1716 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
|
1717 |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1718 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
|
1719 (interactive) |
21368
37b978fc46cb
(vc-merge, vc-backend-merge): New functions.
André Spiegel <spiegel@gnu.org>
parents:
21366
diff
changeset
|
1720 (vc-ensure-vc-buffer) |
37b978fc46cb
(vc-merge, vc-backend-merge): New functions.
André Spiegel <spiegel@gnu.org>
parents:
21366
diff
changeset
|
1721 (vc-buffer-sync) |
37b978fc46cb
(vc-merge, vc-backend-merge): New functions.
André Spiegel <spiegel@gnu.org>
parents:
21366
diff
changeset
|
1722 (let* ((file buffer-file-name) |
37b978fc46cb
(vc-merge, vc-backend-merge): New functions.
André Spiegel <spiegel@gnu.org>
parents:
21366
diff
changeset
|
1723 (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
|
1724 (state (vc-state file)) |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1725 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
|
1726 (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
|
1727 ((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
|
1728 (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
|
1729 ((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
|
1730 (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
|
1731 "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
|
1732 (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
|
1733 (error "Merge aborted")))) |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1734 (setq first-revision |
104647
ef4820f099a1
(vc-read-revision): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104621
diff
changeset
|
1735 (vc-read-revision |
ef4820f099a1
(vc-read-revision): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104621
diff
changeset
|
1736 (concat "Branch or revision to merge from " |
ef4820f099a1
(vc-read-revision): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104621
diff
changeset
|
1737 "(default news on current branch): ") |
ef4820f099a1
(vc-read-revision): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104621
diff
changeset
|
1738 (list file) |
ef4820f099a1
(vc-read-revision): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104621
diff
changeset
|
1739 backend)) |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1740 (if (string= first-revision "") |
94805
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
1741 (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
|
1742 (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
|
1743 (error "Sorry, merging is not implemented for %s" backend) |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1744 (if (not (vc-branch-p first-revision)) |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1745 (setq second-revision |
104647
ef4820f099a1
(vc-read-revision): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104621
diff
changeset
|
1746 (vc-read-revision |
ef4820f099a1
(vc-read-revision): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104621
diff
changeset
|
1747 "Second revision: " |
ef4820f099a1
(vc-read-revision): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104621
diff
changeset
|
1748 (list file) backend nil |
ef4820f099a1
(vc-read-revision): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104621
diff
changeset
|
1749 ;; FIXME: This is CVS/RCS/SCCS specific. |
ef4820f099a1
(vc-read-revision): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104621
diff
changeset
|
1750 (concat (vc-branch-part first-revision) "."))) |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1751 ;; 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
|
1752 ;; accordingly, so that vc-BACKEND-merge understands us. |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1753 (setq second-revision first-revision) |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1754 ;; first-revision must be the starting point of the branch |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1755 (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
|
1756 (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
|
1757 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
|
1758 (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
|
1759 |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1760 (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
|
1761 (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
|
1762 (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
|
1763 (smerge-mode 1) |
54586
c3043c1faed3
(vc-maybe-resolve-conflicts): Don't prompt the user.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
54562
diff
changeset
|
1764 (message "File contains conflicts."))) |
21368
37b978fc46cb
(vc-merge, vc-backend-merge): New functions.
André Spiegel <spiegel@gnu.org>
parents:
21366
diff
changeset
|
1765 |
37b978fc46cb
(vc-merge, vc-backend-merge): New functions.
André Spiegel <spiegel@gnu.org>
parents:
21366
diff
changeset
|
1766 ;;;###autoload |
47781
79bdd88fb006
(vc-resolve-conflicts); Typo.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47780
diff
changeset
|
1767 (defalias 'vc-resolve-conflicts 'smerge-ediff) |
21324
b0abfde79536
* vc.el (vc-resolve-conflicts): New function.
André Spiegel <spiegel@gnu.org>
parents:
21233
diff
changeset
|
1768 |
904 | 1769 ;; Named-configuration entry points |
1770 | |
95020
4da572dc4992
Snapshot primitives globally renamed to refer to tags, documentation updated.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
95018
diff
changeset
|
1771 (defun vc-tag-precondition (dir) |
41071 | 1772 "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
|
1773 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
|
1774 \(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
|
1775 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
|
1776 Otherwise, return nil." |
12714
192f537bca2a
(vc-resynch-buffer): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12589
diff
changeset
|
1777 (let ((status nil)) |
192f537bca2a
(vc-resynch-buffer): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12589
diff
changeset
|
1778 (catch 'vc-locked-example |
192f537bca2a
(vc-resynch-buffer): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12589
diff
changeset
|
1779 (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
|
1780 dir |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1781 (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
|
1782 (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
|
1783 (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
|
1784 status))) |
904 | 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-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
|
1788 "Descending recursively from DIR, make a tag called NAME. |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1789 For each registered file, the working revision becomes part of |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1790 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
|
1791 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
|
1792 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
|
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 "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
|
1796 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
|
1797 (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
|
1798 (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
|
1799 (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
|
1800 '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
|
1801 (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
|
1802 |
927 | 1803 ;;;###autoload |
95020
4da572dc4992
Snapshot primitives globally renamed to refer to tags, documentation updated.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
95018
diff
changeset
|
1804 (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
|
1805 "Descending recursively from DIR, retrieve the tag called NAME. |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1806 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
|
1807 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
|
1808 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
|
1809 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
|
1810 (interactive |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
1811 (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
|
1812 (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
|
1813 (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
|
1814 (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
|
1815 (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
|
1816 (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
|
1817 (abbreviate-file-name dir))))) |
65582
4d1085b02d64
Message format spec fixes (1)
Deepak Goel <deego@gnufans.org>
parents:
65405
diff
changeset
|
1818 (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
|
1819 (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
|
1820 'retrieve-tag dir name update) |
65582
4d1085b02d64
Message format spec fixes (1)
Deepak Goel <deego@gnufans.org>
parents:
65405
diff
changeset
|
1821 (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
|
1822 |
904 | 1823 ;; Miscellaneous other entry points |
1824 | |
104041
f2d3a9b75762
(vc-print-log-internal): New function, split out from ...
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103596
diff
changeset
|
1825 (defun vc-print-log-internal (backend files working-revision) |
f2d3a9b75762
(vc-print-log-internal): New function, split out from ...
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103596
diff
changeset
|
1826 ;; Don't switch to the output buffer before running the command, |
f2d3a9b75762
(vc-print-log-internal): New function, split out from ...
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103596
diff
changeset
|
1827 ;; so that any buffer-local settings in the vc-controlled |
f2d3a9b75762
(vc-print-log-internal): New function, split out from ...
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103596
diff
changeset
|
1828 ;; buffer can be accessed by the command. |
f2d3a9b75762
(vc-print-log-internal): New function, split out from ...
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103596
diff
changeset
|
1829 (vc-call-backend backend 'print-log files "*vc-change-log*") |
f2d3a9b75762
(vc-print-log-internal): New function, split out from ...
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103596
diff
changeset
|
1830 (pop-to-buffer "*vc-change-log*") |
f2d3a9b75762
(vc-print-log-internal): New function, split out from ...
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103596
diff
changeset
|
1831 (vc-exec-after |
f2d3a9b75762
(vc-print-log-internal): New function, split out from ...
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103596
diff
changeset
|
1832 `(let ((inhibit-read-only t)) |
f2d3a9b75762
(vc-print-log-internal): New function, split out from ...
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103596
diff
changeset
|
1833 (vc-call-backend ',backend 'log-view-mode) |
f2d3a9b75762
(vc-print-log-internal): New function, split out from ...
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103596
diff
changeset
|
1834 (set (make-local-variable 'log-view-vc-backend) ',backend) |
f2d3a9b75762
(vc-print-log-internal): New function, split out from ...
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103596
diff
changeset
|
1835 (set (make-local-variable 'log-view-vc-fileset) ',files) |
104597
d3ef713449d3
* vc.el (vc-diff-internal): Let-bind `process-file-side-effects' with nil.
Michael Albinus <michael.albinus@gmx.de>
parents:
104042
diff
changeset
|
1836 |
104041
f2d3a9b75762
(vc-print-log-internal): New function, split out from ...
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103596
diff
changeset
|
1837 ;; FIXME: this seems to apply only to RCS/CVS, it doesn't quite |
f2d3a9b75762
(vc-print-log-internal): New function, split out from ...
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103596
diff
changeset
|
1838 ;; belong here in the generic code. |
f2d3a9b75762
(vc-print-log-internal): New function, split out from ...
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103596
diff
changeset
|
1839 (goto-char (point-max)) |
f2d3a9b75762
(vc-print-log-internal): New function, split out from ...
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103596
diff
changeset
|
1840 (forward-line -1) |
f2d3a9b75762
(vc-print-log-internal): New function, split out from ...
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103596
diff
changeset
|
1841 (while (looking-at "=*\n") |
f2d3a9b75762
(vc-print-log-internal): New function, split out from ...
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103596
diff
changeset
|
1842 (delete-char (- (match-end 0) (match-beginning 0))) |
f2d3a9b75762
(vc-print-log-internal): New function, split out from ...
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103596
diff
changeset
|
1843 (forward-line -1)) |
f2d3a9b75762
(vc-print-log-internal): New function, split out from ...
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103596
diff
changeset
|
1844 (goto-char (point-min)) |
f2d3a9b75762
(vc-print-log-internal): New function, split out from ...
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103596
diff
changeset
|
1845 (when (looking-at "[\b\t\n\v\f\r ]+") |
f2d3a9b75762
(vc-print-log-internal): New function, split out from ...
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103596
diff
changeset
|
1846 (delete-char (- (match-end 0) (match-beginning 0)))) |
f2d3a9b75762
(vc-print-log-internal): New function, split out from ...
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103596
diff
changeset
|
1847 |
f2d3a9b75762
(vc-print-log-internal): New function, split out from ...
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103596
diff
changeset
|
1848 (shrink-window-if-larger-than-buffer) |
f2d3a9b75762
(vc-print-log-internal): New function, split out from ...
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103596
diff
changeset
|
1849 ;; move point to the log entry for the working revision |
f2d3a9b75762
(vc-print-log-internal): New function, split out from ...
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103596
diff
changeset
|
1850 (vc-call-backend ',backend 'show-log-entry ',working-revision) |
f2d3a9b75762
(vc-print-log-internal): New function, split out from ...
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103596
diff
changeset
|
1851 (setq vc-sentinel-movepoint (point)) |
f2d3a9b75762
(vc-print-log-internal): New function, split out from ...
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103596
diff
changeset
|
1852 (set-buffer-modified-p nil)))) |
f2d3a9b75762
(vc-print-log-internal): New function, split out from ...
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103596
diff
changeset
|
1853 |
927 | 1854 ;;;###autoload |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1855 (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
|
1856 "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
|
1857 If WORKING-REVISION is non-nil, leave the point at that revision." |
904 | 1858 (interactive) |
96046
422d57d537d7
(vc-deduce-fileset): Add arg `only-files'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95966
diff
changeset
|
1859 (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
|
1860 (backend (car vc-fileset)) |
94984
b8d24d4a4bdc
Eliminate exoensive (vc-expand-dirs) calls.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94974
diff
changeset
|
1861 (files (cadr vc-fileset)) |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1862 (working-revision (or working-revision (vc-working-revision (car files))))) |
104041
f2d3a9b75762
(vc-print-log-internal): New function, split out from ...
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103596
diff
changeset
|
1863 (vc-print-log-internal backend files working-revision))) |
904 | 1864 |
927 | 1865 ;;;###autoload |
81957
8f9991bf3b41
Generalize stay-local-p to operatre on lists of files.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
81923
diff
changeset
|
1866 (defun vc-revert () |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1867 "Revert working copies of the selected fileset to their repository contents. |
952 | 1868 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
|
1869 to the working revision (except for keyword expansion)." |
904 | 1870 (interactive) |
94240
9f1f284d17b3
(vc-next-action): Do not consider directories when
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94214
diff
changeset
|
1871 (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
|
1872 (files (cadr vc-fileset))) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1873 ;; 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
|
1874 ;; 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
|
1875 ;; 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
|
1876 ;; 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
|
1877 (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
|
1878 (vc-buffer-sync nil)) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1879 (dolist (file files) |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1880 (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
|
1881 (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
|
1882 (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
|
1883 (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
|
1884 (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
|
1885 (error "Revert canceled")))) |
94240
9f1f284d17b3
(vc-next-action): Do not consider directories when
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94214
diff
changeset
|
1886 (when (vc-diff-internal vc-allow-async-revert vc-fileset nil nil) |
99262
bc878f998f43
(vc-revert): Limit the length of the query string.
Chong Yidong <cyd@stupidchicken.com>
parents:
99159
diff
changeset
|
1887 (unless (yes-or-no-p |
bc878f998f43
(vc-revert): Limit the length of the query string.
Chong Yidong <cyd@stupidchicken.com>
parents:
99159
diff
changeset
|
1888 (format "Discard changes in %s? " |
bc878f998f43
(vc-revert): Limit the length of the query string.
Chong Yidong <cyd@stupidchicken.com>
parents:
99159
diff
changeset
|
1889 (let ((str (vc-delistify files))) |
bc878f998f43
(vc-revert): Limit the length of the query string.
Chong Yidong <cyd@stupidchicken.com>
parents:
99159
diff
changeset
|
1890 (if (< (length str) 50) |
bc878f998f43
(vc-revert): Limit the length of the query string.
Chong Yidong <cyd@stupidchicken.com>
parents:
99159
diff
changeset
|
1891 str |
bc878f998f43
(vc-revert): Limit the length of the query string.
Chong Yidong <cyd@stupidchicken.com>
parents:
99159
diff
changeset
|
1892 (format "%d files" (length files)))))) |
94207
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
1893 (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
|
1894 (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
|
1895 (kill-buffer "*vc-diff*")) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1896 (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
|
1897 (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
|
1898 (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
|
1899 (message "Reverting %s...done" (vc-delistify files))))) |
904 | 1900 |
43586
62c8a228bc1f
(vc-update): New function.
André Spiegel <spiegel@gnu.org>
parents:
43584
diff
changeset
|
1901 ;;;###autoload |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1902 (defun vc-rollback () |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1903 "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
|
1904 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
|
1905 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
|
1906 (interactive) |
94240
9f1f284d17b3
(vc-next-action): Do not consider directories when
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94214
diff
changeset
|
1907 (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
|
1908 (backend (car vc-fileset)) |
94984
b8d24d4a4bdc
Eliminate exoensive (vc-expand-dirs) calls.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94974
diff
changeset
|
1909 (files (cadr vc-fileset)) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1910 (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
|
1911 (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
|
1912 (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
|
1913 (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
|
1914 (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
|
1915 ;; 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
|
1916 (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
|
1917 (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
|
1918 ;; 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
|
1919 ;; 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
|
1920 ;; 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
|
1921 ;; 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
|
1922 (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
|
1923 (vc-buffer-sync nil)) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1924 (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
|
1925 (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
|
1926 (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
|
1927 (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
|
1928 (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
|
1929 ;; Accumulate changes associated with the fileset |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1930 (vc-setup-buffer "*vc-diff*") |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1931 (not-modified) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1932 (message "Finding changes...") |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1933 (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
|
1934 ;; 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
|
1935 (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
|
1936 (car files) tip))) |
94240
9f1f284d17b3
(vc-next-action): Do not consider directories when
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94214
diff
changeset
|
1937 (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
|
1938 ;; Display changes |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1939 (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
|
1940 (error "Rollback canceled")) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1941 (delete-windows-on "*vc-diff*") |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1942 (kill-buffer"*vc-diff*") |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1943 ;; Do the actual reversions |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1944 (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
|
1945 (with-vc-properties |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1946 files |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1947 (vc-call-backend backend 'rollback files) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1948 `((vc-state . ,'up-to-date) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
1949 (vc-checkout-time . , (nth 5 (file-attributes file))) |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1950 (vc-working-revision . nil))) |
85454
be5bf5efd2ed
Remove `diff-tree' operation, now subsumed by `diff'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85364
diff
changeset
|
1951 (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
|
1952 (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
|
1953 |
38595
396f97177ef1
(vc-switch-backend): Fix autoload cookie.
Gerd Moellmann <gerd@gnu.org>
parents:
38442
diff
changeset
|
1954 ;;;###autoload |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1955 (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
|
1956 |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1957 ;;;###autoload |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1958 (defun vc-update () |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
1959 "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
|
1960 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
|
1961 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
|
1962 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
|
1963 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
|
1964 (interactive) |
94240
9f1f284d17b3
(vc-next-action): Do not consider directories when
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94214
diff
changeset
|
1965 (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
|
1966 (backend (car vc-fileset)) |
94984
b8d24d4a4bdc
Eliminate exoensive (vc-expand-dirs) calls.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94974
diff
changeset
|
1967 (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
|
1968 (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
|
1969 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
|
1970 (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
|
1971 (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
|
1972 (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
|
1973 (dolist (file files) |
9f1f284d17b3
(vc-next-action): Do not consider directories when
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94214
diff
changeset
|
1974 (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
|
1975 (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
|
1976 (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
|
1977 (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
|
1978 (error "%s" |
9f1f284d17b3
(vc-next-action): Do not consider directories when
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94214
diff
changeset
|
1979 (substitute-command-keys |
9f1f284d17b3
(vc-next-action): Do not consider directories when
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94214
diff
changeset
|
1980 "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
|
1981 (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
|
1982 (vc-state file) |
87147 | 1983 (substitute-command-keys |
94240
9f1f284d17b3
(vc-next-action): Do not consider directories when
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94214
diff
changeset
|
1984 "\\[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
|
1985 (vc-maybe-resolve-conflicts |
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
1986 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
|
1987 |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1988 (defun vc-version-backup-file (file &optional rev) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1989 "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
|
1990 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
|
1991 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
|
1992 its name; otherwise return nil." |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1993 (when (vc-call make-version-backups-p file) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1994 (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
|
1995 (if (file-exists-p backup-file) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1996 backup-file |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
1997 ;; 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
|
1998 (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
|
1999 (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
|
2000 backup-file))))) |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2001 |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2002 (defun vc-revert-file (file) |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
2003 "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
|
2004 (with-vc-properties |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
2005 (list file) |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2006 (let ((backup-file (vc-version-backup-file file))) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2007 (when backup-file |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2008 (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
|
2009 (vc-delete-automatic-version-backups file)) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2010 (vc-call revert file backup-file)) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2011 `((vc-state . up-to-date) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2012 (vc-checkout-time . ,(nth 5 (file-attributes file))))) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2013 (vc-resynch-buffer file t t)) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2014 |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2015 ;;;###autoload |
31810
495ca3bd372d
(vc-index-of, vc-transfer-file, vc-default-receive-file): New functions.
André Spiegel <spiegel@gnu.org>
parents:
31718
diff
changeset
|
2016 (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
|
2017 "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
|
2018 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
|
2019 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
|
2020 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
|
2021 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
|
2022 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
|
2023 (interactive |
31810
495ca3bd372d
(vc-index-of, vc-transfer-file, vc-default-receive-file): New functions.
André Spiegel <spiegel@gnu.org>
parents:
31718
diff
changeset
|
2024 (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
|
2025 (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
|
2026 (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
|
2027 (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
|
2028 (backends nil)) |
96123
7742c3c06407
* vc.el (vc-switch-backend): Simplify.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96122
diff
changeset
|
2029 (unless crt-bk |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
2030 (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
|
2031 ;; Find the registered backends. |
96123
7742c3c06407
* vc.el (vc-switch-backend): Simplify.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96122
diff
changeset
|
2032 (dolist (crt vc-handled-backends) |
7742c3c06407
* vc.el (vc-switch-backend): Simplify.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96122
diff
changeset
|
2033 (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
|
2034 (not (eq crt-bk crt))) |
7742c3c06407
* vc.el (vc-switch-backend): Simplify.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96122
diff
changeset
|
2035 (push crt backends))) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
2036 ;; Find the next backend. |
96123
7742c3c06407
* vc.el (vc-switch-backend): Simplify.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96122
diff
changeset
|
2037 (let ((def (car backends)) |
7742c3c06407
* vc.el (vc-switch-backend): Simplify.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96122
diff
changeset
|
2038 (others backends)) |
85132
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
2039 (cond |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
2040 ((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
|
2041 (current-prefix-arg |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
2042 (intern |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
2043 (upcase |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
2044 (completing-read |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
2045 (format "Switch to backend [%s]: " def) |
d5d7671ba1ea
Merge in new VC with filesets.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85114
diff
changeset
|
2046 (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
|
2047 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
|
2048 (t def)))))) |
32059
13e0fdf65e3c
(with-vc-file, vc-next-action-on-file):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32058
diff
changeset
|
2049 (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
|
2050 (vc-file-clearprops file) |
13e0fdf65e3c
(with-vc-file, vc-next-action-on-file):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
32058
diff
changeset
|
2051 (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
|
2052 ;; 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
|
2053 (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
|
2054 (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
|
2055 (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
|
2056 (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
|
2057 |
38726
2dddcf515155
(vc-transfer-file): Fix malformed autoload cookie.
Gerd Moellmann <gerd@gnu.org>
parents:
38608
diff
changeset
|
2058 ;;;###autoload |
31810
495ca3bd372d
(vc-index-of, vc-transfer-file, vc-default-receive-file): New functions.
André Spiegel <spiegel@gnu.org>
parents:
31718
diff
changeset
|
2059 (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
|
2060 "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
|
2061 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
|
2062 \(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
|
2063 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
|
2064 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
|
2065 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
|
2066 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
|
2067 \(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
|
2068 (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
|
2069 (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
|
2070 (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
|
2071 (move |
adf341c172af
(vc-transfer-file, vc-default-receive-file): Rewritten to factorize
André Spiegel <spiegel@gnu.org>
parents:
32093
diff
changeset
|
2072 (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
|
2073 ;; 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
|
2074 (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
|
2075 (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
|
2076 (comment nil)) |
94240
9f1f284d17b3
(vc-next-action): Do not consider directories when
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94214
diff
changeset
|
2077 (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
|
2078 (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
|
2079 (if registered |
adf341c172af
(vc-transfer-file, vc-default-receive-file): Rewritten to factorize
André Spiegel <spiegel@gnu.org>
parents:
32093
diff
changeset
|
2080 (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
|
2081 ;; `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
|
2082 (vc-switch-backend file old-backend) |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
2083 (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
|
2084 (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
|
2085 (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
|
2086 ;; 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
|
2087 (unwind-protect |
adf341c172af
(vc-transfer-file, vc-default-receive-file): Rewritten to factorize
André Spiegel <spiegel@gnu.org>
parents:
32093
diff
changeset
|
2088 (progn |
32126
3aab429d3c8a
(vc-revert-buffer): Handle empty diff properly.
André Spiegel <spiegel@gnu.org>
parents:
32097
diff
changeset
|
2089 (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
|
2090 (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
|
2091 ;; 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
|
2092 ;; 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
|
2093 ;; 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
|
2094 (if unmodified-file |
50894
4dc2d45403ec
(with-vc-properties, with-vc-file, edit-vc-file):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49869
diff
changeset
|
2095 (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
|
2096 '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
|
2097 (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
|
2098 (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
|
2099 (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
|
2100 (when modified-file |
32097
adf341c172af
(vc-transfer-file, vc-default-receive-file): Rewritten to factorize
André Spiegel <spiegel@gnu.org>
parents:
32093
diff
changeset
|
2101 (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
|
2102 (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
|
2103 (vc-checkout file t nil)) |
32126
3aab429d3c8a
(vc-revert-buffer): Handle empty diff properly.
André Spiegel <spiegel@gnu.org>
parents:
32097
diff
changeset
|
2104 (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
|
2105 (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
|
2106 (when move |
adf341c172af
(vc-transfer-file, vc-default-receive-file): Rewritten to factorize
André Spiegel <spiegel@gnu.org>
parents:
32093
diff
changeset
|
2107 (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
|
2108 (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
|
2109 (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
|
2110 (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
|
2111 (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
|
2112 (vc-file-setprop file 'vc-state 'edited) |
103553
af4ee0cb7fb7
* vc-hooks.el (vc-stay-local-p, vc-state, vc-working-revision):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103434
diff
changeset
|
2113 (vc-mode-line file new-backend) |
102576
ca736f834e8c
(vc-checkin): Add an extra argument for the VC backend,
Dan Nicolaescu <dann@ics.uci.edu>
parents:
102554
diff
changeset
|
2114 (vc-checkin file new-backend 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
|
2115 |
31380
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
2116 (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
|
2117 "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
|
2118 (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
|
2119 (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
|
2120 (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
|
2121 (masters |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
2122 ;; 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
|
2123 (mapcar |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
2124 (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
|
2125 templates))) |
94207
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
2126 (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
|
2127 (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
|
2128 (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
|
2129 (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
|
2130 oldmaster |
2d74ed749db8
(vc-next-action-on-file): Do not visit the file if it's
Gerd Moellmann <gerd@gnu.org>
parents:
28460
diff
changeset
|
2131 (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
|
2132 ;; 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
|
2133 (dolist (f masters) |
94240
9f1f284d17b3
(vc-next-action): Do not consider directories when
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94214
diff
changeset
|
2134 (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
|
2135 (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
|
2136 ;; 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
|
2137 (dolist (f masters) |
4dc2d45403ec
(with-vc-properties, with-vc-file, edit-vc-file):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49869
diff
changeset
|
2138 (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
|
2139 (file-directory-p dir)) |
4dc2d45403ec
(with-vc-properties, with-vc-file, edit-vc-file):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49869
diff
changeset
|
2140 (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
|
2141 (error "New file lacks a version control directory"))))) |
904 | 2142 |
103153
ce30850e6e3f
(vc-delete-file): Add autoload cookie (bug#3209).
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
102680
diff
changeset
|
2143 ;;;###autoload |
50926
dd6110a63907
New backend functions `delete-file' and `repository-hostname'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50894
diff
changeset
|
2144 (defun vc-delete-file (file) |
dd6110a63907
New backend functions `delete-file' and `repository-hostname'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50894
diff
changeset
|
2145 "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
|
2146 (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
|
2147 (setq file (expand-file-name file)) |
51245
f6920b201e1c
(vc-delete-file): Fix free variable reference.
André Spiegel <spiegel@gnu.org>
parents:
51064
diff
changeset
|
2148 (let ((buf (get-file-buffer file)) |
f6920b201e1c
(vc-delete-file): Fix free variable reference.
André Spiegel <spiegel@gnu.org>
parents:
51064
diff
changeset
|
2149 (backend (vc-backend file))) |
f6920b201e1c
(vc-delete-file): Fix free variable reference.
André Spiegel <spiegel@gnu.org>
parents:
51064
diff
changeset
|
2150 (unless backend |
51627
1329f6a6c949
(vc-rename-file): Fix typo.
Luc Teirlinck <teirllm@auburn.edu>
parents:
51369
diff
changeset
|
2151 (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
|
2152 (file-name-nondirectory file))) |
50926
dd6110a63907
New backend functions `delete-file' and `repository-hostname'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50894
diff
changeset
|
2153 (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
|
2154 (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
|
2155 (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
|
2156 (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
|
2157 (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
|
2158 (when (eq state 'edited) |
069edac43148
(vc-delete-file): Check if the file has uncommitted changed.
Sam Steingold <sds@gnu.org>
parents:
94519
diff
changeset
|
2159 (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
|
2160 (when (eq state 'conflict) |
069edac43148
(vc-delete-file): Check if the file has uncommitted changed.
Sam Steingold <sds@gnu.org>
parents:
94519
diff
changeset
|
2161 (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
|
2162 (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
|
2163 (file-name-nondirectory file))) |
dd6110a63907
New backend functions `delete-file' and `repository-hostname'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50894
diff
changeset
|
2164 (error "Abort!")) |
94499
5f57377d1eff
(vc-dir-mode-map): Bind "d" to vc-dir-delete-file.
Sam Steingold <sds@gnu.org>
parents:
94495
diff
changeset
|
2165 (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
|
2166 (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
|
2167 (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
|
2168 (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
|
2169 (backup-buffer)))) |
95895
2ab93a71b21a
(vc-delete-file): Bound default-directory before calling
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95853
diff
changeset
|
2170 ;; 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
|
2171 ;; 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
|
2172 (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
|
2173 (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
|
2174 ;; 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
|
2175 (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
|
2176 ;; 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
|
2177 (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
|
2178 ;; 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
|
2179 ;; updated after this. |
4d7bc1390196
(vc-delete-file): Make sure the buffer is deleted and
Dan Nicolaescu <dann@ics.uci.edu>
parents:
95269
diff
changeset
|
2180 (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
|
2181 |
9044
5ddb0e0adb08
(vc-backend-checkout): Add if-statements to the shell cmds
Richard M. Stallman <rms@gnu.org>
parents:
8726
diff
changeset
|
2182 ;;;###autoload |
904 | 2183 (defun vc-rename-file (old new) |
2750
6f340eabf13f
Improve doc strings and prompt strings.
Richard M. Stallman <rms@gnu.org>
parents:
2745
diff
changeset
|
2184 "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
|
2185 (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
|
2186 ;; 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
|
2187 (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
|
2188 (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
|
2189 (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
|
2190 (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
|
2191 (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
|
2192 (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
|
2193 (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
|
2194 (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
|
2195 (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
|
2196 (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
|
2197 (error "New file already exists")) |
51627
1329f6a6c949
(vc-rename-file): Fix typo.
Luc Teirlinck <teirllm@auburn.edu>
parents:
51369
diff
changeset
|
2198 (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
|
2199 (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
|
2200 (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
|
2201 (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
|
2202 (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
|
2203 (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
|
2204 ;; 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
|
2205 (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
|
2206 ;; ?? 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
|
2207 ;; 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
|
2208 ;; 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
|
2209 (when oldbuf |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
2210 (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
|
2211 (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
|
2212 (set-visited-file-name new)) |
103553
af4ee0cb7fb7
* vc-hooks.el (vc-stay-local-p, vc-state, vc-working-revision):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
103434
diff
changeset
|
2213 (vc-mode-line new (vc-backend new)) |
94207
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
2214 (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
|
2215 |
927 | 2216 ;;;###autoload |
1226
573df03a54d8
(vc-update-change-log): Use shell-command, not shell-command-on-region.
Roland McGrath <roland@gnu.org>
parents:
952
diff
changeset
|
2217 (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
|
2218 "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
|
2219 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
|
2220 directory. |
15989
2813c68432c9
(vc-update-change-log): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15977
diff
changeset
|
2221 |
31404
f2ab9420390f
2000-09-05 Stefan Monnier <monnier@cs.yale.edu>
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
31387
diff
changeset
|
2222 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
|
2223 |
2813c68432c9
(vc-update-change-log): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
15977
diff
changeset
|
2224 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
|
2225 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
|
2226 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
|
2227 |
31404
f2ab9420390f
2000-09-05 Stefan Monnier <monnier@cs.yale.edu>
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
31387
diff
changeset
|
2228 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
|
2229 log entries should be gathered." |
1227
d07030650283
(vc-checkin-hook): New user hook variable.
Roland McGrath <roland@gnu.org>
parents:
1226
diff
changeset
|
2230 (interactive |
d07030650283
(vc-checkin-hook): New user hook variable.
Roland McGrath <roland@gnu.org>
parents:
1226
diff
changeset
|
2231 (cond ((consp current-prefix-arg) ;C-u |
d07030650283
(vc-checkin-hook): New user hook variable.
Roland McGrath <roland@gnu.org>
parents:
1226
diff
changeset
|
2232 (list buffer-file-name)) |
d07030650283
(vc-checkin-hook): New user hook variable.
Roland McGrath <roland@gnu.org>
parents:
1226
diff
changeset
|
2233 (current-prefix-arg ;Numeric argument. |
d07030650283
(vc-checkin-hook): New user hook variable.
Roland McGrath <roland@gnu.org>
parents:
1226
diff
changeset
|
2234 (let ((files nil) |
d07030650283
(vc-checkin-hook): New user hook variable.
Roland McGrath <roland@gnu.org>
parents:
1226
diff
changeset
|
2235 (buffers (buffer-list)) |
d07030650283
(vc-checkin-hook): New user hook variable.
Roland McGrath <roland@gnu.org>
parents:
1226
diff
changeset
|
2236 file) |
d07030650283
(vc-checkin-hook): New user hook variable.
Roland McGrath <roland@gnu.org>
parents:
1226
diff
changeset
|
2237 (while buffers |
d07030650283
(vc-checkin-hook): New user hook variable.
Roland McGrath <roland@gnu.org>
parents:
1226
diff
changeset
|
2238 (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
|
2239 (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
|
2240 (setq files (cons file files))) |
1227
d07030650283
(vc-checkin-hook): New user hook variable.
Roland McGrath <roland@gnu.org>
parents:
1226
diff
changeset
|
2241 (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
|
2242 files)) |
1b954eb0f249
(vc-update-change-log): Ensure that file names inserted into a ChangeLog
Paul Eggert <eggert@twinsun.com>
parents:
3905
diff
changeset
|
2243 (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
|
2244 ;; 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
|
2245 ;; 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
|
2246 ;; 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
|
2247 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
|
2248 (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
|
2249 '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
|
2250 |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2251 ;; 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
|
2252 ;; 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
|
2253 ;; it is used in code below. |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2254 (defun vc-branch-p (rev) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2255 "Return t if REV is a branch revision." |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2256 (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
|
2257 |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2258 ;;;###autoload |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2259 (defun vc-branch-part (rev) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2260 "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
|
2261 (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
|
2262 (when index |
2aa6d908ffad
* vc-hooks.el (vc-insert-file, vc-state, vc-working-revision)
Dan Nicolaescu <dann@ics.uci.edu>
parents:
94173
diff
changeset
|
2263 (substring rev 0 index)))) |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2264 |
97936
c2f756ba4557
(vc-default-previous-version): Move alias here from vc-hooks, and fix
Glenn Morris <rgm@gnu.org>
parents:
97245
diff
changeset
|
2265 (define-obsolete-function-alias |
c2f756ba4557
(vc-default-previous-version): Move alias here from vc-hooks, and fix
Glenn Morris <rgm@gnu.org>
parents:
97245
diff
changeset
|
2266 'vc-default-previous-version 'vc-default-previous-revision "23.1") |
c2f756ba4557
(vc-default-previous-version): Move alias here from vc-hooks, and fix
Glenn Morris <rgm@gnu.org>
parents:
97245
diff
changeset
|
2267 |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2268 (defun vc-default-responsible-p (backend file) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2269 "Indicate whether BACKEND is reponsible for FILE. |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2270 The default is to return nil always." |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2271 nil) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2272 |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2273 (defun vc-default-could-register (backend file) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2274 "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
|
2275 The default implementation returns t for all files." |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2276 t) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2277 |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2278 (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
|
2279 "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
|
2280 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
|
2281 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
|
2282 t) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2283 |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
2284 (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
|
2285 |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
2286 (defun vc-default-find-revision (backend file rev buffer) |
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
2287 "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
|
2288 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
|
2289 to provide the `find-revision' operation instead." |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2290 (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
|
2291 (unwind-protect |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2292 (progn |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2293 (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
|
2294 (with-current-buffer buffer |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2295 (insert-file-contents-literally tmpfile))) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2296 (delete-file tmpfile)))) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2297 |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2298 (defun vc-default-rename-file (backend old new) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2299 (condition-case nil |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2300 (add-name-to-file old new) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2301 (error (rename-file old new))) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2302 (vc-delete-file old) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2303 (with-current-buffer (find-file-noselect new) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2304 (vc-register))) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2305 |
85364
f8d1bb788744
(vc-diff-sentinel, vc-diff-internal): Revert some changes in the
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85178
diff
changeset
|
2306 (defalias 'vc-default-check-headers 'ignore) |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2307 |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2308 (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
|
2309 |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2310 (defun vc-default-show-log-entry (backend rev) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2311 (with-no-warnings |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2312 (log-view-goto-rev rev))) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2313 |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2314 (defun vc-default-comment-history (backend file) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2315 "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
|
2316 (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
|
2317 (with-current-buffer "*vc*" |
94805
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
2318 (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
|
2319 (buffer-string)))) |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2320 |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2321 (defun vc-default-receive-file (backend file rev) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2322 "Let BACKEND receive FILE from another version control system." |
102554
ac34b8fe4921
(vc-default-receive-file): The 'register method now
Dan Nicolaescu <dann@ics.uci.edu>
parents:
100908
diff
changeset
|
2323 (vc-call-backend backend 'register (list file) rev "")) |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2324 |
95020
4da572dc4992
Snapshot primitives globally renamed to refer to tags, documentation updated.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
95018
diff
changeset
|
2325 (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
|
2326 (if (string= name "") |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2327 (progn |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2328 (vc-file-tree-walk |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2329 dir |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2330 (lambda (f) (and |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2331 (vc-up-to-date-p f) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2332 (vc-error-occurred |
94805
89d37b54b964
* vc.el (vc-mark-resolved): Add `backend' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
94803
diff
changeset
|
2333 (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
|
2334 (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
|
2335 (let ((result (vc-tag-precondition dir))) |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2336 (if (stringp result) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2337 (error "File %s is locked" result) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2338 (setq update (and (eq result 'visited) update)) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2339 (vc-file-tree-walk |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2340 dir |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2341 (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
|
2342 (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
|
2343 (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
|
2344 |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2345 (defun vc-default-revert (backend file contents-done) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2346 (unless contents-done |
85139
8ba0e30716a5
Terminology cleanup.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
85132
diff
changeset
|
2347 (let ((rev (vc-working-revision file)) |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2348 (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
|
2349 (message "Checking out %s..." file) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2350 (let ((failed t) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2351 (backup-name (car (find-backup-file-name file)))) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2352 (when backup-name |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2353 (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
|
2354 (unless (file-writable-p file) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2355 (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
|
2356 (unwind-protect |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2357 (let ((coding-system-for-read 'no-conversion) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2358 (coding-system-for-write 'no-conversion)) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2359 (with-temp-file file |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2360 (let ((outbuf (current-buffer))) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2361 ;; 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
|
2362 (with-current-buffer file-buffer |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2363 (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
|
2364 (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
|
2365 file rev outbuf))))) |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2366 (setq failed nil)) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2367 (when backup-name |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2368 (if failed |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2369 (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
|
2370 (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
|
2371 (message "Checking out %s...done" file)))) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2372 |
85364
f8d1bb788744
(vc-diff-sentinel, vc-diff-internal): Revert some changes in the
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85178
diff
changeset
|
2373 (defalias 'vc-default-revision-completion-table 'ignore) |
98336
26ff192a882a
(vc-mark-resolved): Move message here from vc-default-mark-resolved.
Chong Yidong <cyd@stupidchicken.com>
parents:
98326
diff
changeset
|
2374 (defalias 'vc-default-mark-resolved 'ignore) |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2375 |
94059
c249cf124bd6
(vc-status-update): Revert an incorrect rewrite. Add some
Alexandre Julliard <julliard@winehq.org>
parents:
94003
diff
changeset
|
2376 (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
|
2377 (funcall update-function |
c249cf124bd6
(vc-status-update): Revert an incorrect rewrite. Add some
Alexandre Julliard <julliard@winehq.org>
parents:
94003
diff
changeset
|
2378 (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
|
2379 |
85042
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2380 (defun vc-check-headers () |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2381 "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
|
2382 (interactive) |
2fe89ebca6d3
Reorder functions, no code changes.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
84586
diff
changeset
|
2383 (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
|
2384 |
18174
238e30645d07
(diff-switches): defvar deleted.
Richard M. Stallman <rms@gnu.org>
parents:
17911
diff
changeset
|
2385 |
904 | 2386 |
94573
ce09c5078ae7
Partially undo the dispatcher split, it needs to happen more gradually
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94572
diff
changeset
|
2387 ;; 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
|
2388 |
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
|
2389 (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
|
2390 (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
|
2391 (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
|
2392 (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
|
2393 |
94573
ce09c5078ae7
Partially undo the dispatcher split, it needs to happen more gradually
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94572
diff
changeset
|
2394 (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
|
2395 "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
|
2396 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
|
2397 (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
|
2398 (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
|
2399 |
ce09c5078ae7
Partially undo the dispatcher split, it needs to happen more gradually
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94572
diff
changeset
|
2400 (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
|
2401 (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
|
2402 (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
|
2403 (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
|
2404 (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
|
2405 (mapcar |
ce09c5078ae7
Partially undo the dispatcher split, it needs to happen more gradually
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94572
diff
changeset
|
2406 (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
|
2407 (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
|
2408 (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
|
2409 (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
|
2410 (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
|
2411 (or |
ce09c5078ae7
Partially undo the dispatcher split, it needs to happen more gradually
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
94572
diff
changeset
|
2412 (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
|
2413 (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
|
2414 (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
|
2415 |
904 | 2416 (provide 'vc) |
2417 | |
56952
1e43327f7457
(vc-buffer-context, vc-restore-buffer-context): Disable obsolete code.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
55100
diff
changeset
|
2418 ;; arch-tag: ca82c1de-3091-4e26-af92-460abc6213a6 |
904 | 2419 ;;; vc.el ends here |