Commit 0870a421 authored by Eric S. Raymond's avatar Eric S. Raymond
Browse files

Updates for new VC.

parent d4f69e77
2007-10-10 Eric S. Raymond <esr@snark.thyrsus.com> 2007-10-10 Eric S. Raymond <esr@snark.thyrsus.com>
* files.texi (Version Systems): Merge in changes for new VC * files.texi (Version Systems):
with fileset-orienrted operations. * vc-xtra.texi:
* vc1-xtra.texi:
* vc2-xtra.texi: Merge in changes for new VC
with fileset-oriented operations.
2007-10-09 Eric S. Raymond <esr@snark.thyrsus.com> 2007-10-09 Eric S. Raymond <esr@snark.thyrsus.com>
......
...@@ -15,7 +15,7 @@ the Emacs Manual}). This chapter describes more advanced VC usage. ...@@ -15,7 +15,7 @@ the Emacs Manual}). This chapter describes more advanced VC usage.
@menu @menu
* VC Dired Mode:: Listing files managed by version control. * VC Dired Mode:: Listing files managed by version control.
* VC Dired Commands:: Commands to use in a VC Dired buffer. * VC Dired Commands:: Commands to use in a VC Dired buffer.
* Remote Repositories:: Efficient access to remote CVS servers. * Remote Repositories:: Efficient access to remote VCS servers.
* Snapshots:: Sets of file versions treated as a unit. * Snapshots:: Sets of file versions treated as a unit.
* Miscellaneous VC:: Various other commands and features of VC. * Miscellaneous VC:: Various other commands and features of VC.
* Customizing VC:: Variables that change VC's behavior. * Customizing VC:: Variables that change VC's behavior.
......
...@@ -120,21 +120,27 @@ ordinary Dired, that allows you to specify additional switches for the ...@@ -120,21 +120,27 @@ ordinary Dired, that allows you to specify additional switches for the
All the usual Dired commands work normally in VC Dired mode, except All the usual Dired commands work normally in VC Dired mode, except
for @kbd{v}, which is redefined as the version control prefix. You can for @kbd{v}, which is redefined as the version control prefix. You can
invoke VC commands such as @code{vc-diff} and @code{vc-print-log} by invoke VC commands such as @code{vc-diff} and @code{vc-print-log} by
typing @kbd{v =}, or @kbd{v l}, and so on. Most of these commands apply typing @kbd{v =}, or @kbd{v l}, and so on. These commands will apply
to the file name on the current line. to the set of files you have marked for operation in the VC-Dired
buffer.
The command @kbd{v v} (@code{vc-next-action}) operates on all the The command @kbd{v v} (@code{vc-next-action}) operates on all the
marked files, so that you can lock or check in several files at once. marked files, so that you can lock or check in several files at once.
If it operates on more than one file, it handles each file according to If the underlying VC supports atomic commits of multiple-file
its current state; thus, it might lock one file, but check in another changesets @kbd{v v} with a selected set of modified but not committed
file. This could be confusing; it is up to you to avoid confusing files wuill commit all of them at once as a single changeset.
behavior by marking a set of files that are in a similar state. If no
files are marked, @kbd{v v} operates on the file in the current line. When @kbd{v v} (@code{vc-next-action}) operates on a set of files,
it requires that all of those files must be in the same state;
If any files call for check-in, @kbd{v v} reads a single log entry, otherwise it will throw an error. Note that this differs from the
then uses it for all the files being checked in. This is convenient for behavior of older versions of VC, which did not have fileset
registering or checking in several files at once, as part of the same operations and simply did @code{vc-next-action} on each file
change. individually.
If any files are in a state that calls for commit, @kbd{v v} reads a
single log entry and uses it for the changeset as a whole. If the
underling VCS is file- rather than changeset-oriented, the log entry
will be replicated into the history of each file.
@findex vc-dired-toggle-terse-mode @findex vc-dired-toggle-terse-mode
@findex vc-dired-mark-locked @findex vc-dired-mark-locked
......
...@@ -6,17 +6,20 @@ ...@@ -6,17 +6,20 @@
@c printed version) or in the main Emacs manual (for the on-line version). @c printed version) or in the main Emacs manual (for the on-line version).
@node Remote Repositories @node Remote Repositories
@subsection Remote Repositories @subsection Remote Repositories
@cindex remote repositories (CVS) @cindex remote repositories
A common way of using CVS is to set up a central CVS repository on A common way of using CVS and other more advanced VCSes is to set up
some Internet host, then have each developer check out a personal a central repository on some Internet host, then have each
working copy of the files on his local machine. Committing changes to developer check out a personal working copy of the files on his local
the repository, and picking up changes from other users into one's own machine. Committing changes to the repository, and picking up changes
working area, then works by direct interactions with the CVS server. from other users into one's own working area, then works by direct
interactions with the repository server.
One difficulty is that access to the CVS server is often slow, and One difficulty is that access to a repository server is often slow,
that developers might need to work off-line as well. VC is designed and that developers might need to work off-line as well. While only
to reduce the amount of network interaction necessary. third-generation decentralized VCses such as GNU Arch or Mercurial
really solve this problem, VC is designed to reduce the amount of
network interaction necessary.
@menu @menu
* Version Backups:: Keeping local copies of repository versions. * Version Backups:: Keeping local copies of repository versions.
...@@ -28,7 +31,7 @@ to reduce the amount of network interaction necessary. ...@@ -28,7 +31,7 @@ to reduce the amount of network interaction necessary.
@cindex version backups @cindex version backups
@cindex automatic version backups @cindex automatic version backups
When VC sees that the CVS repository for a file is on a remote When VC sees that the repository for a file is on a remote
machine, it automatically makes local backups of unmodified versions machine, it automatically makes local backups of unmodified versions
of the file---@dfn{automatic version backups}. This means that you of the file---@dfn{automatic version backups}. This means that you
can compare the file to the repository version (@kbd{C-x v =}), or can compare the file to the repository version (@kbd{C-x v =}), or
...@@ -47,7 +50,7 @@ as ordinary Emacs backup files ...@@ -47,7 +50,7 @@ as ordinary Emacs backup files
@end ifnottex @end ifnottex
But they follow a similar naming convention. But they follow a similar naming convention.
For a file that comes from a remote CVS repository, VC makes a For a file that comes from a remote repository, VC makes a
version backup whenever you save the first changes to the file, and version backup whenever you save the first changes to the file, and
removes it after you have committed your modified version to the removes it after you have committed your modified version to the
repository. You can disable the making of automatic version backups by repository. You can disable the making of automatic version backups by
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment