Now on revision 106691. ------------------------------------------------------------ revno: 106691 committer: Chong Yidong branch nick: trunk timestamp: Sat 2011-12-17 15:50:08 +0800 message: More updates for VC documentation. * doc/emacs/maintaining.texi (VCS Concepts): Make "revision" terminology less CVS-specific. (VC With A Merging VCS, VC With A Locking VCS): Add xref to Registering node. (Secondary VC Commands): Deleted. Promote subnodes. (Log Buffer): Add command name for C-c C-c. Fix the name of the log buffer. Add index entries. (VCS Changesets, Types of Log File, VC With A Merging VCS): Use "commit" terminology. (Old Revisions): Move it to just before VC Change Log. "Tag" here doesn't refer to tags tables. Note other possible forms of the revision ID. C-x v = does not save. (Registering): Note similarity to C-x v v action. Fix description of how backends are chosen. De-document vc-default-init-revision. (VC Change Log): Document C-x v l in VC-Dir buffer. Document RET in root log buffers. * lisp/vc/vc.el (vc-deduce-fileset): Minor doc fix. diff: === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2011-12-16 16:05:59 +0000 +++ doc/emacs/ChangeLog 2011-12-17 07:50:08 +0000 @@ -1,3 +1,22 @@ +2011-12-17 Chong Yidong + + * maintaining.texi (VCS Concepts): Make "revision" terminology + less CVS-specific. + (VC With A Merging VCS, VC With A Locking VCS): Add xref to + Registering node. + (Secondary VC Commands): Deleted. Promote subnodes. + (Log Buffer): Add command name for C-c C-c. Fix the name of the + log buffer. Add index entries. + (VCS Changesets, Types of Log File, VC With A Merging VCS): Use + "commit" terminology. + (Old Revisions): Move it to just before VC Change Log. "Tag" here + doesn't refer to tags tables. Note other possible forms of the + revision ID. C-x v = does not save. + (Registering): Note similarity to C-x v v action. Fix description + of how backends are chosen. De-document vc-default-init-revision. + (VC Change Log): Document C-x v l in VC-Dir buffer. Document RET + in root log buffers. + 2011-12-16 Chong Yidong * maintaining.texi (Version Control Systems): Drop Meta-CVS. === modified file 'doc/emacs/emacs.texi' --- doc/emacs/emacs.texi 2011-12-12 07:25:58 +0000 +++ doc/emacs/emacs.texi 2011-12-17 07:50:08 +0000 @@ -741,15 +741,17 @@ * VC Mode Line:: How the mode line shows version control status. * Basic VC Editing:: How to edit a file under version control. * Log Buffer:: Features available in log entry buffers. +* Registering:: Putting a file under version control. * Old Revisions:: Examining and comparing old versions. -* Secondary VC Commands:: The commands used a little less frequently. +* VC Change Log:: Viewing the VC Change Log. +* VC Undo:: Canceling changes before or after committing. * VC Directory Mode:: Listing files managed by version control. * Branches:: Multiple lines of development. * Remote Repositories:: Efficient access to remote CVS servers. * Revision Tags:: Symbolic names for revisions. * Miscellaneous VC:: Various other commands and features of VC. * Customizing VC:: Variables that change VC's behavior. - + Introduction to Version Control * Why Version Control?:: Understanding the problems it addresses. @@ -766,12 +768,6 @@ * VC With A Locking VCS:: RCS in its default mode, SCCS, and optionally CVS. * Advanced C-x v v:: Advanced features available with a prefix argument. -The Secondary Commands of VC - -* Registering:: Putting a file under version control. -* VC Change Log:: Viewing the VC Change Log. -* VC Undo:: Canceling changes before or after check-in. - VC Directory Mode * VC Directory Buffer:: What the buffer looks like and means. === modified file 'doc/emacs/maintaining.texi' --- doc/emacs/maintaining.texi 2011-12-17 06:51:13 +0000 +++ doc/emacs/maintaining.texi 2011-12-17 07:50:08 +0000 @@ -49,8 +49,10 @@ * VC Mode Line:: How the mode line shows version control status. * Basic VC Editing:: How to edit a file under version control. * Log Buffer:: Features available in log entry buffers. +* Registering:: Putting a file under version control. * Old Revisions:: Examining and comparing old versions. -* Secondary VC Commands:: The commands used a little less frequently. +* VC Change Log:: Viewing the VC Change Log. +* VC Undo:: Canceling changes before or after committing. * VC Directory Mode:: Listing files managed by version control. * Branches:: Multiple lines of development. @ifnottex @@ -171,14 +173,14 @@ @item Git is a distributed version control system originally invented by Linus Torvalds to support development of Linux (his kernel). VC -supports many common git operations, but others, such as repository +supports many common Git operations, but others, such as repository syncing, must be done from the command line. @cindex hg @cindex Mercurial @item Mercurial (hg) is a distributed version control system broadly -resembling git. VC supports most Mercurial commands, with the +resembling Git. VC supports most Mercurial commands, with the exception of repository sync operations. @cindex bzr @@ -206,16 +208,16 @@ The copy of a version-controlled file that you actually edit is called the @dfn{work file}. You can change each work file as you would an ordinary file. After you are done with a set of changes, you -@dfn{commit} (or @dfn{check in}) the changes; this records the changes -in the repository, along with a descriptive log entry. +may @dfn{commit} (or @dfn{check in}) the changes; this records the +changes in the repository, along with a descriptive log entry. @cindex revision @cindex revision ID - A copy of a file stored in a repository is called a @dfn{revision}. -The history of a file is a sequence of revisions. Each revision is -named by a @dfn{revision ID}. The format of the revision ID depends -on the version control system; in the simplest case, it is just an -integer. + Each commit creates a new @dfn{revision} in the repository. The +version control system keeps track of all past revisions and the +changes that were made in each revision. Each revision is named by a +@dfn{revision ID}, whose format depends on the version control system; +in the simplest case, it is just an integer. To go beyond these basic concepts, you will need to understand three aspects in which version control systems differ. As explained in the @@ -231,10 +233,10 @@ between users who want to change the same file. There are two ways to do this: merging and locking. - In a version control system that uses merging, each user may check -out and modify a work file at any time. The system lets you -@dfn{merge} your work file, which may contain changes that have not -been committed, with the latest changes that others have committed. + In a version control system that uses merging, each user may modify +a work file at any time. The system lets you @dfn{merge} your work +file, which may contain changes that have not been committed, with the +latest changes that others have committed. Older version control systems use a @dfn{locking} scheme instead. Here, work files are normally read-only. To edit a file, you ask the @@ -277,7 +279,7 @@ control operations are @dfn{file-based}: each file has its own comment and revision history separate from that of all other files. Newer systems, beginning with Subversion, are @dfn{changeset-based}: a -checkin may include changes to several files, and the entire set of +commit may include changes to several files, and the entire set of changes is handled as a unit. Any comment associated with the change does not belong to a single file, but to the changeset itself. @@ -342,10 +344,9 @@ When the policy is to use both, you typically want to write an entry for each change just once, then put it into both logs. You can write the entry in @file{ChangeLog}, then copy it to the log buffer with -@kbd{C-c C-a} when checking in the change (@pxref{Log Buffer}). Or -you can write the entry in the log buffer while checking in the -change, and later use the @kbd{C-x v a} command to copy it to -@file{ChangeLog} +@kbd{C-c C-a} when committing the change (@pxref{Log Buffer}). Or you +can write the entry in the log buffer while committing the change, and +later use the @kbd{C-x v a} command to copy it to @file{ChangeLog} @iftex (@pxref{Change Logs and VC,,,emacs-xtra, Specialized Emacs Features}). @end iftex @@ -450,23 +451,25 @@ @itemize @bullet @item If there is more than one file in the VC fileset and the files have -inconsistent version control states, signal an error. - -@item -If each file in the VC fileset is not registered with a version -control system, register the VC fileset. If the fileset is in a -directory controlled by a version control system, register it with -that system; otherwise, prompt for a repository type, create a new -repository, and register the VC fileset with it. - -@item -If each work file in the VC fileset is unchanged, do nothing. - -@item -If each work file in the VC fileset has been modified, commit the +inconsistent version control states, signal an error. (Note, however, +that a fileset is allowed to include both ``newly-added'' files and +``modified'' files; @pxref{Registering}.) + +@item +If none of the files in the VC fileset are registered with a version +control system, register the VC fileset, i.e.@: place it under version +control. @xref{Registering}. If Emacs cannot find a system to +register under, it prompts for a repository type, creates a new +repository, and registers the VC fileset with it. + +@item +If every work file in the VC fileset is unchanged, do nothing. + +@item +If every work file in the VC fileset has been modified, commit the changes. To do this, Emacs pops up a @samp{*vc-log*} buffer; type the desired log entry for the new revision, followed by @kbd{C-c C-c} to -commit (@pxref{Log Buffer}). +commit. @xref{Log Buffer}. If committing to a shared repository, the commit may fail if the repository that has been changed since your last update. In that @@ -487,7 +490,7 @@ file since you began editing it; when you commit your revision, his changes are removed (however, they remain in the repository and are thus not irrevocably lost). Therefore, you must verify that the -current revision is unchanged before checking in your changes. In +current revision is unchanged before committing your changes. In addition, locking is possible with RCS even in this mode: @kbd{C-x v v} with an unmodified file locks the file, just as it does with RCS in its normal locking mode (@pxref{VC With A Locking VCS}). @@ -505,10 +508,10 @@ @item If each file in the VC fileset is not registered with a version -control system, register the VC fileset. If the fileset is in a -directory controlled by a version control system, register it with -that system; otherwise, prompt for a repository type, create a new -repository, and register the VC fileset with it. +control system, register the VC fileset. @xref{Registering}. If +Emacs cannot find a system to register under, it prompts for a +repository type, creates a new repository, and registers the VC +fileset with it. @item If each file is registered and unlocked, lock it and make it writable, @@ -575,13 +578,23 @@ @node Log Buffer @subsection Features of the Log Entry Buffer - When you tell VC to commit a change, it pops up a buffer called -@samp{*VC-Log*}. In this buffer, you should write a @dfn{log entry} +@cindex C-c C-c @r{(Log Edit mode)} +@findex log-edit-done + When you tell VC to commit a change, it pops up a buffer named +@samp{*vc-log*}. In this buffer, you should write a @dfn{log entry} describing the changes you have made (@pxref{Why Version Control?}). -After you are done, type @kbd{C-c C-c}; this exits the buffer and -commits the change, together with your log entry. - - While in the @samp{*VC-Log*} buffer, you can write one or more +After you are done, type @kbd{C-c C-c} (@code{log-edit-done}) to exit +the buffer and commit the change, together with your log entry. + +@cindex Log Edit mode +@cindex mode, Log Edit +@vindex vc-log-mode-hook + The major mode for the @samp{*vc-log*} buffer is Log Edit mode, a +variant of Text mode (@pxref{Text Mode}). On entering Log Edit mode, +Emacs runs the hooks @code{text-mode-hook} and @code{vc-log-mode-hook} +(@pxref{Hooks}). + + While in the @samp{*vc-log*} buffer, you can write one or more @dfn{header lines}, specifying additional information to be supplied to the version control system. Each header line must occupy a single line at the top of the buffer; the first line that is not a header @@ -598,196 +611,224 @@ @samp{Date} (a manually-specified commit time) and @samp{Fixes} (a reference to a bug fixed by the change). Not all version control systems recognize all headers: Bazaar recognizes all three headers, -while git, Mercurial, and Monotone recognizes only @samp{Author} and -@samp{Summary}. If you specify a header for a version control that -does not support it, the header is treated as part of the log entry. +while Git, Mercurial, and Monotone recognize only @samp{Author} and +@samp{Date}. If you specify a header for a version control that does +not support it, the header is treated as part of the log entry. +@kindex C-c C-f @r{(Log Edit mode)} @findex log-edit-show-files + Type @kbd{C-c C-f} (@code{log-edit-show-files}) in the +@samp{*vc-log*} buffer to view a list of files for the VC fileset that +is to be committed. If you called @kbd{C-x v v} directly from a work +file, the fileset consists of that single file. If you called +@kbd{C-x v v} from a VC directory buffer (@pxref{VC Directory Mode}), +the fileset may consist of multiple files; in that case, @kbd{C-c C-c} +will commit those files together, as a single revision, if that is +supported by the version control system (on older version control +systems, such as CVS, each file in a multi-file VC fileset is +committed as an individual revision). + +@kindex C-c C-d @r{(Log Edit mode)} @findex log-edit-show-diff - Type @kbd{C-c C-f} (@code{log-edit-show-files}) to display a list of -files in the current VC fileset. If you called @kbd{C-x v v} directly -from a work file, the fileset consists of that single file; if you -called @kbd{C-x v v} from a VC directory buffer (@pxref{VC Directory -Mode}), the fileset may consist of multiple files. + Type @kbd{C-c C-d} (@code{log-edit-show-diff}) to show a @dfn{diff} +of the changes between the current VC fileset and the repository +revision from which you started editing. @xref{Old Revisions}. +@kindex C-c C-a @r{(Log Edit mode)} @findex log-edit-insert-changelog - Type @kbd{C-c C-d} (@code{log-edit-show-diff}) to show a @dfn{diff} -of the changes you have made (i.e., the differences between the work -file and the repository revision from which you started editing). -@xref{Old Revisions}. - - If the current VC fileset includes one or more @file{ChangeLog} -files (@pxref{Change Log}), type @kbd{C-c C-a} + If the VC fileset that is to be committed includes one or more +@file{ChangeLog} files (@pxref{Change Log}), type @kbd{C-c C-a} (@code{log-edit-insert-changelog}) to pull the relevant entries into -the @samp{*VC-Log*} buffer. If the topmost item in each +the @samp{*vc-log*} buffer. If the topmost item in each @file{ChangeLog} was made under your user name on the current date, -this command searches that item for entries that match the file(s) to -be committed; if found, these entries are inserted. -@iftex -@xref{Change Logs and VC,,,emacs-xtra, Specialized Emacs Features}, -@end iftex +this command searches that item for entries matching the file(s) to be +committed, and inserts them. @ifnottex -@xref{Change Logs and VC}, +@xref{Change Logs and VC}, for the opposite way of +working---generating ChangeLog entries from the revision control log. @end ifnottex -for the opposite way of working---generating ChangeLog entries from -the revision control log. - To abort a check-in, just @strong{don't} type @kbd{C-c C-c} in that + To abort a commit, just @strong{don't} type @kbd{C-c C-c} in that buffer. You can switch buffers and do other editing. As long as you -don't try to commit another file, the entry you were editing remains -in the @samp{*VC-Log*} buffer, and you can go back to that buffer at -any time to complete the check-in. - - If you change several source files for the same reason, it is often -convenient to specify the same log entry for many of the files. (This -is the normal way to do things on a changeset-oriented system, where -comments are attached to changesets rather than the history of -individual files.) The most convenient way to do this is to mark all -the files in VC Directory Mode and commit from there; the log buffer -will carry the fileset information with it and do a group commit when -you type @kbd{C-c C-c}. - +don't try to make another commit, the entry you were editing remains +in the @samp{*vc-log*} buffer, and you can go back to that buffer at +any time to complete the commit. + +@kindex M-n @r{(Log Edit mode)} +@kindex M-p @r{(Log Edit mode)} +@kindex M-s @r{(Log Edit mode)} +@kindex M-r @r{(Log Edit mode)} You can also browse the history of previous log entries to duplicate -a checkin comment. This can be useful when you want several files to -have checkin comments that vary only slightly from each other. The -commands @kbd{M-n}, @kbd{M-p}, @kbd{M-s} and @kbd{M-r} for doing this -work just like the minibuffer history commands (except that these -versions are used outside the minibuffer). - -@vindex vc-log-mode-hook - Each time you commit a change, the log entry buffer is put into VC -Log Edit mode, which involves running two hooks: @code{text-mode-hook} -and @code{vc-log-mode-hook}. @xref{Hooks}. +a commit comment. This can be useful when you want to make several +commits with similar comments. The commands @kbd{M-n}, @kbd{M-p}, +@kbd{M-s} and @kbd{M-r} for doing this work just like the minibuffer +history commands (@pxref{Minibuffer History}), except that they are +used outside the minibuffer. + +@node Registering +@subsection Registering a File for Version Control + +@table @kbd +@item C-x v i +Register the visited file for version control. +@end table + +@kindex C-x v i +@findex vc-register + The command @kbd{C-x v i} (@code{vc-register}) @dfn{registers} each +file in the current VC fileset, placing it under version control. +This is essentially equivalent to the action of @kbd{C-x v v} on an +unregistered VC fileset (@pxref{Basic VC Editing}), except that if the +VC fileset is already registered, @kbd{C-x v i} signals an error +whereas @kbd{C-x v v} performs some other action. + + To register a file, Emacs must choose a version control system. For +a multi-file VC fileset, the VC Directory buffer specifies the system +to use (@pxref{VC Directory Mode}). For a single-file VC fileset, if +the file's directory already contains files registered in a version +control system, or if the directory is part of a directory tree +controlled by a version control system, Emacs chooses that system. In +the event that more than one version control system is applicable, +Emacs uses the one that appears first in the variable +@iftex +@code{vc-handled-backends}. +@end iftex +@ifnottex +@code{vc-handled-backends} (@pxref{Customizing VC}). +@end ifnottex +If Emacs cannot find a version control system to register the file +under, it prompts for a repository type, creates a new repository, and +registers the file into that repository. + + On most version control systems, registering a file with @kbd{C-x v +i} or @kbd{C-x v v} adds it to the ``working tree'' but not to the +repository. Such files are labeled as @samp{added} in the VC +Directory buffer, and show a revision ID of @samp{@@@@} in the mode +line. To make the registration take effect in the repository, you +must perform a commit (@pxref{Basic VC Editing}). Note that on +changeset-based version control systems, commits can consist of both +file additions and modifications. + + On a locking-based version control system (@pxref{VCS Merging}), +registering a file leaves it unlocked and read-only. Type @kbd{C-x v +v} if you wish to start editing it. @node Old Revisions @subsection Examining And Comparing Old Revisions - One of the convenient features of version control is the ability -to examine any revision of a file, or compare two revisions. - @table @kbd -@item C-x v ~ -Prompt for a revision of the current file, and visit it in a buffer of -its own (@code{vc-revision-other-window}). - @item C-x v = -Compare the files in the current fileset with the working revision(s) -you started from (@code{vc-diff}). With a prefix argument, prompt for -two revisions of the current fileset and compare them. You can call -this command from a Dired buffer (@pxref{Dired}). +Compare the work files in the current VC fileset with the versions you +started from (@code{vc-diff}). With a prefix argument, prompt for two +revisions of the current VC fileset and compare them. You can also +call this command from a Dired buffer (@pxref{Dired}). + +@ifnottex +@item M-x vc-ediff +Like @kbd{C-x v =}, but using an Ediff session. @xref{Top, Ediff, +ediff, The Ediff Manual}. +@end ifnottex @item C-x v D -Compare the entire tree corresponding to the current fileset with the -tree you started from (@code{vc-root-diff}). With a prefix argument, -prompt for two revisions and compare their trees. +Compare all work files in the current version controlled directory +tree to the tree you started from (@code{vc-root-diff}). With a +prefix argument, prompt for two revisions and compare their trees. + +@item C-x v ~ +Prompt for a revision of the current file, and visit it in a separate +buffer (@code{vc-revision-other-window}). @item C-x v g -Display an annotated version of the file: for each line, show the -latest revision in which it was modified (@code{vc-annotate}). +Display an annotated version of the current file: for each line, show +the latest revision in which it was modified (@code{vc-annotate}). @end table -@findex vc-revision-other-window -@kindex C-x v ~ - To examine an old revision, visit the work file and type @kbd{C-x v -~ @var{revision} @key{RET}} (@code{vc-revision-other-window}). Here, -@var{revision} is either the desired revision ID (@pxref{VCS -Concepts}), or the name of a tag or branch -@iftex -(@pxref{Tags,,,emacs-xtra, Specialized Emacs Features}). -@end iftex -@ifnottex -(@pxref{Tags}). -@end ifnottex -This command puts the text of the old revision in a file named -@file{@var{filename}.~@var{revision}~}, and visits it in its own -buffer in a separate window. - @findex vc-diff @kindex C-x v = - @kbd{C-x v =} (@code{vc-diff}) compares each file in the current VC -fileset (saving them if necessary) with the repository revision(s) -from which you started editing. Note that the latter may or may not -be the latest revision of the file(s). - - The diff is displayed in another window, in a Diff mode buffer -(@pxref{Diff Mode}) named @file{*vc-diff*}. In this buffer, the -@kbd{g} (@code{revert-buffer}) command performs the file comparison -again, generating a new diff. - -@findex vc-diff + @kbd{C-x v =} (@code{vc-diff}) displays a @dfn{diff} which compares +each work file in the current VC fileset to the version(s) from which +you started editing. The diff is displayed in another window, in a +Diff mode buffer (@pxref{Diff Mode}) named @file{*vc-diff*}. The +usual Diff mode commands are available in this buffer. In particular, +the @kbd{g} (@code{revert-buffer}) command performs the file +comparison again, generating a new diff. + @kindex C-u C-x v = To compare two arbitrary revisions of the current VC fileset, call @code{vc-diff} with a prefix argument: @kbd{C-u C-x v =}. This -prompts for two revision IDs, using the minibuffer, and displays the -diff in a special buffer in another window. Instead of providing a -revision ID, you can give an empty input, which specifies the current -contents of the work file; or a tag or branch name -@iftex -(@pxref{Tags,,,emacs-xtra, Specialized Emacs Features}). -@end iftex +prompts for two revision IDs (@pxref{VCS Concepts}), and displays a +diff between those versions of the fileset. This will not work +reliably for multi-file VC filesets, if the version control system is +file-based rather than changeset-based (e.g.@: CVS), since then +revision IDs for different files would not be related in any +meaningful way. + + Instead of the revision ID, some version control systems let you +specify revisions in other formats. For instance, under Bazaar you +can enter @samp{date:yesterday} for the argument to @kbd{C-u C-x v =} +(and related commands) to specify the first revision committed after +yesterday. See the documentation of the version control system for +details. + + If you invoke @kbd{C-x v =} or @kbd{C-u C-x v =} from a Dired buffer +(@pxref{Dired}), the file listed on the current line is treated as the +current VC fileset. + @ifnottex -(@pxref{Tags}). -@end ifnottex -If your version control system is file-based (e.g. CVS) rather than -changeset-based (Subversion, GNU Arch, git, Mercurial), supplying a -revision ID for a multi-file fileset (as opposed to a symbolic tag -name) is unlikely to return diffs that are connected in any meaningful -way. - - The command @kbd{C-x v D} (@code{vc-root-diff}) is similar to -@kbd{C-x v =}, but it compares the entire tree associated with the -current VC fileset with the tree you started with. This means all the -files controlled by the current version control repository, even those -that are not part of the current VC fileset. - - If you invoke @kbd{C-x v =} or @kbd{C-u C-x v =} from a buffer that -is neither visiting a version-controlled file nor a VC directory -buffer, these commands generate a diff of all registered files in the -current directory and its subdirectories. - @findex vc-ediff -The function @code{vc-ediff} works like @code{vc-diff} and provides a way to -visually compare two revisions of a file in an Ediff session, @pxref{Top, -Ediff, ediff, The Ediff Manual}. It compares the file associated with the -current buffer with the last repository revision. To compare two arbitrary -revisions of the current file, call @code{vc-ediff} with a prefix argument. + @kbd{M-x vc-ediff} works like @kbd{C-x v =}, except that it uses an +Ediff session. @xref{Top, Ediff, ediff, The Ediff Manual}. +@end ifnottex + +@findex vc-root-diff +@kindex C-x v D + @kbd{C-x v D} (@code{vc-root-diff}) is similar to @kbd{C-x v =}, but +it displays a comparison between the entire current version controlled +tree (i.e.@: the tree controlled by the version control system +associated with the current VC fileset, which may include files that +are not part of that fileset) and the tree you started with. If you +invoke this command from a Dired buffer, it applies to the entire +version controlled tree containing the directory. @vindex vc-diff-switches -@vindex vc-rcs-diff-switches - @kbd{C-x v =} works by running a variant of the @code{diff} utility -designed to work with the version control system in use. The options -to pass to the @code{diff} command are taken from the first non-@code{nil} -value of @code{vc-@var{backend}-diff-switches}, @code{vc-diff-switches}, -and @code{diff-switches} (@pxref{Comparing Files}), in that order. -Since @code{nil} means to check the next variable in the sequence, -either of the first two may use the value @code{t} to mean no switches at all. -Most of the @samp{vc@dots{}diff-switches} variables default to -@code{nil}, but some default to @code{t}. These are for those version -control systems (e.g. SVN) whose @code{diff} implementations do not -accept common options (e.g. @samp{-c}) likely to be in -@code{diff-switches}. + You can customize the @command{diff} options that @kbd{C-x v =} and +@kbd{C-x v D} use for generating diffs. The options used are taken +from the first non-@code{nil} value amongst the variables +@code{vc-@var{backend}-diff-switches}, @code{vc-diff-switches}, and +@code{diff-switches} (@pxref{Comparing Files}), in that order. Here, +@var{backend} stands for the current version control system, +e.g.@: @code{bzr} for Bazaar. Since @code{nil} means to check the +next variable in the sequence, either of the first two may use the +value @code{t} to mean no switches at all. Most of the +@code{vc-@var{backend}-diff-switches} variables default to @code{nil}, +but some default to @code{t}; these are for version control systems, +such as Subversion, whose @code{diff} implementations do not accept +common diff options. - The buffer produced by @kbd{C-x v =} supports the commands of -Compilation mode (@pxref{Compilation Mode}), such as @kbd{C-x `} and -@kbd{C-c C-c}, in both the ``old'' and ``new'' text, and they always -find the corresponding locations in the current work file. (Older -revisions are not, in general, present as files on your disk.) +@findex vc-revision-other-window +@kindex C-x v ~ + To directly examine an older version of a file, visit the work file +and type @kbd{C-x v ~ @var{revision} @key{RET}} +(@code{vc-revision-other-window}). This retrieves the file version +corresponding to @var{revision}, saves it to +@file{@var{filename}.~@var{revision}~}, and visits it in a separate +window. @findex vc-annotate @kindex C-x v g - For some back ends, you can display the file @dfn{annotated} with -per-line revision information, by typing @kbd{C-x v g} + Many version control systems allow you to view files @dfn{annotated} +with per-line revision information, by typing @kbd{C-x v g} (@code{vc-annotate}). This creates a new buffer (the ``annotate -buffer'') displaying the file's text, with each part colored to show -how old it is. Text colored red is new, blue means old, and -intermediate colors indicate intermediate ages. By default, the color -is scaled over the full range of ages, such that the oldest changes -are blue, and the newest changes are red. +buffer'') displaying the file's text, with each line colored to show +how old it is. Red text is new, blue is old, and intermediate colors +indicate intermediate ages. By default, the color is scaled over the +full range of ages, such that the oldest changes are blue, and the +newest changes are red. When you give a prefix argument to this command, Emacs reads two -arguments using the minibuffer: the ID of which revision to display and -annotate (instead of the current file contents), and the time span in -days the color range should cover. +arguments using the minibuffer: the revision to display and annotate +(instead of the current file contents), and the time span in days the +color range should cover. From the annotate buffer, these and other color scaling options are available from the @samp{VC-Annotate} menu. In this buffer, you can @@ -796,13 +837,13 @@ @table @kbd @item p -Annotate the previous revision, that is to say, the revision before -the one currently annotated. A numeric prefix argument is a repeat -count, so @kbd{C-u 10 p} would take you back 10 revisions. +Annotate the previous revision, i.e.@: the revision before the one +currently annotated. A numeric prefix argument is a repeat count, so +@kbd{C-u 10 p} would take you back 10 revisions. @item n -Annotate the next revision---the one after the revision currently -annotated. A numeric prefix argument is a repeat count. +Annotate the next revision, i.e.@: the revision after the one +currently annotated. A numeric prefix argument is a repeat count. @item j Annotate the revision indicated by the current line. @@ -841,72 +882,8 @@ the file contents without distraction from the annotations. @end table -@node Secondary VC Commands -@subsection The Secondary Commands of VC - - This section explains the secondary commands of VC. - -@menu -* Registering:: Putting a file under version control. -* VC Change Log:: Viewing the VC Change Log. -* VC Undo:: Canceling changes before or after check-in. -@end menu - -@node Registering -@subsubsection Registering a File for Version Control - -@kindex C-x v i -@findex vc-register - You can put any file under version control by simply visiting it, and -then typing @w{@kbd{C-x v i}} (@code{vc-register}). - -@table @kbd -@item C-x v i -Register the visited file for version control. -@end table - - To register the file, Emacs must choose which version control system -to use for it. If the file's directory already contains files -registered in a version control system, Emacs uses that system. If -there is more than one system in use for a directory, Emacs uses the -one that appears first in @code{vc-handled-backends} -@iftex -(@pxref{Customizing VC,,,emacs-xtra, Specialized Emacs Features}). -@end iftex -@ifnottex -(@pxref{Customizing VC}). -@end ifnottex -On the other hand, if there are no files already registered, Emacs uses -the first system from @code{vc-handled-backends} that could register -the file (for example, you cannot register a file under CVS if its -directory is not already part of a CVS tree); with the default value -of @code{vc-handled-backends}, this means that Emacs uses RCS in this -situation. - - If locking is in use, @kbd{C-x v i} leaves the file unlocked and -read-only. Type @kbd{C-x v v} if you wish to start editing it. After -registering a file with CVS, you must subsequently commit the initial -revision by typing @kbd{C-x v v}. Until you do that, the revision ID -appears as @samp{@@@@} in the mode line. - -@vindex vc-default-init-revision -@cindex initial revision ID to register - The default initial revision ID for a newly registered file -varies by what VCS you are using; normally it will be 1.1 on VCSes -that use dot-pair revision IDs and 1 on VCSes that use monotonic IDs. -You can specify a different default by setting the variable -@code{vc-default-init-revision}, or you can give @kbd{C-x v i} a -numeric argument; then it reads the initial revision ID for this -particular file using the minibuffer. - -@c See http://debbugs.gnu.org/9745 -@c @vindex vc-initial-comment -@c If @code{vc-initial-comment} is non-@code{nil}, @kbd{C-x v i} reads an -@c initial comment to describe the purpose of this source file. Reading -@c the initial comment works like reading a log entry (@pxref{Log Buffer}). - @node VC Change Log -@subsubsection VC Change Log +@subsection VC Change Log @table @kbd @item C-x v l @@ -929,21 +906,31 @@ @kindex C-x v l @findex vc-print-log The command @kbd{C-x v l} (@code{vc-print-log}) displays a buffer -named @samp{*vc-change-log*} in a new window. This buffer lists the -changes to the current file, including the associated log entries. -(These are the log entries associated with the version control system, -i.e. the ones you enter via the @samp{*VC-Log*} buffer. @xref{Log -Buffer}.) Point is centered at the revision of the file currently -being visited. With a prefix argument, the command prompts for the -revision to center on, and the maximum number of revisions to display. -You can call this command from a Dired buffer (@pxref{Dired}). +named @samp{*vc-change-log*}, showing the history of changes made to +the current file, including who made the changes, the dates, and the +log entry for each change (these are the same log entries you would +enter via the @samp{*vc-log*} buffer; @pxref{Log Buffer}). Point is +centered at the revision of the file currently being visited. With a +prefix argument, the command prompts for the revision to center on, +and the maximum number of revisions to display. + + If you call @kbd{C-x v l} from a VC Directory buffer (@pxref{VC +Directory Mode}) or a Dired buffer (@pxref{Dired}), it applies to the +file listed on the current line. @findex vc-print-root-log - Type @kbd{C-x v L} (@code{vc-print-root-log}) to display a -@samp{*vc-change-log*} buffer showing the history of the -version-controlled directory tree as a whole. With a prefix argument, -the command prompts for the maximum number of revisions to display. -RCS, SCCS, and CVS do not support this feature. +@findex log-view-toggle-entry-display + @kbd{C-x v L} (@code{vc-print-root-log}) displays a +@samp{*vc-change-log*} buffer showing the history of the entire +version-controlled directory tree (RCS, SCCS, and CVS do not support +this feature). With a prefix argument, the command prompts for the +maximum number of revisions to display. + + The @kbd{C-x v L} history is shown in a compact form, usually +omitting all but the first line of each log entry. However, you can +type @key{RET} (@code{log-view-toggle-entry-display}) in the +@samp{*vc-change-log*} buffer to reveal the entire log entry for the +revision at point. A second @key{RET} hides it again. On a distributed version control system, the @kbd{C-x v I} (@code{vc-log-incoming}) command displays a log buffer showing the @@ -952,62 +939,58 @@ repository. This other repository is the default one from which changes are pulled, as defined by the version control system; with a prefix argument, @code{vc-log-incoming} prompts for a specific -repository from which changes would be pulled, and lists the changes -accordingly. Similarly, @kbd{C-x v O} (@code{vc-log-outgoing}) shows +repository. Similarly, @kbd{C-x v O} (@code{vc-log-outgoing}) shows the changes that will be sent to another repository, the next time you run the ``push'' command; with a prefix argument, it prompts for a -specific repository to which changes would be pushed. +specific destination repository. In the @samp{*vc-change-log*} buffer, you can use the following keys -to move between the logs of revisions and of files, to view past -revisions, to modify change comments, to view annotations and to view -diffs: +to move between the logs of revisions and of files, and to examine and +compare past revisions (@pxref{Old Revisions}): @table @kbd @item p -Move to the previous revision-item in the buffer. (Revision entries in the log +Move to the previous revision entry. (Revision entries in the log buffer are usually in reverse-chronological order, so the previous revision-item usually corresponds to a newer revision.) A numeric prefix argument is a repeat count. @item n -Move to the next revision-item (which most often corresponds to the -previous revision of the file). A numeric prefix argument is a repeat -count. +Move to the next revision entry. A numeric prefix argument is a +repeat count. @item P -Move to the log of the previous file, when the logs of multiple files -are in the log buffer (@pxref{VC Directory Mode}). Otherwise, just -move to the beginning of the log. A numeric prefix argument is a -repeat count, so @kbd{C-u 10 P} would move backward 10 files. +Move to the log of the previous file, if showing logs for a multi-file +VC fileset. Otherwise, just move to the beginning of the log. A +numeric prefix argument is a repeat count. @item N -Move to the log of the next file, when the logs of multiple files are -in the log buffer (@pxref{VC Directory Mode}). It also takes a -numeric prefix argument as a repeat count. +Move to the log of the next file, if showing logs for a multi-file VC +fileset. A numeric prefix argument is a repeat count. @item a -Annotate the revision indicated by the current line. +Annotate the revision on the current line (@pxref{Old Revisions}). @item e Modify the change comment displayed at point. Note that not all VC systems support modifying change comments. @item f -Visit the revision indicated at the current line, like typing @kbd{C-x -v ~} and specifying this revision's ID (@pxref{Old Revisions}). +Visit the revision indicated at the current line. @item d -Display the diff (@pxref{Comparing Files}) between the revision -indicated at the current line and the next earlier revision. This is -useful to see what actually changed in the file when the revision -indicated on the current line was committed. +Display a diff between the revision at point and the next earlier +revision, for the specific file. @item D -Display the changeset diff (@pxref{Comparing Files}) between the -revision indicated at the current line and the next earlier revision. -This is useful to see all the changes to all files that the revision -indicated on the current line did when it was committed. +Display the changeset diff between the revision at point and the next +earlier revision. This shows the changes to all files made in that +revision. + +@item @key{RET} +In a compact-style log buffer (e.g.@: the one created by @kbd{C-x v +L}), toggle between showing and hiding the full log entry for the +revision at point. @end table @vindex vc-log-show-limit @@ -1021,7 +1004,7 @@ buffer. However, RCS, SCCS, and CVS do not support this feature. @node VC Undo -@subsubsection Undoing Version Control Actions +@subsection Undoing Version Control Actions @table @kbd @item C-x v u @@ -1030,7 +1013,7 @@ @item C-x v c Remove the last-entered change from the master for the visited file. -This undoes your last check-in. +This undoes your last commit. @end table @kindex C-x v u @@ -1133,7 +1116,7 @@ working offline and not have access to the repository at all. As a consequence, VC would not be able to tell you that @samp{file3.c} is in the ``merge'' state; you would learn that only when you try to -check-in your modified copy of the file, or use a command such as +commit your modified copy of the file, or use a command such as @kbd{C-x v m}. In practice, this is not a problem because CVS handles this case @@ -1330,7 +1313,7 @@ not the head of a branch. After the branch is created, you ``stay'' on it. That means that -subsequent check-ins create new revisions on that branch. To leave the +subsequent commits create new revisions on that branch. To leave the branch, you must explicitly select a different revision with @kbd{C-u C-x v v}. To transfer changes from one branch to another, use the merge command, described in the next section. @@ -1379,7 +1362,7 @@ revision 1.6 containing the changes from the branch. It is possible to do further editing after merging the branch, before -the next check-in. But it is usually wiser to commit the merged +the next commit. But it is usually wiser to commit the merged revision, then lock it and make the further changes. This will keep a better record of the history of changes. === modified file 'etc/NEWS' --- etc/NEWS 2011-12-12 07:25:58 +0000 +++ etc/NEWS 2011-12-17 07:50:08 +0000 @@ -852,6 +852,7 @@ *** New option `vc-revert-show-diff' controls whether `vc-revert' shows a diff while querying the user. It defaults to t. ++++ *** Log entries in some Log View buffers can be toggled to display a longer description by typing RET (log-view-toggle-entry-display). In the Log View buffers made by `C-x v L' (vc-print-root-log), you can @@ -862,6 +863,7 @@ **** Packages using Log View mode can enable this functionality by binding `log-view-expanded-log-entry-function' to a suitable function. ++++ *** New command `vc-ediff' allows visual comparison of two revisions of a file similar to `vc-diff', but using ediff backend. === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2011-12-16 15:55:00 +0000 +++ lisp/ChangeLog 2011-12-17 07:50:08 +0000 @@ -1,6 +1,7 @@ -2011-12-16 Chong Yidong +2011-12-17 Chong Yidong * vc/vc.el (vc-next-action): Doc fix; remove CVS-isms. + (vc-deduce-fileset): Doc fix. 2011-12-16 Andreas Schwab === modified file 'lisp/vc/vc.el' --- lisp/vc/vc.el 2011-12-16 15:55:00 +0000 +++ lisp/vc/vc.el 2011-12-17 07:50:08 +0000 @@ -951,13 +951,13 @@ (defun vc-deduce-fileset (&optional observer allow-unregistered state-model-only-files) "Deduce a set of files and a backend to which to apply an operation. - Return (BACKEND FILESET FILESET-ONLY-FILES STATE CHECKOUT-MODEL). -If we're in VC-dir mode, the fileset is the list of marked files. -Otherwise, if we're looking at a buffer visiting a version-controlled file, -the fileset is a singleton containing this file. -If none of these conditions is met, but ALLOW_UNREGISTERED is on and the -visited file is not registered, return a singleton fileset containing it. + +If we're in VC-dir mode, FILESET is the list of marked files. +Otherwise, if in a buffer visiting a version-controlled file, +FILESET is a single-file fileset containing that file. +Otherwise, if ALLOW-UNREGISTERED is non-nil and the visited file +is unregistered, FILESET is a single-file fileset containing it. Otherwise, throw an error. STATE-MODEL-ONLY-FILES if non-nil, means that the caller needs ------------------------------------------------------------ revno: 106690 committer: Paul Eggert branch nick: trunk timestamp: Fri 2011-12-16 22:51:13 -0800 message: Spelling fixes. diff: === modified file 'doc/emacs/cal-xtra.texi' --- doc/emacs/cal-xtra.texi 2011-08-28 21:15:20 +0000 +++ doc/emacs/cal-xtra.texi 2011-12-17 06:51:13 +0000 @@ -41,12 +41,12 @@ @vindex calendar-holiday-marker @vindex diary-entry-marker -@vindex calenday-today-marker +@vindex calendar-today-marker The variable @code{calendar-holiday-marker} specifies how to mark a date as being a holiday. Its value may be a single-character string to insert next to the date, or a face name to use for displaying the date. Likewise, the variable @code{diary-entry-marker} specifies how to mark a -date that has diary entries, and @code{calenday-today-marker} is used by +date that has diary entries, and @code{calendar-today-marker} is used by the function @code{calendar-mark-today} to mark today's date. By default, the calendar uses faces named @code{holiday}, @code{diary}, and @code{calendar-today} for these purposes. === modified file 'doc/emacs/maintaining.texi' --- doc/emacs/maintaining.texi 2011-12-16 16:05:59 +0000 +++ doc/emacs/maintaining.texi 2011-12-17 06:51:13 +0000 @@ -511,7 +511,7 @@ repository, and register the VC fileset with it. @item -If each file is registed and unlocked, lock it and make it writable, +If each file is registered and unlocked, lock it and make it writable, so that you can begin to edit it. @item @@ -1880,7 +1880,7 @@ move an entire directory tree containing both the tags file and the source files, and the tags file will still refer correctly to the source files. If the tags file is @file{-} or is in the @file{/dev} directory, -however, the file names are +however, the file names are made relative to the current working directory. This is useful, for example, when writing the tags to @file{/dev/stdout}. === modified file 'doc/misc/dbus.texi' --- doc/misc/dbus.texi 2011-12-12 05:32:49 +0000 +++ doc/misc/dbus.texi 2011-12-17 06:51:13 +0000 @@ -1677,7 +1677,7 @@ @var{bus} can be either the symbol @code{:system} or the symbol @code{:session}, or it can be a string denoting the address of the -corresponding bus. For the system and session busses, this function +corresponding bus. For the system and session buses, this function is called when loading @file{dbus.el}, there is no need to call it again. === modified file 'lisp/ansi-color.el' --- lisp/ansi-color.el 2011-12-05 08:55:25 +0000 +++ lisp/ansi-color.el 2011-12-17 06:51:13 +0000 @@ -585,7 +585,7 @@ "Create a new face by applying all the parameters in ESCAPE-SEQ. Should any of the parameters result in the default face (usually this is -the parameter 0), then the effect of all previous parameters is cancelled. +the parameter 0), then the effect of all previous parameters is canceled. ESCAPE-SEQ is a SGR control sequences such as \\033[34m. The parameter 34 is used by `ansi-color-get-face-1' to return a face definition." === modified file 'lisp/cedet/semantic/wisent/comp.el' --- lisp/cedet/semantic/wisent/comp.el 2011-12-12 05:32:49 +0000 +++ lisp/cedet/semantic/wisent/comp.el 2011-12-17 06:51:13 +0000 @@ -51,7 +51,7 @@ ;; name space. Elisp dynamic binding allows that ;-) ;; Here are simple macros to easily define and use set of variables -;; binded locally, without all these "reference to free variable" +;; bound locally, without all these "reference to free variable" ;; compiler warnings! (defmacro wisent-context-name (name) === modified file 'lisp/international/mule-cmds.el' --- lisp/international/mule-cmds.el 2011-10-03 14:18:42 +0000 +++ lisp/international/mule-cmds.el 2011-12-17 06:51:13 +0000 @@ -1031,7 +1031,7 @@ and try again)? " coding-system auto-cs)) (error "Save aborted")))) (when (and tick (/= tick (buffer-chars-modified-tick))) - (error "Cancelled because the buffer was modified")) + (error "Canceled because the buffer was modified")) coding-system))) (setq select-safe-coding-system-function 'select-safe-coding-system) === modified file 'lisp/language/cyrillic.el' --- lisp/language/cyrillic.el 2011-01-26 08:36:39 +0000 +++ lisp/language/cyrillic.el 2011-12-17 06:51:13 +0000 @@ -126,7 +126,7 @@ (define-coding-system 'koi8-u "KOI8-U 8-bit encoding for Cyrillic (MIME: KOI8-U)" :coding-type 'charset - :mnemonic ?U + :mnemonic ?U :charset-list '(koi8-u) :mime-charset 'koi8-u) @@ -246,7 +246,7 @@ (ctext-non-standard-encodings "microsoft-cp1251") (input-method . "bulgarian-bds") (documentation - . "Support for Bulgrian with windows-1251 character set.")) + . "Support for Bulgarian with windows-1251 character set.")) '("Cyrillic")) (set-language-info-alist === modified file 'lisp/progmodes/prolog.el' --- lisp/progmodes/prolog.el 2011-12-03 04:12:11 +0000 +++ lisp/progmodes/prolog.el 2011-12-17 06:51:13 +0000 @@ -147,9 +147,9 @@ ;; o Introduced three new customizable variables: electric colon ;; (`prolog-electric-colon-flag', default nil), electric dash ;; (`prolog-electric-dash-flag', default nil), and a possibility -;; to prevent the predicate template insertion from adding commata +;; to prevent the predicate template insertion from adding commas ;; (`prolog-electric-dot-full-predicate-template', defaults to t -;; since it seems quicker to me to just type those commata). A +;; since it seems quicker to me to just type those commas). A ;; trivial adaptation of a patch by Markus Triska. ;; o Improved the behavior of electric if-then-else to only skip ;; forward if the parenthesis/semicolon is preceded by @@ -512,7 +512,7 @@ (defcustom prolog-electric-dot-full-predicate-template nil "*If nil, electric dot inserts only the current predicate's name and `(' for recursive calls or new clause heads. Non-nil means to also -insert enough commata to cover the predicate's arity and `)', +insert enough commas to cover the predicate's arity and `)', and dot and newline for recursive calls." :group 'prolog-keyboard :type 'boolean) === modified file 'lisp/progmodes/python.el' --- lisp/progmodes/python.el 2011-11-20 19:35:27 +0000 +++ lisp/progmodes/python.el 2011-12-17 06:51:13 +0000 @@ -2343,7 +2343,7 @@ ;;;; Bicycle Repair Man support (autoload 'pymacs-load "pymacs" nil t) -(autoload 'brm-init "bikemacs") +(autoload 'brm-init "bikeemacs") (defvar brm-menu) ;; I'm not sure how useful BRM really is, and it's certainly dangerous === modified file 'lisp/progmodes/verilog-mode.el' --- lisp/progmodes/verilog-mode.el 2011-12-01 02:41:47 +0000 +++ lisp/progmodes/verilog-mode.el 2011-12-17 06:51:13 +0000 @@ -981,7 +981,7 @@ "*If true, AUTORESET will reset those signals which were assigned with blocking assignments (=) even in a block with non-blocking assignments (<=). - + If nil, all blocking assigned signals are ignored when any non-blocking assignment is in the AUTORESET block. This allows blocking assignments to be used for temporary values and not have @@ -2011,7 +2011,7 @@ "`uvm_component_utils" "`uvm_create" "`uvm_create_on" - "`uvm_create_seq" ;; Undocumented in 1.1 + "`uvm_create_seq" ;; Undocumented in 1.1 "`uvm_declare_p_sequencer" "`uvm_declare_sequence_lib" ;; Deprecated in 1.1 "`uvm_do" @@ -7505,7 +7505,7 @@ (nreverse out-list))) (defun verilog-signals-combine-bus (in-list) - "Return a list of signals in IN-LIST, with busses combined. + "Return a list of signals in IN-LIST, with buses combined. Duplicate signals are also removed. For example A[2] and A[1] become A[2:1]." (let (combo buswarn out-list @@ -9907,7 +9907,7 @@ (p2 (with-current-buffer b2 (goto-char (point-min)))) (maxp1 (with-current-buffer b1 (point-max))) (maxp2 (with-current-buffer b2 (point-max))) - (op1 -1) (op2 -1) + (op1 -1) (op2 -1) progress size) (while (not (and (eq p1 op1) (eq p2 op2))) ;; If both windows have whitespace optionally skip over it. @@ -10100,7 +10100,7 @@ on the `fill-column', see \\[set-fill-column]. Limitations: - Concatenation and outputting partial busses is not supported. + Concatenation and outputting partial buses is not supported. Typedefs must match `verilog-typedef-regexp', which is disabled by default. @@ -10958,7 +10958,7 @@ Limitations: This ONLY detects outputs of AUTOINSTants (see `verilog-read-sub-decls'), - and all busses must have widths, such as those from AUTOINST, or using [] + and all buses must have widths, such as those from AUTOINST, or using [] in AUTO_TEMPLATEs. This does NOT work on memories or SystemVerilog .name connections, @@ -11315,7 +11315,7 @@ If placed inside the parenthesis of a module declaration, it creates Verilog 2001 style, else uses Verilog 1995 style. - Concatenation and outputting partial busses is not supported. + Concatenation and outputting partial buses is not supported. Module names must be resolvable to filenames. See `verilog-auto-inst'. @@ -11439,7 +11439,7 @@ If placed inside the parenthesis of a module declaration, it creates Verilog 2001 style, else uses Verilog 1995 style. - Concatenation and outputting partial busses is not supported. + Concatenation and outputting partial buses is not supported. Module names must be resolvable to filenames. See `verilog-auto-inst'. @@ -11490,7 +11490,7 @@ If placed inside the parenthesis of a module declaration, it creates Verilog 2001 style, else uses Verilog 1995 style. - Concatenation and outputting partial busses is not supported. + Concatenation and outputting partial buses is not supported. Module names must be resolvable to filenames. See `verilog-auto-inst'. === modified file 'lisp/textmodes/artist.el' --- lisp/textmodes/artist.el 2011-12-04 08:02:42 +0000 +++ lisp/textmodes/artist.el 2011-12-17 06:51:13 +0000 @@ -4455,7 +4455,7 @@ "Set current fill character to be C." (interactive "cType fill char (type RET to turn off): ") (cond ((eq c ?\r) (setq artist-fill-char-set nil) - (message "Fill cancelled")) + (message "Fill canceled")) (t (setq artist-fill-char-set t) (setq artist-fill-char c) (message "Fill set to \"%c\"" c)))) === modified file 'lisp/textmodes/fill.el' --- lisp/textmodes/fill.el 2011-11-23 07:03:56 +0000 +++ lisp/textmodes/fill.el 2011-12-17 06:51:13 +0000 @@ -82,7 +82,7 @@ (setq fill-prefix nil))) (if fill-prefix (message "fill-prefix: \"%s\"" fill-prefix) - (message "fill-prefix cancelled"))) + (message "fill-prefix canceled"))) (defcustom adaptive-fill-mode t "Non-nil means determine a paragraph's fill prefix from its text." @@ -383,7 +383,7 @@ "Char-table of characters that don't use space between words.") (progn - ;; Register `kinsoku' for scripts HAN, KANA, BOPOMPFO, and CJK-MISS. + ;; Register `kinsoku' for scripts HAN, KANA, BOPOMOFO, and CJK-MISC. ;; Also tell that they don't use space between words. (map-char-table #'(lambda (key val) === modified file 'lisp/vc/emerge.el' --- lisp/vc/emerge.el 2011-10-30 01:56:03 +0000 +++ lisp/vc/emerge.el 2011-12-17 06:51:13 +0000 @@ -1754,7 +1754,7 @@ ;; If there are min-lines lines above and below the region, then don't do ;; anything. ;; If not, recenter the region to make it so. -;; If that isn't possible, remove context lines balancedly from top and bottom +;; If that isn't possible, remove context lines evenly from top and bottom ;; so the entire region shows. ;; If that isn't possible, show the top of the region. ;; BEG must be at the beginning of a line. === modified file 'lisp/window.el' --- lisp/window.el 2011-12-13 13:37:48 +0000 +++ lisp/window.el 2011-12-17 06:51:13 +0000 @@ -3713,7 +3713,7 @@ (if (window-sizable-p window (- size) horizontal 'safe) (let* ((window-combination-limit (assq 'combination-limit item))) - ;; We must inherit the combiantion limit, otherwise + ;; We must inherit the combination limit, otherwise ;; we might mess up handling of atomic and side ;; window. (setq new (split-window window size horizontal))) === modified file 'src/dbusbind.c' --- src/dbusbind.c 2011-11-20 02:29:42 +0000 +++ src/dbusbind.c 2011-12-17 06:51:13 +0000 @@ -968,7 +968,7 @@ connection = xd_initialize (bus, TRUE); /* Add the watch functions. We pass also the bus as data, in order - to distinguish between the busses in xd_remove_watch. */ + to distinguish between the buses in xd_remove_watch. */ if (!dbus_connection_set_watch_functions (connection, xd_add_watch, xd_remove_watch, === modified file 'src/w32term.c' --- src/w32term.c 2011-12-05 08:55:25 +0000 +++ src/w32term.c 2011-12-17 06:51:13 +0000 @@ -3286,7 +3286,7 @@ ***********************************************************************/ /* Handle mouse button event on the tool-bar of frame F, at - frame-relative coordinates X/Y. EVENT_TYPE is either ButtionPress + frame-relative coordinates X/Y. EVENT_TYPE is either ButtonPress or ButtonRelease. */ static void ------------------------------------------------------------ revno: 106689 fixes bug(s): http://debbugs.gnu.org/10286 committer: Paul Eggert branch nick: trunk timestamp: Fri 2011-12-16 17:05:26 -0800 message: * s/gnu-linux.h: Fix mark_memory typo (Bug#10286). (GC_MARK_SECONDARY_STACK): Omit removed 3rd arg to mark_memory, which caused a build failure on GNU/Linux IA-64. This problem was introduced by my 2011-10-07 patch. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2011-12-15 23:28:56 +0000 +++ src/ChangeLog 2011-12-17 01:05:26 +0000 @@ -1,3 +1,10 @@ +2011-12-17 Paul Eggert + + * s/gnu-linux.h: Fix mark_memory typo (Bug#10286). + (GC_MARK_SECONDARY_STACK): Omit removed 3rd arg to mark_memory, + which caused a build failure on GNU/Linux IA-64. This problem was + introduced by my 2011-10-07 patch. + 2011-12-15 Juri Linkov * image.c (imagemagick_error): New function. (Bug#10112) === modified file 'src/s/gnu-linux.h' --- src/s/gnu-linux.h 2011-09-09 01:06:52 +0000 +++ src/s/gnu-linux.h 2011-12-17 01:05:26 +0000 @@ -155,7 +155,7 @@ extern void *__libc_ia64_register_backing_store_base; \ __builtin_ia64_flushrs (); \ mark_memory (__libc_ia64_register_backing_store_base, \ - __builtin_ia64_bsp (), 0); \ + __builtin_ia64_bsp ()); \ } while (0) #endif #endif ------------------------------------------------------------ revno: 106688 fixes bug(s): http://debbugs.gnu.org/10201 committer: Paul Eggert branch nick: trunk timestamp: Fri 2011-12-16 16:51:40 -0800 message: Port HAVE_PTHREAD configuration to MirBSD 10 (Bug#10201). * configure.in (HAVE_PTHREAD): Check for pthread_atforkif linking to gmalloc.c. This should prevent a MirBSD 10 build failure reported by Nelson H. F. Beebe in . diff: === modified file 'ChangeLog' --- ChangeLog 2011-12-10 12:49:33 +0000 +++ ChangeLog 2011-12-17 00:51:40 +0000 @@ -1,3 +1,11 @@ +2011-12-17 Paul Eggert + + Port HAVE_PTHREAD configuration to MirBSD 10 (Bug#10201). + * configure.in (HAVE_PTHREAD): Check for pthread_atfork if linking + to gmalloc.c. This should prevent a MirBSD 10 build failure reported + by Nelson H. F. Beebe in + . + 2011-12-10 Juanma Barranquero * update-subdirs: Don't set no-byte-compile twice (bug#10260). === modified file 'configure.in' --- configure.in 2011-12-15 07:24:10 +0000 +++ configure.in 2011-12-17 00:51:40 +0000 @@ -1720,7 +1720,15 @@ LIB_PTHREAD= AC_CHECK_HEADERS(pthread.h) if test "$ac_cv_header_pthread_h"; then - AC_CHECK_LIB(pthread, pthread_self, HAVE_PTHREAD=yes) + dnl gmalloc.c uses pthread_atfork, which is not available on older-style + dnl hosts such as MirBSD 10, so test for pthread_atfork instead of merely + dnl testing for pthread_self if Emacs uses gmalloc.c. + if test "$GMALLOC_OBJ" = gmalloc.o; then + emacs_pthread_function=pthread_atfork + else + emacs_pthread_function=pthread_self + fi + AC_CHECK_LIB(pthread, $emacs_pthread_function, HAVE_PTHREAD=yes) fi if test "$HAVE_PTHREAD" = yes; then case "${canonical}" in ------------------------------------------------------------ revno: 106687 committer: Chong Yidong branch nick: trunk timestamp: Sat 2011-12-17 00:05:59 +0800 message: Fixes for Maintaining chapter of Emacs manual. * doc/emacs/maintaining.texi (Version Control Systems): Drop Meta-CVS. (Basic VC Editing): Remove redundant descriptions. (VC With A Merging VCS): Make description more general instead of CVS-specific. (VC With A Locking VCS): Use VC fileset terminology. diff: === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2011-12-12 07:25:58 +0000 +++ doc/emacs/ChangeLog 2011-12-16 16:05:59 +0000 @@ -1,3 +1,11 @@ +2011-12-16 Chong Yidong + + * maintaining.texi (Version Control Systems): Drop Meta-CVS. + (Basic VC Editing): Remove redundant descriptions. + (VC With A Merging VCS): Make description more general instead of + CVS-specific. + (VC With A Locking VCS): Use VC fileset terminology. + 2011-12-12 Chong Yidong * building.texi (Executing Lisp): Fix xref for C-M-x. === modified file 'doc/emacs/building.texi' --- doc/emacs/building.texi 2011-12-12 07:25:58 +0000 +++ doc/emacs/building.texi 2011-12-16 16:05:59 +0000 @@ -24,9 +24,9 @@ * Executing Lisp:: Various modes for editing Lisp programs, with different facilities for running the Lisp programs. -* Lisp Libraries:: How Lisp programs are loaded into Emacs. -* Lisp Eval:: Executing a single Lisp expression in Emacs. -* Lisp Interaction:: Executing Lisp in an Emacs buffer. +* Libraries: Lisp Libraries. How Lisp programs are loaded into Emacs. +* Eval: Lisp Eval. Executing a single Lisp expression in Emacs. +* Interaction: Lisp Interaction. Executing Lisp in an Emacs buffer. * External Lisp:: Communicating through Emacs with a separate Lisp. @end menu === modified file 'doc/emacs/maintaining.texi' --- doc/emacs/maintaining.texi 2011-10-18 06:52:32 +0000 +++ doc/emacs/maintaining.texi 2011-12-16 16:05:59 +0000 @@ -71,7 +71,7 @@ Some uncommon or intricate version control operations, such as altering repository settings, are not supported in VC. You should -perform such tasks outside Emacs, e.g. via the command line. +perform such tasks outside Emacs, e.g.@: via the command line. This section provides a general overview of version control, and describes the version control systems that VC supports. You can skip @@ -125,7 +125,7 @@ @item SCCS was the first version control system ever built, and was long ago superseded by more advanced ones. VC compensates for certain features -missing in SCCS (e.g., tag names for releases) by implementing them +missing in SCCS (e.g.@: tag names for releases) by implementing them itself. Other VC features, such as multiple branches, are simply unavailable. Since SCCS is non-free, we recommend avoiding it. @@ -154,7 +154,7 @@ @cindex SVN @cindex Subversion @item -Subversion (SVN) is a free version control system designed to be +Subversion (svn) is a free version control system designed to be similar to CVS but without its problems (e.g., it supports atomic commits of filesets, and versioning of directories, symbolic links, meta-data, renames, copies, and deletes). @@ -189,10 +189,6 @@ basic editing operations under Bazaar. @end itemize - Previous versions of VC supported a version control system known as -Meta-CVS. This support was dropped due to limited interest from users -and developers. - @node VCS Concepts @subsubsection Concepts of Version Control @@ -264,7 +260,7 @@ SCCS always uses locking. RCS is lock-based by default but can be told to operate in a merging style. CVS and Subversion are merge-based by default but can be told to operate in a locking mode. -Distributed version control systems, such as GNU Arch, git, and +Distributed version control systems, such as GNU Arch, Git, and Mercurial, are exclusively merging-based. VC mode supports both locking and merging version control. The @@ -302,7 +298,7 @@ point for reliability and efficiency. GNU Arch pioneered the concept of @dfn{decentralized} version -control, later implemented in git, Mercurial, and Bazaar. A project +control, later implemented in Git, Mercurial, and Bazaar. A project may have several different repositories, and these systems support a sort of super-merge between repositories that tries to reconcile their change histories. In effect, there is one repository for each @@ -409,37 +405,35 @@ Directory buffer, and some files in it are marked, the VC fileset consists of the marked files (@pxref{VC Directory Mode}). - The principal VC command is an all-purpose command, @kbd{C-x v v} -(@code{vc-next-action}), that performs either registration, locking, -merging or a check-in (depending on the situation) on the current VC -fileset. You can use @kbd{C-x v v} in a file-visiting buffer or in a -VC Directory buffer. + On Subversion and on decentralized version control systems, +multi-file VC filesets are handled as a single group by the relevant +version control commands. For example, committing a multi-file VC +fileset generates a single revision, consisting of all the changes to +those files. But on older version control systems which lack support +for group operations, such as CVS, the files in a multi-file VC +fileset are passed individually to version control commands (e.g.@: a +commit generates one revision for each changed file). @table @kbd @itemx C-x v v -Perform the appropriate next version control operation on the VC fileset. +Perform the next appropriate version control operation on the current +VC fileset. @end table @findex vc-next-action @kindex C-x v v - The precise action of @kbd{C-x v v} depends on the state of the VC -fileset, and whether the version control system uses locking or -merging. This is described in detail in the subsequent sections. - - VC filesets are the way that VC mode bridges the gap between -file-based and changeset-based version control systems. They are, -essentially, a way to pass multiple file arguments as a group to -version control commands. For example, on Subversion, a checkin with -a multi-file VC fileset becomes a joint commit, as though you had -typed @command{svn commit} with those file arguments at the shell -command line. All files in a VC fileset must be under the same -version control system; if they are not, Emacs signals an error when -you attempt to execute a command on the fileset. - - VC filesets are distinct from the ``named filesets'' used for -viewing and visiting files in functional groups (@pxref{Filesets}). -Unlike named filesets, VC filesets are not named and don't persist -across sessions. + The principal VC command is an all-purpose command, @kbd{C-x v v} +(@code{vc-next-action}), which performs the ``most appropriate'' +action on the current VC fileset: either registering it with a version +control system, or committing it, or unlocking it, or merging changes +into it. The precise actions are described in detail in the following +subsections. You can use @kbd{C-x v v} either in a file-visiting +buffer or in a VC Directory buffer. + + Note that VC filesets are distinct from the ``named filesets'' used +for viewing and visiting files in functional groups +(@pxref{Filesets}). Unlike named filesets, VC filesets are not named +and don't persist across sessions. @menu * VC With A Merging VCS:: Without locking: default mode for CVS. @@ -450,46 +444,41 @@ @node VC With A Merging VCS @subsubsection Basic Version Control with Merging - When your version control system is merging-based (the default for -CVS and all newer version control systems), work files are always -writable; you need not do anything special to begin editing a file. -The status indicator on the mode line is @samp{-} if the file is -unmodified; it flips to @samp{:} as soon as you save any changes -(@pxref{VC Mode Line}). - - Here is what @kbd{C-x v v} does when using a merging-based system: + On a merging-based version control system (i.e.@: most modern ones; +@pxref{VCS Merging}), @kbd{C-x v v} does the following: @itemize @bullet @item -If the work file is in a directory that is not controlled by any -version control system, prompt for a repository type. Then, create a -version control repository of that type and register the file with it. - -@item -If the work file is in a directory that is controlled by a version -control system but not registered with it, register the file. - -@item -If the work file is the same as in the repository, do nothing. - -@item -If you have not changed the work file, but some other user has checked -in changes to the repository, merge those changes into the work file. - -@item -If you have made modifications to the work file, attempt to commit -the changes. To do this, Emacs first reads the log entry for the new -revision (@pxref{Log Buffer}). If some other user has committed -changes to the repository since you last checked it out, the checkin -fails. In that case, type @kbd{C-x v v} again to merge those changes -into your own work file; this puts the work file into a ``conflicted'' -state. Type @kbd{C-x v v} to clear the ``conflicted'' state; VC then -regards the file as up-to-date and modified, and you can try to check -it in again. - -To pick up any recent changes from the repository @emph{without} -trying to commit your own changes, type @kbd{C-x v m @key{RET}}. -@xref{Merging}. +If there is more than one file in the VC fileset and the files have +inconsistent version control states, signal an error. + +@item +If each file in the VC fileset is not registered with a version +control system, register the VC fileset. If the fileset is in a +directory controlled by a version control system, register it with +that system; otherwise, prompt for a repository type, create a new +repository, and register the VC fileset with it. + +@item +If each work file in the VC fileset is unchanged, do nothing. + +@item +If each work file in the VC fileset has been modified, commit the +changes. To do this, Emacs pops up a @samp{*vc-log*} buffer; type the +desired log entry for the new revision, followed by @kbd{C-c C-c} to +commit (@pxref{Log Buffer}). + +If committing to a shared repository, the commit may fail if the +repository that has been changed since your last update. In that +case, you must perform an update before trying again. If using a +decentralized version control system, use @kbd{C-x v +} or @kbd{C-x v +m} (@pxref{Merging}). If using a centralized version control system, +type @kbd{C-x v v} again to merge in the repository changes. + +@item +Finally, if you are using a centralized version control system, check +if each work file in the VC fileset is up-to-date. If any file has +been changed in the repository, offer to update it. @end itemize These rules also apply when you use RCS in its ``non-locking'' mode, @@ -506,32 +495,44 @@ @node VC With A Locking VCS @subsubsection Basic Version Control with Locking - Under a locking-based version control system (such as SCCS, and RCS -in its default mode), @kbd{C-x v v} does the following: + On a locking-based version control system (such as SCCS, and RCS in +its default mode), @kbd{C-x v v} does the following: @itemize @bullet @item -If the file is not locked, lock it and make it writable, so that you -can change it. - -@item -If the file is locked by you, and contains changes, commit the -changes. In order to do this, Emacs first reads the log entry for the -new revision. @xref{Log Buffer}. - -@item -If the file is locked by you, but you have not changed it since you -locked it, release the lock and makes the file read-only again. - -@item -If the file is locked by some other user, ask whether you want to -``steal the lock'' from that user. If you say yes, the file becomes -locked by you, but a message is sent to the person who had formerly -locked the file, to inform him of what has happened. +If there is more than one file in the VC fileset and the files have +inconsistent version control states, signal an error. + +@item +If each file in the VC fileset is not registered with a version +control system, register the VC fileset. If the fileset is in a +directory controlled by a version control system, register it with +that system; otherwise, prompt for a repository type, create a new +repository, and register the VC fileset with it. + +@item +If each file is registed and unlocked, lock it and make it writable, +so that you can begin to edit it. + +@item +If each file is locked by you and contains changes, commit the +changes. To do this, Emacs pops up a @samp{*vc-log*} buffer; type the +desired log entry for the new revision, followed by @kbd{C-c C-c} to +commit (@pxref{Log Buffer}). + +@item +If each file is locked by you, but you have not changed it, release +the lock and make the file read-only again. + +@item +If each file is locked by another user, ask whether you want to +``steal the lock''. If you say yes, the file becomes locked by you, +and a warning message is sent to the user who had formerly locked the +file. @end itemize These rules also apply when you use CVS in locking mode, except -that CVS does not support stealing a lock. +that CVS does not support stealing locks. @node Advanced C-x v v @subsubsection Advanced Control in @kbd{C-x v v} ------------------------------------------------------------ revno: 106686 committer: Chong Yidong branch nick: trunk timestamp: Fri 2011-12-16 23:55:00 +0800 message: * lisp/vc/vc.el (vc-next-action): Doc fix; remove CVS-isms. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2011-12-16 13:32:35 +0000 +++ lisp/ChangeLog 2011-12-16 15:55:00 +0000 @@ -1,3 +1,7 @@ +2011-12-16 Chong Yidong + + * vc/vc.el (vc-next-action): Doc fix; remove CVS-isms. + 2011-12-16 Andreas Schwab * calc/calc-misc.el (calc-help): Avoid wrapping help message. === modified file 'lisp/vc/vc.el' --- lisp/vc/vc.el 2011-11-23 07:03:56 +0000 +++ lisp/vc/vc.el 2011-12-16 15:55:00 +0000 @@ -1048,34 +1048,27 @@ ;;;###autoload (defun vc-next-action (verbose) "Do the next logical version control operation on the current fileset. -This requires that all files in the fileset be in the same state. - -For locking systems: - If every file is not already registered, this registers each for version -control. - If every file is registered and not locked by anyone, this checks out -a writable and locked file of each ready for editing. - If every file is checked out and locked by the calling user, this -first checks to see if each file has changed since checkout. If not, -it performs a revert on that file. - If every file has been changed, this pops up a buffer for entry -of a log message; when the message has been entered, it checks in the -resulting changes along with the log message as change commentary. If -the variable `vc-keep-workfiles' is non-nil (which is its default), a -read-only copy of each changed file is left in place afterwards. - If the affected file is registered and locked by someone else, you are -given the option to steal the lock(s). - -For merging systems: - If every file is not already registered, this registers each one for version -control. This does an add, but not a commit. - If every file is added but not committed, each one is committed. - If every working file is changed, but the corresponding repository file is -unchanged, this pops up a buffer for entry of a log message; when the -message has been entered, it checks in the resulting changes along -with the logmessage as change commentary. A writable file is retained. - If the repository file is changed, you are asked if you want to -merge in the changes into your working copy." +This requires that all files in the current VC fileset be in the +same state. If not, signal an error. + +For merging-based version control systems: + If every file in the VC fileset is not registered for version + control, register the fileset (but don't commit). + If every work file in the VC fileset is added or changed, pop + up a *vc-log* buffer to commit the fileset. + For a centralized version control system, if any work file in + the VC fileset is out of date, offer to update the fileset. + +For old-style locking-based version control systems, like RCS: + If every file is not registered, register the file(s). + If every file is registered and unlocked, check out (lock) + the file(s) for editing. + If every file is locked by you and has changes, pop up a + *vc-log* buffer to check in the changes. If the variable + `vc-keep-workfiles' is non-nil (the default), leave a + read-only copy of each changed file after checking in. + If every file is locked by you and unchanged, unlock them. + If every file is locked by someone else, offer to steal the lock." (interactive "P") (let* ((vc-fileset (vc-deduce-fileset nil t 'state-model-only-files)) (backend (car vc-fileset)) ------------------------------------------------------------ revno: 106685 committer: Andreas Schwab branch nick: emacs timestamp: Fri 2011-12-16 14:32:35 +0100 message: * calc/calc-misc.el (calc-help): Avoid wrapping help message. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2011-12-16 03:14:07 +0000 +++ lisp/ChangeLog 2011-12-16 13:32:35 +0000 @@ -1,3 +1,7 @@ +2011-12-16 Andreas Schwab + + * calc/calc-misc.el (calc-help): Avoid wrapping help message. + 2011-12-13 Sam Steingold * man.el (Man-getpage-in-background): When running under a === modified file 'lisp/calc/calc-misc.el' --- lisp/calc/calc-misc.el 2011-11-18 08:31:02 +0000 +++ lisp/calc/calc-misc.el 2011-12-16 13:32:35 +0000 @@ -219,10 +219,10 @@ (let ((msgs '("Press `h' for complete help; press `?' repeatedly for a summary" "Letter keys: Negate; Precision; Yank; Why; Xtended cmd; Quit" - "Letter keys: SHIFT + Undo, reDo; Keep-args; Inverse, Hyperbolic, Option" + "Letter keys: SHIFT + Undo, reDo; Inverse, Hyperbolic, Option" "Letter keys: SHIFT + sQrt; Sin, Cos, Tan; Exp, Ln, logB" "Letter keys: SHIFT + Floor, Round; Abs, conJ, arG; Pi" - "Letter keys: SHIFT + Num-eval; More-recn; eXec-kbd-macro" + "Letter keys: SHIFT + Num-eval; More-recn; eXec-kbd-macro; Keep-args" "Other keys: +, -, *, /, ^, \\ (int div), : (frac div)" "Other keys: & (1/x), | (concat), % (modulo), ! (factorial)" "Other keys: ' (alg-entry), = (eval), ` (edit); M-RET (last-args)" ------------------------------------------------------------ revno: 106684 committer: Sam Steingold branch nick: trunk timestamp: Thu 2011-12-15 22:14:07 -0500 message: (Man-getpage-in-background): When running under a window-system, ignore $MANWIDTH and $COLUMNS. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2011-12-15 07:50:05 +0000 +++ lisp/ChangeLog 2011-12-16 03:14:07 +0000 @@ -1,3 +1,8 @@ +2011-12-13 Sam Steingold + + * man.el (Man-getpage-in-background): When running under a + window-system, ignore $MANWIDTH and $COLUMNS. + 2011-12-15 Kenichi Handa * language/ethio-util.el: Change coding tag to utf-8-emacs. === modified file 'lisp/man.el' --- lisp/man.el 2011-12-04 08:02:42 +0000 +++ lisp/man.el 2011-12-16 03:14:07 +0000 @@ -933,7 +933,8 @@ ;; minal (using an ioctl(2) if available, the value of ;; $COLUMNS, or falling back to 80 characters if nei- ;; ther is available). - (unless (or (getenv "MANWIDTH") (getenv "COLUMNS")) + (when (or window-system + (not (or (getenv "MANWIDTH") (getenv "COLUMNS")))) ;; This isn't strictly correct, since we don't know how ;; the page will actually be displayed, but it seems ;; reasonable.