translation approved by the author instead of in the original English.
\1f
+File: xemacs.info, Node: Variables for Check-in/out, Next: Log Entries, Prev: Editing with VC, Up: Version Control
+
+Variables Affecting Check-in and Check-out
+------------------------------------------
+
+ If `vc-suppress-confirm' is non-`nil', then `C-x C-q' and `C-x v i'
+can save the current buffer without asking, and `C-x v u' also operates
+without asking for confirmation. (This variable does not affect `C-x v
+c'; that is so drastic that it should always ask for confirmation.)
+
+ VC mode does much of its work by running the shell commands for RCS
+and SCCS. If `vc-command-messages' is non-`nil', VC displays messages
+to indicate which shell commands it runs, and additional messages when
+the commands finish.
+
+ Normally, VC assumes that it can deduce the locked/unlocked state of
+files by looking at the file permissions of the work file; this is
+fast. However, if the `RCS' or `SCCS' subdirectory is actually a
+symbolic link, then VC does not trust the file permissions to reflect
+this status.
+
+ You can specify the criterion for whether to trust the file
+permissions by setting the variable `vc-mistrust-permissions'. Its
+value may be `t' (always mistrust the file permissions and check the
+master file), `nil' (always trust the file permissions), or a function
+of one argument which makes the decision. The argument is the directory
+name of the `RCS' or `SCCS' subdirectory. A non-`nil' value from the
+function says to mistrust the file permissions.
+
+ If you find that the file permissions of work files are changed
+erroneously, set `vc-mistrust-permissions' to `t'. Then VC always
+checks the master file to determine the file's status.
+
+ You can specify additional directories to search for version control
+programs by setting the variable `vc-path'. These directories are
+searched before the usual search path. The proper result usually
+happens automatically.
+
+\1f
+File: xemacs.info, Node: Log Entries, Next: Change Logs and VC, Prev: Variables for Check-in/out, Up: Version Control
+
+Log Entries
+-----------
+
+ When you're editing an initial comment or log entry for inclusion in
+a master file, finish your entry by typing `C-c C-c'.
+
+`C-c C-c'
+ Finish the comment edit normally (`vc-finish-logentry'). This
+ finishes check-in.
+
+ To abort check-in, just don't type `C-c C-c' in that buffer. You
+can switch buffers and do other editing. As long as you don't try to
+check in another file, the entry you were editing remains in its
+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. To do
+this, use the history of previous log entries. The commands `M-n',
+`M-p', `M-s' and `M-r' for doing this work just like the minibuffer
+history commands (except that these versions are used outside the
+minibuffer).
+
+ Each time you check in a file, the log entry buffer is put into VC
+Log mode, which involves running two hooks: `text-mode-hook' and
+`vc-log-mode-hook'.
+
+\1f
+File: xemacs.info, Node: Change Logs and VC, Next: Old Versions, Prev: Log Entries, Up: Version Control
+
+Change Logs and VC
+------------------
+
+ If you use RCS for a program and also maintain a change log file for
+it (*note Change Log::), you can generate change log entries
+automatically from the version control log entries:
+
+`C-x v a'
+ Visit the current directory's change log file and create new
+ entries for versions checked in since the most recent entry in the
+ change log file (`vc-update-change-log').
+
+ This command works with RCS only; it does not work with SCCS.
+
+ For example, suppose the first line of `ChangeLog' is dated 10 April
+1992, and that the only check-in since then was by Nathaniel Bowditch
+to `rcs2log' on 8 May 1992 with log text `Ignore log messages that
+start with `#'.'. Then `C-x v a' visits `ChangeLog' and inserts text
+like this:
+
+ Fri May 8 21:45:00 1992 Nathaniel Bowditch (nat@apn.org)
+
+ * rcs2log: Ignore log messages that start with `#'.
+
+You can then edit the new change log entry further as you wish.
+
+ Normally, the log entry for file `foo' is displayed as `* foo: TEXT
+OF LOG ENTRY'. The `:' after `foo' is omitted if the text of the log
+entry starts with `(FUNCTIONNAME): '. For example, if the log entry
+for `vc.el' is `(vc-do-command): Check call-process status.', then the
+text in `ChangeLog' looks like this:
+
+ Wed May 6 10:53:00 1992 Nathaniel Bowditch (nat@apn.org)
+
+ * vc.el (vc-do-command): Check call-process status.
+
+ When `C-x v a' adds several change log entries at once, it groups
+related log entries together if they all are checked in by the same
+author at nearly the same time. If the log entries for several such
+files all have the same text, it coalesces them into a single entry.
+For example, suppose the most recent checkins have the following log
+entries:
+
+For `vc.texinfo':
+ Fix expansion typos.
+For `vc.el':
+ Don't call expand-file-name.
+For `vc-hooks.el':
+ Don't call expand-file-name.
+
+ They appear like this in `ChangeLog':
+
+ Wed Apr 1 08:57:59 1992 Nathaniel Bowditch (nat@apn.org)
+
+ * vc.texinfo: Fix expansion typos.
+
+ * vc.el, vc-hooks.el: Don't call expand-file-name.
+
+ Normally, `C-x v a' separates log entries by a blank line, but you
+can mark several related log entries to be clumped together (without an
+intervening blank line) by starting the text of each related log entry
+with a label of the form `{CLUMPNAME} '. The label itself is not
+copied to `ChangeLog'. For example, suppose the log entries are:
+
+For `vc.texinfo':
+ {expand} Fix expansion typos.
+For `vc.el':
+ {expand} Don't call expand-file-name.
+For `vc-hooks.el':
+ {expand} Don't call expand-file-name.
+
+Then the text in `ChangeLog' looks like this:
+
+ Wed Apr 1 08:57:59 1992 Nathaniel Bowditch (nat@apn.org)
+
+ * vc.texinfo: Fix expansion typos.
+ * vc.el, vc-hooks.el: Don't call expand-file-name.
+
+ A log entry whose text begins with `#' is not copied to `ChangeLog'.
+For example, if you merely fix some misspellings in comments, you can
+log the change with an entry beginning with `#' to avoid putting such
+trivia into `ChangeLog'.
+
+\1f
+File: xemacs.info, Node: Old Versions, Next: VC Status, Prev: Change Logs and VC, Up: Version Control
+
+Examining And Comparing Old Versions
+------------------------------------
+
+`C-x v ~ VERSION <RET>'
+ Examine version VERSION of the visited file, in a buffer of its
+ own (`vc-version-other-window').
+
+`C-x v ='
+ Compare the current buffer contents with the latest checked-in
+ version of the file.
+
+`C-u C-x v = FILE <RET> OLDVERS <RET> NEWVERS <RET>'
+ Compare the specified two versions of FILE.
+
+ You can examine any version of a file by first visiting it, and then
+using `C-x v ~ VERSION <RET>' (`vc-version-other-window'). This puts
+the text of version VERSION in a file named `FILENAME.~VERSION~', then
+visits it in a separate window.
+
+ To compare two versions of a file, use the command `C-x v ='
+(`vc-diff').
+
+ Plain `C-x v =' compares the current buffer contents (saving them in
+the file if necessary) with the last checked-in version of the file.
+With a prefix argument, `C-x v =' reads a file name and two version
+numbers, then compares those versions of the specified file.
+
+ If you supply a directory name instead of the name of a work file,
+this command compares the two specified versions of all registered files
+in that directory and its subdirectories. You can also specify a
+snapshot name (*note Snapshots::) instead of one or both version
+numbers.
+
+ You can specify a checked-in version by its number; you can specify
+the most recent checked-in version with an empty version number.
+
+ This command works by running the `vcdiff' utility, getting the
+options from the variable `diff-switches'. It displays the output in a
+special buffer in another window. Unlike the `M-x diff' command, `C-x
+v =' does not try to find the changes in the old and new versions.
+This is because one or both versions normally do not exist as files.
+They exist only in the records of the master file. *Note Comparing
+Files::, for more information about `M-x diff'.
+
+\1f
+File: xemacs.info, Node: VC Status, Next: Renaming and VC, Prev: Old Versions, Up: Version Control
+
+VC Status Commands
+------------------
+
+ To view the detailed version control status and history of a file,
+type `C-x v l' (`vc-print-log'). It displays the history of changes to
+the current file, including the text of the log entries. The output
+appears in a separate window.
+
+ When you are working on a large program, it's often useful to find
+all the files that are currently locked, or all the files maintained in
+version control at all. You can use `C-x v d' (`vc-directory') to show
+all the locked files in or beneath the current directory. This
+includes all files that are locked by any user. `C-u C-x v d' lists
+all files in or beneath the current directory that are maintained with
+version control.
+
+ The list of files is displayed as a buffer that uses an augmented
+Dired mode. The names of the users locking various files are shown (in
+parentheses) in place of the owner and group. All the normal Dired
+commands work in this buffer. Most interactive VC commands work also,
+and apply to the file name on the current line.
+
+ The `C-x v v' command (`vc-next-action'), when used in the augmented
+Dired buffer, operates on all the marked files (or the file on the
+current line). If it operates on more than one file, it handles each
+file according to its current state; thus, it may check out one file
+and check in another (because it is already checked out). If it has to
+check in any files, it reads a single log entry, then uses that text
+for all the files being checked in. This can be convenient for
+registering or checking in several files at once, as part of the same
+change.
+
+\1f
+File: xemacs.info, Node: Renaming and VC, Next: Snapshots, Prev: VC Status, Up: Version Control
+
+Renaming VC Work Files and Master Files
+---------------------------------------
+
+ When you rename a registered file, you must also rename its master
+file correspondingly to get proper results. Use `vc-rename-file' to
+rename the source file as you specify, and rename its master file
+accordingly. It also updates any snapshots (*note Snapshots::) that
+mention the file, so that they use the new name; despite this, the
+snapshot thus modified may not completely work (*note Snapshot
+Caveats::).
+
+ You cannot use `vc-rename-file' on a file that is locked by someone
+else.
+
+\1f
+File: xemacs.info, Node: Snapshots, Next: Version Headers, Prev: Renaming and VC, Up: Version Control
+
+Snapshots
+---------
+
+ A "snapshot" is a named set of file versions (one for each
+registered file) that you can treat as a unit. One important kind of
+snapshot is a "release", a (theoretically) stable version of the system
+that is ready for distribution to users.
+
+* Menu:
+
+* Making Snapshots:: The snapshot facilities.
+* Snapshot Caveats:: Things to be careful of when using snapshots.
+
+\1f
File: xemacs.info, Node: Making Snapshots, Next: Snapshot Caveats, Prev: Snapshots, Up: Snapshots
Making and Using Snapshots
Like `d' but move up afterwards instead of down.
`s'
- Request to save the buffer. An `S' befor the buffer name on a line
- indicates the request. Requested saves actually take place when
- you use the `x' command. You can request both saving and deletion
- for the same buffer.
+ Request to save the buffer. An `S' before the buffer name on a
+ line indicates the request. Requested saves actually take place
+ when you use the `x' command. You can request both saving and
+ deletion for the same buffer.
`~'
Mark buffer "unmodified". The command `~' does this immediately
(`C-x 6'). To return to the window configuration established with
`window-configuration-to-register', use `jump-to-register' (`C-x j').
-\1f
-File: xemacs.info, Node: Other Window, Next: Pop Up Window, Prev: Split Window, Up: Windows
-
-Using Other Windows
-===================
-
-`C-x o'
- Select another window (`other-window'). That is the letter `o',
- not zero.
-
-`M-C-v'
- Scroll the next window (`scroll-other-window').
-
-`M-x compare-windows'
- Find the next place where the text in the selected window does not
- match the text in the next window.
-
-`M-x other-window-any-frame N'
- Select the Nth different window on any frame.
-
- To select a different window, use `C-x o' (`other-window'). That is
-an `o', for `other', not a zero. When there are more than two windows,
-the command moves through all the windows in a cyclic order, generally
-top to bottom and left to right. From the rightmost and bottommost
-window, it goes back to the one at the upper left corner. A numeric
-argument, N, moves several steps in the cyclic order of windows. A
-negative numeric argument moves around the cycle in the opposite order.
-If the optional second argument ALL-FRAMES is non-`nil', the function
-cycles through all frames. When the minibuffer is active, the
-minibuffer is the last window in the cycle; you can switch from the
-minibuffer window to one of the other windows, and later switch back
-and finish supplying the minibuffer argument that is requested. *Note
-Minibuffer Edit::.
-
- The command `M-x other-window-any-frame' also selects the window N
-steps away in the cyclic order. However, unlike `other-window', this
-command selects a window on the next or previous frame instead of
-wrapping around to the top or bottom of the current frame, when there
-are no more windows.
-
- The usual scrolling commands (*note Display::) apply to the selected
-window only. `M-C-v' (`scroll-other-window') scrolls the window that
-`C-x o' would select. Like `C-v', it takes positive and negative
-arguments.
-
- The command `M-x compare-windows' compares the text in the current
-window with the text in the next window. Comparison starts at point in
-each window. Point moves forward in each window, a character at a time,
-until the next set of characters in the two windows are different.
-Then the command is finished.
-
- A prefix argument IGNORE-WHITESPACE means ignore changes in
-whitespace. The variable `compare-windows-whitespace' controls how
-whitespace is skipped.
-
- If `compare-ignore-case' is non-`nil', changes in case are also
-ignored.
-
-\1f
-File: xemacs.info, Node: Pop Up Window, Next: Change Window, Prev: Other Window, Up: Windows
-
-Displaying in Another Window
-============================
-
- `C-x 4' is a prefix key for commands that select another window
-(splitting the window if there is only one) and select a buffer in that
-window. Different `C-x 4' commands have different ways of finding the
-buffer to select.
-
-`C-x 4 b BUFNAME <RET>'
- Select buffer BUFNAME in another window. This runs
- `switch-to-buffer-other-window'.
-
-`C-x 4 f FILENAME <RET>'
- Visit file FILENAME and select its buffer in another window. This
- runs `find-file-other-window'. *Note Visiting::.
-
-`C-x 4 d DIRECTORY <RET>'
- Select a Dired buffer for directory DIRECTORY in another window.
- This runs `dired-other-window'. *Note Dired::.
-
-`C-x 4 m'
- Start composing a mail message in another window. This runs
- `mail-other-window', and its same-window version is `C-x m' (*note
- Sending Mail::).
-
-`C-x 4 .'
- Find a tag in the current tag table in another window. This runs
- `find-tag-other-window', the multiple-window variant of `M-.'
- (*note Tags::).
-
- If the variable `display-buffer-function' is non-`nil', its value is
-the function to call to handle `display-buffer'. It receives two
-arguments, the buffer and a flag that if non-`nil' means that the
-currently selected window is not acceptable. Commands such as
-`switch-to-buffer-other-window' and `find-file-other-window' work using
-this function.
-
-\1f
-File: xemacs.info, Node: Change Window, Prev: Pop Up Window, Up: Windows
-
-Deleting and Rearranging Windows
-================================
-
-`C-x 0'
- Get rid of the selected window (`delete-window'). That is a zero.
- If there is more than one Emacs frame, deleting the sole remaining
- window on that frame deletes the frame as well. If the current
- frame is the only frame, it is not deleted.
-
-`C-x 1'
- Get rid of all windows except the selected one
- (`delete-other-windows').
-
-`C-x ^'
- Make the selected window taller, at the expense of the other(s)
- (`enlarge-window').
-
-`C-x }'
- Make the selected window wider (`enlarge-window-horizontally').
-
- To delete a window, type `C-x 0' (`delete-window'). (That is a
-zero.) The space occupied by the deleted window is distributed among
-the other active windows (but not the minibuffer window, even if that
-is active at the time). Once a window is deleted, its attributes are
-forgotten; there is no automatic way to make another window of the same
-shape or showing the same buffer. The buffer continues to exist, and
-you can select it in any window with `C-x b'.
-
- `C-x 1' (`delete-other-windows') is more powerful than `C-x 0'; it
-deletes all the windows except the selected one (and the minibuffer).
-The selected window expands to use the whole frame except for the echo
-area.
-
- To readjust the division of space among existing windows, use `C-x
-^' (`enlarge-window'). It makes the currently selected window longer
-by one line or as many lines as a numeric argument specifies. With a
-negative argument, it makes the selected window smaller. `C-x }'
-(`enlarge-window-horizontally') makes the selected window wider by the
-specified number of columns. The extra screen space given to a window
-comes from one of its neighbors, if that is possible; otherwise, all
-the competing windows are shrunk in the same proportion. If this makes
-some windows too small, those windows are deleted and their space is
-divided up. Minimum window size is specified by the variables
-`window-min-height' and `window-min-width'.
-
- You can also resize windows within a frame by clicking the left mouse
-button on a modeline, and dragging.
-
- Clicking the right button on a mode line pops up a menu of common
-window manager operations. This menu contains the following options:
-
-Delete Window
- Remove the window above this modeline from the frame.
-
-Delete Other Windows
- Delete all windows on the frame except for the one above this
- modeline.
-
-Split Window
- Split the window above the mode line in half, creating another
- window.
-
-Split Window Horizontally
- Split the window above the mode line in half horizontally, so that
- there will be two windows side-by-side.
-
-Balance Windows
- Readjust the sizes of all windows on the frame until all windows
- have roughly the same number of lines.
-
-\1f
-File: xemacs.info, Node: Mule, Next: Major Modes, Prev: Windows, Up: Top
-
-World Scripts Support
-*********************
-
- If you compile XEmacs with mule option, it supports a wide variety of
-world scripts, including Latin script, as well as Arabic script,
-Simplified Chinese script (for mainland of China), Traditional Chinese
-script (for Taiwan and Hong-Kong), Greek script, Hebrew script, IPA
-symbols, Japanese scripts (Hiragana, Katakana and Kanji), Korean scripts
-(Hangul and Hanja) and Cyrillic script (for Beylorussian, Bulgarian,
-Russian, Serbian and Ukrainian). These features have been merged from
-the modified version of Emacs known as MULE (for "MULti-lingual
-Enhancement to GNU Emacs").
-
-* Menu:
-
-* Mule Intro:: Basic concepts of Mule.
-* Language Environments:: Setting things up for the language you use.
-* Input Methods:: Entering text characters not on your keyboard.
-* Select Input Method:: Specifying your choice of input methods.
-* Coding Systems:: Character set conversion when you read and
- write files, and so on.
-* Recognize Coding:: How XEmacs figures out which conversion to use.
-* Specify Coding:: Various ways to choose which conversion to use.
-
-\1f
-File: xemacs.info, Node: Mule Intro, Next: Language Environments, Prev: Mule, Up: Mule
-
-Introduction to world scripts
-=============================
-
- The users of these scripts have established many more-or-less
-standard coding systems for storing files. XEmacs translates between
-the internal character encoding and various other coding systems when
-reading and writing files, when exchanging data with subprocesses, and
-(in some cases) in the `C-q' command (see below).
-
- The command `C-h h' (`view-hello-file') displays the file
-`etc/HELLO', which shows how to say "hello" in many languages. This
-illustrates various scripts.
-
- Keyboards, even in the countries where these character sets are used,
-generally don't have keys for all the characters in them. So XEmacs
-supports various "input methods", typically one for each script or
-language, to make it convenient to type them.
-
- The prefix key `C-x <RET>' is used for commands that pertain to
-world scripts, coding systems, and input methods.
-
-\1f
-File: xemacs.info, Node: Language Environments, Next: Input Methods, Prev: Mule Intro, Up: Mule
-
-Language Environments
-=====================
-
- All supported character sets are supported in XEmacs buffers if it is
-compile with mule; there is no need to select a particular language in
-order to display its characters in an XEmacs buffer. However, it is
-important to select a "language environment" in order to set various
-defaults. The language environment really represents a choice of
-preferred script (more or less) rather that a choice of language.
-
- The language environment controls which coding systems to recognize
-when reading text (*note Recognize Coding::). This applies to files,
-incoming mail, netnews, and any other text you read into XEmacs. It may
-also specify the default coding system to use when you create a file.
-Each language environment also specifies a default input method.
-
- The command to select a language environment is `M-x
-set-language-environment'. It makes no difference which buffer is
-current when you use this command, because the effects apply globally to
-the XEmacs session. The supported language environments include:
-
- Chinese-BIG5, Chinese-CNS, Chinese-GB, Cyrillic-ISO, English,
- Ethiopic, Greek, Japanese, Korean, Latin-1, Latin-2, Latin-3,
- Latin-4, Latin-5.
-
- Some operating systems let you specify the language you are using by
-setting locale environment variables. XEmacs handles one common special
-case of this: if your locale name for character types contains the
-string `8859-N', XEmacs automatically selects the corresponding
-language environment.
-
- To display information about the effects of a certain language
-environment LANG-ENV, use the command `C-h L LANG-ENV <RET>'
-(`describe-language-environment'). This tells you which languages this
-language environment is useful for, and lists the character sets,
-coding systems, and input methods that go with it. It also shows some
-sample text to illustrate scripts used in this language environment.
-By default, this command describes the chosen language environment.
-