diff options
| author | Eric S. Raymond | 2008-05-15 17:38:50 +0000 |
|---|---|---|
| committer | Eric S. Raymond | 2008-05-15 17:38:50 +0000 |
| commit | 370fded4f6cc9c10c776733a1944b1faab84e2bd (patch) | |
| tree | d17c372c68ede44cfe53e0f8ff073756ded603bd /doc | |
| parent | e6d897b38e5b3286162a6f486dc221251dcbf9ba (diff) | |
| download | emacs-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/ChangeLog | 7 | ||||
| -rw-r--r-- | doc/emacs/emacs.texi | 4 | ||||
| -rw-r--r-- | doc/emacs/files.texi | 14 | ||||
| -rw-r--r-- | doc/emacs/vc-xtra.texi | 4 | ||||
| -rw-r--r-- | doc/emacs/vc2-xtra.texi | 133 |
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 @@ | |||
| 1 | 2008-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 | |||
| 1 | 2008-05-10 Eli Zaretskii <eliz@gnu.org> | 8 | 2008-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. | |||
| 119 | Completion | 119 | Completion |
| 120 | Backup Files | 120 | Backup Files |
| 121 | Auto-Saving: Protection Against Disasters | 121 | Auto-Saving: Protection Against Disasters |
| 122 | Snapshots | 122 | Tags |
| 123 | Text Mode | 123 | Text Mode |
| 124 | Outline Mode | 124 | Outline 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 |
| 1301 | superseded by later and more advanced ones; Emacs supports it only for | 1301 | superseded by later and more advanced ones; Emacs supports it only for |
| 1302 | backward compatibility and historical reasons. VC compensates for | 1302 | backward compatibility and historical reasons. VC compensates for |
| 1303 | certain features missing in SCCS (snapshots, for example) by | 1303 | certain features missing in SCCS (tag names for releases, for example) by |
| 1304 | implementing them itself, but some other VC features, such as multiple | 1304 | implementing them itself. Some other VC features, such as multiple |
| 1305 | branches, are not available with SCCS. Since SCCS is non-free you | 1305 | branches, are not available with SCCS. Since SCCS is non-free you |
| 1306 | should not use it; use its free replacement CSSC instead. But you | 1306 | should not use it; use its free replacement CSSC instead. But you |
| 1307 | should use CSSC only if for some reason you cannot use a more | 1307 | should 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 |
| 1897 | specifies the current contents of the work file (which may be different | 1897 | specifies the current contents of the work file (which may be different |
| 1898 | from all the checked-in revisions). You can also specify a snapshot name | 1898 | from 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 |
| 1905 | instead of one or both revision ID. | 1905 | instead 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, |
| 1908 | RCS, CVS) rather than fileset-oriented (Subversion, GNU Arch, git, | 1908 | RCS, CVS) rather than fileset-oriented (Subversion, GNU Arch, git, |
| 1909 | Mercurial) specifying a revision of a multiple-file fileset by | 1909 | Mercurial) specifying a revision of a multiple-file fileset by |
| 1910 | revision ID (as opposed to a snapshot name or RSCCS/RCS tag) is | 1910 | revision ID (as opposed to a symbolic tag name) is |
| 1911 | unlikely to return diffs that are connected in any meaningful way. | 1911 | unlikely 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 | |||
| 204 | CVS-only operation, by committing your local changes back to the | 204 | CVS-only operation, by committing your local changes back to the |
| 205 | repository using @kbd{C-u C-x v v cvs @key{RET}}. | 205 | repository 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) |
| 212 | registered 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 |
| 213 | snapshot is a @dfn{release}, a (theoretically) stable version of the | 213 | file) that you can treat as a unit. In a VCS with per-repository |
| 214 | system that is ready for distribution to users. | 214 | version numbers (Subversion and most later ones) a tag is simply |
| 215 | a symbolic name for a revsion. | ||
| 216 | |||
| 217 | One important kind of tag is a @dfn{release}, a (theoretically) | ||
| 218 | stable 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 |
| 225 | snapshot with a given name, the other retrieves a named snapshot. | 229 | tag 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} |
| 231 | Define the last saved versions of every registered file in or under the | 235 | Define the working revision of every registered file in or under the |
| 232 | current directory as a snapshot named @var{name} | 236 | current 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} |
| 238 | For all registered files at or below the current directory level, select | 242 | For all registered files at or below the current directory level, |
| 239 | whatever versions correspond to the snapshot @var{name} | 243 | retrieve the tagged revision @var{name}. This command will |
| 240 | (@code{vc-retrieve-snapshot}). | 244 | switch to a branch if @var{name} is a branch name and your VCS |
| 245 | distinguishes branches from tags. | ||
| 246 | (@code{vc-retrieve-tag}). | ||
| 241 | 247 | ||
| 242 | This command reports an error if any files are locked at or below the | 248 | This command reports an error if any files are locked at or below the |
| 243 | current directory, without changing anything; this is to avoid | 249 | current directory, without changing anything; this is to avoid |
| 244 | overwriting work in progress. | 250 | overwriting 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 | 253 | Tags are inexpensive, so you need not hesitate to create them whenever |
| 248 | the list of file names and which version belongs to the snapshot. Thus, | 254 | they are useful. Branches vary in cost depending on your VCS; in |
| 249 | you need not hesitate to create snapshots whenever they are useful. | 255 | older 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 |
| 259 | Thus, you can use it to compare a snapshot against the current files, | 265 | Thus, you can use it to compare a tagged version against the current files, |
| 260 | or two snapshots against each other, or a snapshot against a named | 266 | or two tagged versions against each other. |
| 261 | version. | 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) | 272 | through VC. Most later systems (including CVS, Subversion, bzr, git, |
| 267 | VC's snapshot facilities are modeled on RCS's named-configuration | 273 | and hg) have a native tag facility, and VC uses it where |
| 268 | support. They use RCS's native facilities for this, so | 274 | available; those tags will be visible even when you bypass VC. |
| 269 | snapshots 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 | |
| 272 | mechanism 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). | 279 | renaming and deletion could create some difficulties with tags. This is |
| 274 | 280 | not a VC-specific problem, but a general design issue in version | |
| 275 | @c worded verbosely to avoid overfull hbox. | 281 | control systems that was not solved effectively until the earliest |
| 276 | For SCCS, VC implements snapshots itself. The files it uses contain | 282 | third-generation systems. |
| 277 | name/file/version-number triples. These snapshots are visible only | 283 | |
| 278 | through VC. | 284 | In a file-oriented VCS, when you rename a registered file you need |
| 279 | 285 | to rename its master along with it; the command @code{vc-rename-file} | |
| 280 | There is no support for VC snapshots using GNU Arch yet. | 286 | will do this automatically. If you are using SCCS, you must also |
| 281 | 287 | update 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 |
| 283 | files are checked in and not locked when you make a snapshot. | 289 | master file that no longer exists under the recorded name is invalid; |
| 284 | 290 | VC can no longer retrieve it. It would be beyond the scope of this | |
| 285 | File renaming and deletion can create some difficulties with snapshots. | 291 | manual to explain enough about RCS and SCCS to explain how to update |
| 286 | This is not a VC-specific problem, but a general design issue in version | 292 | the tags by hand. |
| 287 | control 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 | ||
| 290 | with it (the command @code{vc-rename-file} does this automatically). If | ||
| 291 | you are using SCCS, you must also update the records of the snapshot, to | ||
| 292 | mention the file by its new name (@code{vc-rename-file} does this, | ||
| 293 | too). An old snapshot that refers to a master file that no longer | ||
| 294 | exists under the recorded name is invalid; VC can no longer retrieve | ||
| 295 | it. It would be beyond the scope of this manual to explain enough about | ||
| 296 | RCS and SCCS to explain how to update the snapshots by hand. | ||
| 297 | |||
| 298 | Using @code{vc-rename-file} makes the snapshot remain valid for | ||
| 299 | retrieval, but it does not solve all problems. For example, some of the | 295 | retrieval, but it does not solve all problems. For example, some of the |
| 300 | files in your program probably refer to others by name. At the very | 296 | files in your program probably refer to others by name. At the very |
| 301 | least, the makefile probably mentions the file that you renamed. If you | 297 | least, the makefile probably mentions the file that you renamed. If you |
| 302 | retrieve an old snapshot, the renamed file is retrieved under its new | 298 | retrieve an old tag, the renamed file is retrieved under its new |
| 303 | name, which is not the name that the makefile expects. So the program | 299 | name, which is not the name that the makefile expects. So the program |
| 304 | won't really work as retrieved. | 300 | won'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 |
| 474 | file correspondingly to get proper results. Use @code{vc-rename-file} | 470 | file correspondingly to get proper results. Use @code{vc-rename-file} |
| 475 | to rename the source file as you specify, and rename its master file | 471 | to rename the source file as you specify, and rename its master file |
| 476 | accordingly. It also updates any snapshots (@pxref{Snapshots}) that | 472 | accordingly. It also updates any tags (@pxref{Revision Tags}) that |
| 477 | mention the file, so that they use the new name; despite this, the | 473 | mention the file, so that they use the new name; despite this, the |
| 478 | snapshot thus modified may not completely work (@pxref{Snapshot | 474 | tag thus modified may not completely work (@pxref{Revision Tag Caveats}). |
| 479 | Caveats}). | ||
| 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 |
| 482 | repositories. After issuing @code{vc-rename-file}, use @kbd{C-x v v} | 477 | repositories. After issuing @code{vc-rename-file}, use @kbd{C-x v v} |