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