aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorEric S. Raymond2008-05-15 17:38:50 +0000
committerEric S. Raymond2008-05-15 17:38:50 +0000
commit370fded4f6cc9c10c776733a1944b1faab84e2bd (patch)
treed17c372c68ede44cfe53e0f8ff073756ded603bd /doc
parente6d897b38e5b3286162a6f486dc221251dcbf9ba (diff)
downloademacs-370fded4f6cc9c10c776733a1944b1faab84e2bd.tar.gz
emacs-370fded4f6cc9c10c776733a1944b1faab84e2bd.zip
Snapshot primitives globally renamed to refer to tags, documentation updated.
Diffstat (limited to 'doc')
-rw-r--r--doc/emacs/ChangeLog7
-rw-r--r--doc/emacs/emacs.texi4
-rw-r--r--doc/emacs/files.texi14
-rw-r--r--doc/emacs/vc-xtra.texi4
-rw-r--r--doc/emacs/vc2-xtra.texi133
5 files changed, 82 insertions, 80 deletions
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog
index e66e7f2c5bc..1d5328a606b 100644
--- a/doc/emacs/ChangeLog
+++ b/doc/emacs/ChangeLog
@@ -1,3 +1,10 @@
12008-05-15 Eric S. Raymond <esr@snark.thyrsus.com>
2
3 * vc2-xtra.texi, emacs.texi, files.texi: Snapshots node renamed to
4 Revision Tags and rewritten. Section now uses modern terminology
5 (tags rather than snapshots) and describes post-SCCS systems more
6 accurately.
7
12008-05-10 Eli Zaretskii <eliz@gnu.org> 82008-05-10 Eli Zaretskii <eliz@gnu.org>
2 9
3 * msdog.texi (Windows Files): Update documentation of 10 * msdog.texi (Windows Files): Update documentation of
diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi
index 28b72eb5c13..b9d2a0993c6 100644
--- a/doc/emacs/emacs.texi
+++ b/doc/emacs/emacs.texi
@@ -119,7 +119,7 @@ and to avoid conflicts.
119Completion 119Completion
120Backup Files 120Backup Files
121Auto-Saving: Protection Against Disasters 121Auto-Saving: Protection Against Disasters
122Snapshots 122Tags
123Text Mode 123Text Mode
124Outline Mode 124Outline Mode
125@TeX{} Mode 125@TeX{} Mode
@@ -462,7 +462,7 @@ Version Control
462* Secondary VC Commands:: The commands used a little less frequently. 462* Secondary VC Commands:: The commands used a little less frequently.
463* Branches:: Multiple lines of development. 463* Branches:: Multiple lines of development.
464* Remote Repositories:: Efficient access to remote CVS servers. 464* Remote Repositories:: Efficient access to remote CVS servers.
465* Snapshots:: Sets of file versions treated as a unit. 465* Revision Tags:: Symbolic names for revisions
466* Miscellaneous VC:: Various other commands and features of VC. 466* Miscellaneous VC:: Various other commands and features of VC.
467* Customizing VC:: Variables that change VC's behavior. 467* Customizing VC:: Variables that change VC's behavior.
468 468
diff --git a/doc/emacs/files.texi b/doc/emacs/files.texi
index 9d525393004..0d6808d9e45 100644
--- a/doc/emacs/files.texi
+++ b/doc/emacs/files.texi
@@ -1238,7 +1238,7 @@ customizable variable @code{vc-handled-backends} to @code{nil}
1238* Branches:: Multiple lines of development. 1238* Branches:: Multiple lines of development.
1239@ifnottex 1239@ifnottex
1240* Remote Repositories:: Efficient access to remote CVS servers. 1240* Remote Repositories:: Efficient access to remote CVS servers.
1241* Snapshots:: Sets of file versions treated as a unit. 1241* Revision Tags:: Symbolic names for revisions
1242* Miscellaneous VC:: Various other commands and features of VC. 1242* Miscellaneous VC:: Various other commands and features of VC.
1243* Customizing VC:: Variables that change VC's behavior. 1243* Customizing VC:: Variables that change VC's behavior.
1244@end ifnottex 1244@end ifnottex
@@ -1300,8 +1300,8 @@ git, and Mercurial.
1300 SCCS was the first version-control system ever built, and was long ago 1300 SCCS was the first version-control system ever built, and was long ago
1301superseded by later and more advanced ones; Emacs supports it only for 1301superseded by later and more advanced ones; Emacs supports it only for
1302backward compatibility and historical reasons. VC compensates for 1302backward compatibility and historical reasons. VC compensates for
1303certain features missing in SCCS (snapshots, for example) by 1303certain features missing in SCCS (tag names for releases, for example) by
1304implementing them itself, but some other VC features, such as multiple 1304implementing them itself. Some other VC features, such as multiple
1305branches, are not available with SCCS. Since SCCS is non-free you 1305branches, are not available with SCCS. Since SCCS is non-free you
1306should not use it; use its free replacement CSSC instead. But you 1306should not use it; use its free replacement CSSC instead. But you
1307should use CSSC only if for some reason you cannot use a more 1307should use CSSC only if for some reason you cannot use a more
@@ -1895,19 +1895,19 @@ buffer in another window.
1895 1895
1896 You can specify a checked-in revision by its ID; an empty input 1896 You can specify a checked-in revision by its ID; an empty input
1897specifies the current contents of the work file (which may be different 1897specifies the current contents of the work file (which may be different
1898from all the checked-in revisions). You can also specify a snapshot name 1898from all the checked-in revisions). You can also specify a tag or branch name
1899@iftex 1899@iftex
1900(@pxref{Snapshots,,,emacs-xtra, Specialized Emacs Features}) 1900(@pxref{Tags,,,emacs-xtra, Specialized Emacs Features})
1901@end iftex 1901@end iftex
1902@ifnottex 1902@ifnottex
1903(@pxref{Snapshots}) 1903(@pxref{Tags})
1904@end ifnottex 1904@end ifnottex
1905instead of one or both revision ID. 1905instead of one or both revision ID.
1906 1906
1907 Note that if your version-control system is file-oriented (SCCS, 1907 Note that if your version-control system is file-oriented (SCCS,
1908RCS, CVS) rather than fileset-oriented (Subversion, GNU Arch, git, 1908RCS, CVS) rather than fileset-oriented (Subversion, GNU Arch, git,
1909Mercurial) specifying a revision of a multiple-file fileset by 1909Mercurial) specifying a revision of a multiple-file fileset by
1910revision ID (as opposed to a snapshot name or RSCCS/RCS tag) is 1910revision ID (as opposed to a symbolic tag name) is
1911unlikely to return diffs that are connected in any meaningful way. 1911unlikely to return diffs that are connected in any meaningful way.
1912 1912
1913 If you invoke @kbd{C-u C-x v =} or @kbd{C-u C-x v =} from a buffer 1913 If you invoke @kbd{C-u C-x v =} or @kbd{C-u C-x v =} from a buffer
diff --git a/doc/emacs/vc-xtra.texi b/doc/emacs/vc-xtra.texi
index d08f6b29bf3..f1977d2adb6 100644
--- a/doc/emacs/vc-xtra.texi
+++ b/doc/emacs/vc-xtra.texi
@@ -14,9 +14,9 @@ the Emacs Manual}). This chapter describes more advanced VC usage.
14 14
15@menu 15@menu
16* VC Directory Mode:: Listing files managed by version control. 16* VC Directory Mode:: Listing files managed by version control.
17* VC Directory Commands:: Commands to use in a VC Dired buffer. 17* VC Directory Commands:: Commands to use in a VC Dired buffer.
18* Remote Repositories:: Efficient access to remote VCS servers. 18* Remote Repositories:: Efficient access to remote VCS servers.
19* Snapshots:: Sets of file versions treated as a unit. 19* Revision Tags:: Symbolic names for revisions
20* Miscellaneous VC:: Various other commands and features of VC. 20* Miscellaneous VC:: Various other commands and features of VC.
21* Customizing VC:: Variables that change VC's behavior. 21* Customizing VC:: Variables that change VC's behavior.
22@end menu 22@end menu
diff --git a/doc/emacs/vc2-xtra.texi b/doc/emacs/vc2-xtra.texi
index c4d6eac0c46..bbb7a9980bd 100644
--- a/doc/emacs/vc2-xtra.texi
+++ b/doc/emacs/vc2-xtra.texi
@@ -204,51 +204,57 @@ and what is not. So we suggest that you return from time to time to
204CVS-only operation, by committing your local changes back to the 204CVS-only operation, by committing your local changes back to the
205repository using @kbd{C-u C-x v v cvs @key{RET}}. 205repository using @kbd{C-u C-x v v cvs @key{RET}}.
206 206
207@node Snapshots 207@node Revision Tags
208@subsection Snapshots 208@subsection Revision Tags
209@cindex snapshots and version control 209@cindex tags and version control
210 210
211 A @dfn{snapshot} is a named set of file versions (one for each 211 In a VCS with per-file revision numbers (such as SCCS, RCS, or CVS)
212registered file) that you can treat as a unit. One important kind of 212@dfn{tag} is a named set of file versions (one for each registered
213snapshot is a @dfn{release}, a (theoretically) stable version of the 213file) that you can treat as a unit. In a VCS with per-repository
214system that is ready for distribution to users. 214version numbers (Subversion and most later ones) a tag is simply
215a symbolic name for a revsion.
216
217 One important kind of tag is a @dfn{release}, a (theoretically)
218stable version of the system that is ready for distribution to users.
215 219
216@menu 220@menu
217* Making Snapshots:: The snapshot facilities. 221* Making Revision Tags:: The tag facilities.
218* Snapshot Caveats:: Things to be careful of when using snapshots. 222* Revision Tag Caveats:: Things to be careful of when using tags.
219@end menu 223@end menu
220 224
221@node Making Snapshots 225@node Making Revision Tags
222@subsubsection Making and Using Snapshots 226@subsubsection Making and Using Revision Tags
223 227
224 There are two basic commands for snapshots; one makes a 228 There are two basic commands for tags; one makes a
225snapshot with a given name, the other retrieves a named snapshot. 229tag with a given name, the other retrieves a named tag.
226 230
227@table @code 231@table @code
228@kindex C-x v s 232@kindex C-x v s
229@findex vc-create-snapshot 233@findex vc-create-tag
230@item C-x v s @var{name} @key{RET} 234@item C-x v s @var{name} @key{RET}
231Define the last saved versions of every registered file in or under the 235Define the working revision of every registered file in or under the
232current directory as a snapshot named @var{name} 236current directory as a tag named @var{name}
233(@code{vc-create-snapshot}). 237(@code{vc-create-tag}).
234 238
235@kindex C-x v r 239@kindex C-x v r
236@findex vc-retrieve-snapshot 240@findex vc-retrieve-tag
237@item C-x v r @var{name} @key{RET} 241@item C-x v r @var{name} @key{RET}
238For all registered files at or below the current directory level, select 242For all registered files at or below the current directory level,
239whatever versions correspond to the snapshot @var{name} 243retrieve the tagged revision @var{name}. This command will
240(@code{vc-retrieve-snapshot}). 244switch to a branch if @var{name} is a branch name and your VCS
245distinguishes branches from tags.
246(@code{vc-retrieve-tag}).
241 247
242This command reports an error if any files are locked at or below the 248This command reports an error if any files are locked at or below the
243current directory, without changing anything; this is to avoid 249current directory, without changing anything; this is to avoid
244overwriting work in progress. 250overwriting work in progress.
245@end table 251@end table
246 252
247 A snapshot uses a very small amount of resources---just enough to record 253Tags are inexpensive, so you need not hesitate to create them whenever
248the list of file names and which version belongs to the snapshot. Thus, 254they are useful. Branches vary in cost depending on your VCS; in
249you need not hesitate to create snapshots whenever they are useful. 255older ones they may be expensive.
250 256
251 You can give a snapshot name as an argument to @kbd{C-x v =} or 257 You can give a tag or branch name as an argument to @kbd{C-x v =} or
252@kbd{C-x v ~} 258@kbd{C-x v ~}
253@iftex 259@iftex
254(@pxref{Old Revisions,,,emacs, the Emacs Manual}). 260(@pxref{Old Revisions,,,emacs, the Emacs Manual}).
@@ -256,50 +262,40 @@ you need not hesitate to create snapshots whenever they are useful.
256@ifnottex 262@ifnottex
257(@pxref{Old Revisions}). 263(@pxref{Old Revisions}).
258@end ifnottex 264@end ifnottex
259Thus, you can use it to compare a snapshot against the current files, 265Thus, you can use it to compare a tagged version against the current files,
260or two snapshots against each other, or a snapshot against a named 266or two tagged versions against each other.
261version. 267
262 268@node Revision Tag Caveats
263@node Snapshot Caveats 269@subsubsection Revision Tag Caveats
264@subsubsection Snapshot Caveats 270
265 271 For SCCS, VC implements tags itself; these tags are visible only
266@cindex named configurations (RCS) 272through VC. Most later systems (including CVS, Subversion, bzr, git,
267 VC's snapshot facilities are modeled on RCS's named-configuration 273and hg) have a native tag facility, and VC uses it where
268support. They use RCS's native facilities for this, so 274available; those tags will be visible even when you bypass VC.
269snapshots made using RCS through VC are visible even when you bypass VC. 275
270 276 There is no support for VC tags using GNU Arch yet.
271 With CVS, Meta-CVS, and Subversion, VC also uses the native 277
272mechanism provided by that back end to make snapshots and retrieve them 278 Under older VCSes (SCCS, RCS, CVS, early versions of Subversion),
273(@dfn{tags} for CVS and Meta-CVS, @dfn{copies} for Subversion). 279renaming and deletion could create some difficulties with tags. This is
274 280not a VC-specific problem, but a general design issue in version
275@c worded verbosely to avoid overfull hbox. 281control systems that was not solved effectively until the earliest
276 For SCCS, VC implements snapshots itself. The files it uses contain 282third-generation systems.
277name/file/version-number triples. These snapshots are visible only 283
278through VC. 284 In a file-oriented VCS, when you rename a registered file you need
279 285to rename its master along with it; the command @code{vc-rename-file}
280 There is no support for VC snapshots using GNU Arch yet. 286will do this automatically. If you are using SCCS, you must also
281 287update the records of the tag, to mention the file by its new name
282 A snapshot is a set of checked-in versions. So make sure that all the 288(@code{vc-rename-file} does this, too). An old tag that refers to a
283files are checked in and not locked when you make a snapshot. 289master file that no longer exists under the recorded name is invalid;
284 290VC can no longer retrieve it. It would be beyond the scope of this
285 File renaming and deletion can create some difficulties with snapshots. 291manual to explain enough about RCS and SCCS to explain how to update
286This is not a VC-specific problem, but a general design issue in version 292the tags by hand.
287control systems that no one has solved very well yet. 293
288 294 Using @code{vc-rename-file} makes the tag remain valid for
289 If you rename a registered file, you need to rename its master along
290with it (the command @code{vc-rename-file} does this automatically). If
291you are using SCCS, you must also update the records of the snapshot, to
292mention the file by its new name (@code{vc-rename-file} does this,
293too). An old snapshot that refers to a master file that no longer
294exists under the recorded name is invalid; VC can no longer retrieve
295it. It would be beyond the scope of this manual to explain enough about
296RCS and SCCS to explain how to update the snapshots by hand.
297
298 Using @code{vc-rename-file} makes the snapshot remain valid for
299retrieval, but it does not solve all problems. For example, some of the 295retrieval, but it does not solve all problems. For example, some of the
300files in your program probably refer to others by name. At the very 296files in your program probably refer to others by name. At the very
301least, the makefile probably mentions the file that you renamed. If you 297least, the makefile probably mentions the file that you renamed. If you
302retrieve an old snapshot, the renamed file is retrieved under its new 298retrieve an old tag, the renamed file is retrieved under its new
303name, which is not the name that the makefile expects. So the program 299name, which is not the name that the makefile expects. So the program
304won't really work as retrieved. 300won't really work as retrieved.
305 301
@@ -473,10 +469,9 @@ to avoid putting such trivia into @file{ChangeLog}.
473 When you rename a registered file, you must also rename its master 469 When you rename a registered file, you must also rename its master
474file correspondingly to get proper results. Use @code{vc-rename-file} 470file correspondingly to get proper results. Use @code{vc-rename-file}
475to rename the source file as you specify, and rename its master file 471to rename the source file as you specify, and rename its master file
476accordingly. It also updates any snapshots (@pxref{Snapshots}) that 472accordingly. It also updates any tags (@pxref{Revision Tags}) that
477mention the file, so that they use the new name; despite this, the 473mention the file, so that they use the new name; despite this, the
478snapshot thus modified may not completely work (@pxref{Snapshot 474tag thus modified may not completely work (@pxref{Revision Tag Caveats}).
479Caveats}).
480 475
481 Some back ends do not provide an explicit rename operation to their 476 Some back ends do not provide an explicit rename operation to their
482repositories. After issuing @code{vc-rename-file}, use @kbd{C-x v v} 477repositories. After issuing @code{vc-rename-file}, use @kbd{C-x v v}