238 |
of prompting for the file name in the minibuffer. On Unix and |
of prompting for the file name in the minibuffer. On Unix and |
239 |
GNU/Linux platforms, Emacs does that when built with GTK, LessTif, and |
GNU/Linux platforms, Emacs does that when built with GTK, LessTif, and |
240 |
Motif toolkits; on MS-Windows, the GUI version does that by default. |
Motif toolkits; on MS-Windows, the GUI version does that by default. |
241 |
For information on how to customize this, see @xref{Dialog Boxes}. |
For information on how to customize this, see @ref{Dialog Boxes}. |
242 |
|
|
243 |
Secondly, Emacs supports the ``drag and drop'' protocol on the X |
Secondly, Emacs supports the ``drag and drop'' protocol on the X |
244 |
window system. Dropping a file into an ordinary Emacs window visits |
window system. Dropping a file into an ordinary Emacs window visits |
1272 |
SCCS only if for some reason you cannot use RCS, or one of the |
SCCS only if for some reason you cannot use RCS, or one of the |
1273 |
higher-level systems such as CVS or GNU Arch. |
higher-level systems such as CVS or GNU Arch. |
1274 |
|
|
1275 |
|
In the following, we discuss mainly RCS, SCCS and CVS. Nearly |
1276 |
|
everything said about CVS applies to Gnu Arch, Subversion and Meta-CVS |
1277 |
|
as well. |
1278 |
|
|
1279 |
@node VC Concepts |
@node VC Concepts |
1280 |
@subsubsection Concepts of Version Control |
@subsubsection Concepts of Version Control |
1281 |
|
|
1476 |
since you began editing it, and when this happens, his changes will be |
since you began editing it, and when this happens, his changes will be |
1477 |
effectively removed when you check in your version (though they will |
effectively removed when you check in your version (though they will |
1478 |
remain in the master file, so they will not be entirely lost). You must |
remain in the master file, so they will not be entirely lost). You must |
1479 |
therefore verify the current version is unchanged, before you check in your |
therefore verify that the current version is unchanged, before you |
1480 |
changes. We hope to eliminate this risk and provide automatic merging |
check in your changes. We hope to eliminate this risk and provide |
1481 |
with RCS in a future Emacs version. |
automatic merging with RCS in a future Emacs version. |
1482 |
|
|
1483 |
In addition, locking is possible with RCS even in this mode, although |
In addition, locking is possible with RCS even in this mode, although |
1484 |
it is not required; @kbd{C-x v v} with an unmodified file locks the |
it is not required; @kbd{C-x v v} with an unmodified file locks the |
1702 |
that appears first in @code{vc-handled-backends} (@pxref{Customizing VC}). |
that appears first in @code{vc-handled-backends} (@pxref{Customizing VC}). |
1703 |
On the other hand, if there are no files already registered, |
On the other hand, if there are no files already registered, |
1704 |
Emacs uses the first system from @code{vc-handled-backends} that could |
Emacs uses the first system from @code{vc-handled-backends} that could |
1705 |
register the file---for example, you cannot register a file under CVS if |
register the file (for example, you cannot register a file under CVS if |
1706 |
its directory is not already part of a CVS tree. |
its directory is not already part of a CVS tree); with the default |
1707 |
|
value of @code{vc-handled-backends}, this means that Emacs uses RCS in |
1708 |
With the default value of @code{vc-handled-backends}, this means |
this situation. |
|
that Emacs uses RCS if there are any files under RCS control, CVS if |
|
|
there are any files under CVS, SCCS if any files are under SCCS, or |
|
|
RCS as the ultimate default. |
|
1709 |
|
|
1710 |
If locking is in use, @kbd{C-x v i} leaves the file unlocked and |
If locking is in use, @kbd{C-x v i} leaves the file unlocked and |
1711 |
read-only. Type @kbd{C-x v v} if you wish to start editing it. After |
read-only. Type @kbd{C-x v v} if you wish to start editing it. After |
1893 |
If it operates on more than one file, it handles each file according to |
If it operates on more than one file, it handles each file according to |
1894 |
its current state; thus, it might lock one file, but check in another |
its current state; thus, it might lock one file, but check in another |
1895 |
file. This could be confusing; it is up to you to avoid confusing |
file. This could be confusing; it is up to you to avoid confusing |
1896 |
behavior by marking a set of files that are in a similar state. |
behavior by marking a set of files that are in a similar state. If no |
1897 |
|
files are marked, @kbd{v v} operates on the file in the current line. |
1898 |
|
|
1899 |
If any files call for check-in, @kbd{v v} reads a single log entry, |
If any files call for check-in, @kbd{v v} reads a single log entry, |
1900 |
then uses it for all the files being checked in. This is convenient for |
then uses it for all the files being checked in. This is convenient for |
1922 |
features. Each such independent line of development is called a |
features. Each such independent line of development is called a |
1923 |
@dfn{branch}. VC allows you to create branches, switch between |
@dfn{branch}. VC allows you to create branches, switch between |
1924 |
different branches, and merge changes from one branch to another. |
different branches, and merge changes from one branch to another. |
1925 |
Please note, however, that branches are only supported for RCS at the |
Please note, however, that branches are not supported for SCCS. |
|
moment. |
|
1926 |
|
|
1927 |
A file's main line of development is usually called the @dfn{trunk}. |
A file's main line of development is usually called the @dfn{trunk}. |
1928 |
The versions on the trunk are normally numbered 1.1, 1.2, 1.3, etc. At |
The versions on the trunk are normally numbered 1.1, 1.2, 1.3, etc. At |
2265 |
correspond to those of CVS. Technically, this is not a problem, but |
correspond to those of CVS. Technically, this is not a problem, but |
2266 |
it can become difficult to keep track of what is in the CVS repository |
it can become difficult to keep track of what is in the CVS repository |
2267 |
and what is not. So we suggest that you return from time to time to |
and what is not. So we suggest that you return from time to time to |
2268 |
CVS-only operation, using @kbd{C-u C-x v v cvs @key{RET}}. |
CVS-only operation, by committing your local changes back to the |
2269 |
|
repository using @kbd{C-u C-x v v cvs @key{RET}}. |
2270 |
|
|
2271 |
@node Snapshots |
@node Snapshots |
2272 |
@subsection Snapshots |
@subsection Snapshots |
2554 |
Insert headers in a file for use with your version-control system. |
Insert headers in a file for use with your version-control system. |
2555 |
@end table |
@end table |
2556 |
|
|
2557 |
@vindex vc-header-alist |
@vindex vc-@var{backend}-header |
2558 |
The default header string is @samp{@w{$}Id$} for RCS and |
The default header string is @samp{@w{$}Id$} for RCS and |
2559 |
@samp{@w{%}W%} for SCCS. You can specify other headers to insert by |
@samp{@w{%}W%} for SCCS. You can specify other headers to insert by |
2560 |
setting the variable @code{vc-header-alist}. Its value is a list of |
setting the variables @code{vc-@var{backend}-header} where |
2561 |
elements of the form @code{(@var{program} . @var{string})} where |
@var{backend} is @code{rcs} or @code{sccs}. |
|
@var{program} is @code{RCS} or @code{SCCS} and @var{string} is the |
|
|
string to use. |
|
2562 |
|
|
2563 |
Instead of a single string, you can specify a list of strings; then |
Instead of a single string, you can specify a list of strings; then |
2564 |
each string in the list is inserted as a separate header on a line of |
each string in the list is inserted as a separate header on a line of |
2586 |
@var{regexp} matches the buffer name, @var{format} is inserted as part |
@var{regexp} matches the buffer name, @var{format} is inserted as part |
2587 |
of the header. A header line is inserted for each element that matches |
of the header. A header line is inserted for each element that matches |
2588 |
the buffer name, and for each string specified by |
the buffer name, and for each string specified by |
2589 |
@code{vc-header-alist}. The header line is made by processing the |
@code{vc-@var{backend}-header}. The header line is made by processing the |
2590 |
string from @code{vc-header-alist} with the format taken from the |
string from @code{vc-@var{backend}-header} with the format taken from the |
2591 |
element. The default value for @code{vc-static-header-alist} is as follows: |
element. The default value for @code{vc-static-header-alist} is as follows: |
2592 |
|
|
2593 |
@example |
@example |
2624 |
@vindex vc-handled-backends |
@vindex vc-handled-backends |
2625 |
The variable @code{vc-handled-backends} determines which version |
The variable @code{vc-handled-backends} determines which version |
2626 |
control systems VC should handle. The default value is @code{(RCS CVS |
control systems VC should handle. The default value is @code{(RCS CVS |
2627 |
SCCS)}, so it contains all three version systems that are currently |
SVN SCCS Arch MCVS)}, so it contains all six version systems that are |
2628 |
supported. If you want VC to ignore one or more of these systems, |
currently supported. If you want VC to ignore one or more of these |
2629 |
exclude its name from the list. To disable VC entirely, set this |
systems, exclude its name from the list. To disable VC entirely, set |
2630 |
variable to @code{nil}. |
this variable to @code{nil}. |
2631 |
|
|
2632 |
The order of systems in the list is significant: when you visit a file |
The order of systems in the list is significant: when you visit a file |
2633 |
registered in more than one system (@pxref{Local Version Control}), |
registered in more than one system (@pxref{Local Version Control}), |
2780 |
@key{RET}}, @pxref{Merging}). |
@key{RET}}, @pxref{Merging}). |
2781 |
|
|
2782 |
@vindex vc-cvs-global-switches |
@vindex vc-cvs-global-switches |
2783 |
The variable @code{vc-cvs-global-switches} should be a string |
The variable @code{vc-cvs-global-switches}, if non-@code{nil}, |
2784 |
specifying switches to pass to CVS for all CVS operations. |
should be a string specifying switches to pass to CVS for all CVS |
2785 |
|
operations. |
2786 |
|
|
2787 |
When @code{vc-cvs-stay-local} is @code{t}, VC also makes local |
When @code{vc-cvs-stay-local} is @code{t}, VC also makes local |
2788 |
version backups, so that simple diff and revert operations are |
version backups, so that simple diff and revert operations are |
2901 |
With a numeric argument, @code{compare-windows} ignores changes in |
With a numeric argument, @code{compare-windows} ignores changes in |
2902 |
whitespace. If the variable @code{compare-ignore-case} is |
whitespace. If the variable @code{compare-ignore-case} is |
2903 |
non-@code{nil}, the comparison ignores differences in case as well. |
non-@code{nil}, the comparison ignores differences in case as well. |
2904 |
If the variable @code{compare-ignore-whitespace} is non-nil, |
If the variable @code{compare-ignore-whitespace} is non-@code{nil}, |
2905 |
@code{compare-windows} normally ignores changes in whitespace, and a |
@code{compare-windows} normally ignores changes in whitespace, and a |
2906 |
prefix argument turns that off. |
prefix argument turns that off. |
2907 |
|
|