Mercurial > emacs
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 |