comparison man/files.texi @ 58112:6b135de9eb2c

Rewrite the introduction about version systems, mentioning the new ones that we support. Thanks to Alex Ott, Karl Fogel, Stefan Monnier, and David Kastrup for suggestions.
author André Spiegel <spiegel@gnu.org>
date Tue, 09 Nov 2004 23:36:29 +0000
parents 634541ce83f0
children 9fc5198d2147 cb7f41387eb3
comparison
equal deleted inserted replaced
58111:df6e58bf1b9e 58112:6b135de9eb2c
1117 file just once. Version control systems also record history information 1117 file just once. Version control systems also record history information
1118 such as the creation time of each version, who created it, and a 1118 such as the creation time of each version, who created it, and a
1119 description of what was changed in that version. 1119 description of what was changed in that version.
1120 1120
1121 The Emacs version control interface is called VC. Its commands work 1121 The Emacs version control interface is called VC. Its commands work
1122 with three version control systems---RCS, CVS, and SCCS. The GNU 1122 with different version control systems---currently, it supports CVS,
1123 project recommends RCS and CVS, which are free software and available 1123 GNU Arch, RCS, Meta-CVS, Subversion, and SCCS. Of these, the GNU
1124 from the Free Software Foundation. We also have free software to 1124 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 1125 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. 1126 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.
1127 1129
1128 VC is enabled by default in Emacs. To disable it, set the 1130 VC is enabled by default in Emacs. To disable it, set the
1129 customizable variable @code{vc-handled-backends} to @code{nil} 1131 customizable variable @code{vc-handled-backends} to @code{nil}
1130 (@pxref{Customizing VC}). 1132 (@pxref{Customizing VC}).
1131 1133
1162 @end menu 1164 @end menu
1163 1165
1164 @node Version Systems 1166 @node Version Systems
1165 @subsubsection Supported Version Control Systems 1167 @subsubsection Supported Version Control Systems
1166 1168
1169 @cindex back end (version control)
1170 VC currently works with six different version control systems or
1171 ``back ends'': CVS, GNU Arch, RCS, Meta-CVS, Subversion, and SCCS.
1172
1173 @cindex CVS
1174 CVS is a free version control system that is used for the majority
1175 of free software projects today. It allows concurrent multi-user
1176 development either locally or over the network. Some of its
1177 shortcomings, corrected by newer systems such as GNU Arch, are that it
1178 lacks atomic commits or support for renaming files. VC supports all
1179 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
1167 @cindex RCS 1195 @cindex RCS
1168 @cindex back end (version control) 1196 RCS is the free version control system around which VC was initially
1169 VC currently works with three different version control systems or 1197 built. The VC commands are therefore conceptually closest to RCS.
1170 ``back ends'': RCS, CVS, and SCCS. 1198 Almost everything you can do with RCS can be done through VC. You
1171 1199 cannot use RCS over the network though, and it only works at the level
1172 RCS is a free version control system that is available from the Free 1200 of individual files, rather than projects. You should use it if you
1173 Software Foundation. It is perhaps the most mature of the supported 1201 want a simple, yet reliable tool for handling individual files.
1174 back ends, and the VC commands are conceptually closest to RCS. Almost 1202
1175 everything you can do with RCS can be done through VC. 1203 @cindex SVN
1176 1204 @cindex Subversion
1177 @cindex CVS 1205 Subversion is a free version control system designed to be similar
1178 CVS is built on top of RCS, and extends the features of RCS, allowing 1206 to CVS but without CVS's problems. Subversion supports atomic commits,
1179 for more sophisticated release management, and concurrent multi-user 1207 and versions directories, symbolic links, meta-data, renames, copies,
1180 development. VC supports basic editing operations under CVS, but for 1208 and deletes. It can be used via http or via its own protocol.
1181 some less common tasks you still need to call CVS from the command line. 1209
1182 Note also that before using CVS you must set up a repository, which is a 1210 @cindex MCVS
1183 subject too complex to treat here. 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.
1184 1215
1185 @cindex SCCS 1216 @cindex SCCS
1186 SCCS is a proprietary but widely used version control system. In 1217 SCCS is a proprietary but widely used version control system. In
1187 terms of capabilities, it is the weakest of the three that VC 1218 terms of capabilities, it is the weakest of the six that VC supports.
1188 supports. VC compensates for certain features missing in SCCS 1219 VC compensates for certain features missing in SCCS (snapshots, for
1189 (snapshots, for example) by implementing them itself, but some other VC 1220 example) by implementing them itself, but some other VC features, such
1190 features, such as multiple branches, are not available with SCCS. You 1221 as multiple branches, are not available with SCCS. You should use
1191 should use SCCS only if for some reason you cannot use RCS. 1222 SCCS only if for some reason you cannot use RCS, or one of the
1223 higher-level systems such as CVS or GNU Arch.
1192 1224
1193 @node VC Concepts 1225 @node VC Concepts
1194 @subsubsection Concepts of Version Control 1226 @subsubsection Concepts of Version Control
1195 1227
1196 @cindex master file 1228 @cindex master file