1119 |
description of what was changed in that version. |
description of what was changed in that version. |
1120 |
|
|
1121 |
The Emacs version control interface is called VC. Its commands work |
The Emacs version control interface is called VC. Its commands work |
1122 |
with three version control systems---RCS, CVS, and SCCS. The GNU |
with different version control systems---currently, it supports CVS, |
1123 |
project recommends RCS and CVS, which are free software and available |
GNU Arch, RCS, Meta-CVS, Subversion, and SCCS. Of these, the GNU |
1124 |
from the Free Software Foundation. We also have free software to |
project distributes CVS, GNU Arch, and RCS; we recommend that you use |
1125 |
replace SCCS, known as CSSC; if you are using SCCS and don't want to |
either CVS or GNU Arch for your projects, and RCS for individual |
1126 |
make the incompatible change to RCS or CVS, you can switch to CSSC. |
files. We also have free software to replace SCCS, known as CSSC; if |
1127 |
|
you are using SCCS and don't want to make the incompatible change to |
1128 |
|
RCS or CVS, you can switch to CSSC. |
1129 |
|
|
1130 |
VC is enabled by default in Emacs. To disable it, set the |
VC is enabled by default in Emacs. To disable it, set the |
1131 |
customizable variable @code{vc-handled-backends} to @code{nil} |
customizable variable @code{vc-handled-backends} to @code{nil} |
1166 |
@node Version Systems |
@node Version Systems |
1167 |
@subsubsection Supported Version Control Systems |
@subsubsection Supported Version Control Systems |
1168 |
|
|
|
@cindex RCS |
|
1169 |
@cindex back end (version control) |
@cindex back end (version control) |
1170 |
VC currently works with three different version control systems or |
VC currently works with six different version control systems or |
1171 |
``back ends'': RCS, CVS, and SCCS. |
``back ends'': CVS, GNU Arch, RCS, Meta-CVS, Subversion, and SCCS. |
|
|
|
|
RCS is a free version control system that is available from the Free |
|
|
Software Foundation. It is perhaps the most mature of the supported |
|
|
back ends, and the VC commands are conceptually closest to RCS. Almost |
|
|
everything you can do with RCS can be done through VC. |
|
1172 |
|
|
1173 |
@cindex CVS |
@cindex CVS |
1174 |
CVS is built on top of RCS, and extends the features of RCS, allowing |
CVS is a free version control system that is used for the majority |
1175 |
for more sophisticated release management, and concurrent multi-user |
of free software projects today. It allows concurrent multi-user |
1176 |
development. VC supports basic editing operations under CVS, but for |
development either locally or over the network. Some of its |
1177 |
some less common tasks you still need to call CVS from the command line. |
shortcomings, corrected by newer systems such as GNU Arch, are that it |
1178 |
Note also that before using CVS you must set up a repository, which is a |
lacks atomic commits or support for renaming files. VC supports all |
1179 |
subject too complex to treat here. |
basic editing operations under CVS, but for some less common tasks you |
1180 |
|
still need to call CVS from the command line. Note also that before |
1181 |
|
using CVS you must set up a repository, which is a subject too complex |
1182 |
|
to treat here. |
1183 |
|
|
1184 |
|
@cindex GNU Arch |
1185 |
|
@cindex Arch |
1186 |
|
GNU Arch is a new version control system that is designed for |
1187 |
|
distributed work. It differs in many ways from old well-known |
1188 |
|
systems, such as CVS and RCS. It supports different transports for |
1189 |
|
interoperating between users, offline operations, and it has good |
1190 |
|
branching and merging features. It also supports atomic commits, and |
1191 |
|
history of file renaming and moving. VC does not support all |
1192 |
|
operations provided by GNU Arch, so you must sometimes invoke it from |
1193 |
|
the command line, or use a specialized module. |
1194 |
|
|
1195 |
|
@cindex RCS |
1196 |
|
RCS is the free version control system around which VC was initially |
1197 |
|
built. The VC commands are therefore conceptually closest to RCS. |
1198 |
|
Almost everything you can do with RCS can be done through VC. You |
1199 |
|
cannot use RCS over the network though, and it only works at the level |
1200 |
|
of individual files, rather than projects. You should use it if you |
1201 |
|
want a simple, yet reliable tool for handling individual files. |
1202 |
|
|
1203 |
|
@cindex SVN |
1204 |
|
@cindex Subversion |
1205 |
|
Subversion is a free version control system designed to be similar |
1206 |
|
to CVS but without CVS's problems. Subversion supports atomic commits, |
1207 |
|
and versions directories, symbolic links, meta-data, renames, copies, |
1208 |
|
and deletes. It can be used via http or via its own protocol. |
1209 |
|
|
1210 |
|
@cindex MCVS |
1211 |
|
@cindex Meta-CVS |
1212 |
|
Meta-CVS is another attempt to solve problems, arising in CVS. It |
1213 |
|
supports directory structure versioning, improved branching and |
1214 |
|
merging, and use of symbolic links and meta-data in repositories. |
1215 |
|
|
1216 |
@cindex SCCS |
@cindex SCCS |
1217 |
SCCS is a proprietary but widely used version control system. In |
SCCS is a proprietary but widely used version control system. In |
1218 |
terms of capabilities, it is the weakest of the three that VC |
terms of capabilities, it is the weakest of the six that VC supports. |
1219 |
supports. VC compensates for certain features missing in SCCS |
VC compensates for certain features missing in SCCS (snapshots, for |
1220 |
(snapshots, for example) by implementing them itself, but some other VC |
example) by implementing them itself, but some other VC features, such |
1221 |
features, such as multiple branches, are not available with SCCS. You |
as multiple branches, are not available with SCCS. You should use |
1222 |
should use SCCS only if for some reason you cannot use RCS. |
SCCS only if for some reason you cannot use RCS, or one of the |
1223 |
|
higher-level systems such as CVS or GNU Arch. |
1224 |
|
|
1225 |
@node VC Concepts |
@node VC Concepts |
1226 |
@subsubsection Concepts of Version Control |
@subsubsection Concepts of Version Control |