1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945 |
- This is ../../info/pcl-cvs, produced by makeinfo version 4.13 from
- pcl-cvs.texi.
- Copyright (C) 1991-2012 Free Software Foundation, Inc.
- Permission is granted to copy, distribute and/or modify this
- document under the terms of the GNU Free Documentation License,
- Version 1.3 or any later version published by the Free Software
- Foundation; with no Invariant Sections, with the Front-Cover texts
- being "A GNU Manual", and with the Back-Cover Texts as in (a)
- below. A copy of the license is included in the section entitled
- "GNU Free Documentation License".
- (a) The FSF's Back-Cover Text is: "You have the freedom to copy and
- modify this GNU manual. Buying copies from the FSF supports it in
- developing GNU and promoting software freedom."
- INFO-DIR-SECTION Emacs misc features
- START-INFO-DIR-ENTRY
- * PCL-CVS: (pcl-cvs). Emacs front-end to CVS.
- END-INFO-DIR-ENTRY
- File: pcl-cvs, Node: Top, Next: About PCL-CVS, Prev: (dir), Up: (dir)
- PCL-CVS
- *******
- This manual describes PCL-CVS, the GNU Emacs front-end to CVS. It is
- nowhere near complete, so you are advised to use `M-x customize-group
- RET pcl-cvs <RET>' and to look at the documentation strings of the
- various commands and major modes for further information.
- Copyright (C) 1991-2012 Free Software Foundation, Inc.
- Permission is granted to copy, distribute and/or modify this
- document under the terms of the GNU Free Documentation License,
- Version 1.3 or any later version published by the Free Software
- Foundation; with no Invariant Sections, with the Front-Cover texts
- being "A GNU Manual", and with the Back-Cover Texts as in (a)
- below. A copy of the license is included in the section entitled
- "GNU Free Documentation License".
- (a) The FSF's Back-Cover Text is: "You have the freedom to copy and
- modify this GNU manual. Buying copies from the FSF supports it in
- developing GNU and promoting software freedom."
- * Menu:
- * About PCL-CVS:: Credits, history, ...
- * Getting started:: An introduction with a walk-through example.
- * Buffer contents:: An explanation of the buffer contents.
- * Selected files:: To which files are commands applied.
- * Commands:: All commands, grouped by type.
- * Log Edit Mode:: Major mode to edit log messages.
- * Log View Mode:: Major mode to browse log changes.
- * Customization:: How you can tailor PCL-CVS to suit your needs.
- * Bugs:: Bugs (known and unknown).
- * GNU Free Documentation License:: The license for this documentation.
- * Function and Variable Index:: List of functions and variables.
- * Concept Index:: List of concepts.
- * Key Index:: List of keystrokes.
- --- The Detailed Node Listing ---
- About PCL-CVS
- * Contributors:: Contributors to PCL-CVS.
- Commands
- * Entering PCL-CVS:: Commands to invoke PCL-CVS
- * Setting flags:: Setting flags for CVS commands
- * Updating the buffer::
- * Movement commands:: How to move up and down in the buffer
- * Marking files:: How to mark files that other commands
- will later operate on.
- * Committing changes:: Checking in your modifications to the
- CVS repository.
- * Editing files:: Loading files into Emacs.
- * Getting info about files:: Display the log and status of files.
- * Adding and removing files:: Adding and removing files
- * Undoing changes:: Undoing changes
- * Removing handled entries:: Uninteresting lines can easily be removed.
- * Ignoring files:: Telling CVS to ignore generated files.
- * Viewing differences:: Commands to `diff' different versions.
- * Invoking Ediff:: Running `ediff' from `*cvs*' buffer.
- * Updating files:: Updating files that Need-update.
- * Tagging files:: Tagging files.
- * Miscellaneous commands:: Miscellaneous commands.
- Customization
- * Customizing Faces::
- File: pcl-cvs, Node: About PCL-CVS, Next: Getting started, Prev: Top, Up: Top
- 1 About PCL-CVS
- ***************
- PCL-CVS is a front-end to CVS versions 1.9 and later. It concisely
- shows the present status of a checked out module in an Emacs buffer and
- provides single-key access to the most frequently used CVS commands.
- Note that the `vc-dir' command (*note VC Directory Mode: (emacs)VC
- Directory Mode.) provides similar functionality, but for several
- version control systems, including CVS.
- PCL-CVS was originally written many years ago by Per Cederqvist who
- proudly maintained it until January 1996, at which point he released the
- beta version 2.0b2 and passed on the maintainership to Greg A Woods.
- Development stayed mostly dormant for a few years during which version
- 2.0 never seemed to be able to leave the "beta" stage while a separate
- XEmacs version was slowly splitting away. In late 1998, Stefan Monnier
- picked up development again, adding some major new functionality and
- taking over the maintenance.
- * Menu:
- * Contributors:: Contributors to PCL-CVS.
- File: pcl-cvs, Node: Contributors, Prev: About PCL-CVS, Up: About PCL-CVS
- 1.1 Contributors to PCL-CVS
- ===========================
- Contributions to the package are welcome. I have limited time to work
- on this project, but I will gladly add any code that you contribute to
- me to this package (*note Bugs::).
- The following persons have made contributions to PCL-CVS.
- * Brian Berliner wrote CVS, together with some other contributors.
- Without his work on CVS this package would be useless...
- * Per Cederqvist wrote most of the otherwise unattributed functions
- in PCL-CVS as well as all the documentation.
- * Inge Wallin <inge@lysator.liu.se> wrote the skeleton of
- `pcl-cvs.texi', and gave useful comments on it. He also wrote the
- files `elib-node.el' and `compile-all.el'. The file `cookie.el'
- was inspired by Inge.
- * Linus Tolke <linus@lysator.liu.se> contributed useful comments on
- both the functionality and the documentation.
- * Jamie Zawinski <jwz@jwz.com> contributed `pcl-cvs-lucid.el', which
- was later renamed to `pcl-cvs-xemacs.el'.
- * Leif Lonnblad contributed RCVS support (since superseded by the new
- remote CVS support).
- * Jim Blandy <jimb@cyclic.com> contributed hooks to automatically
- guess CVS log entries from `ChangeLog' contents, and initial
- support of the new Cygnus / Cyclic remote CVS, as well as various
- sundry bug fixes and cleanups.
- * Jim Kingdon <kingdon@cyclic.com> contributed lots of fixes to the
- build and installation procedure.
- * Greg A. Woods <woods@weird.com> contributed code to implement the
- use of per-file diff buffers, and vendor join diffs with emerge and
- ediff, as well as various and sundry bug fixes and cleanups.
- * Greg Klanderman <greg.klanderman@alum.mit.edu> implemented
- toggling of marked files, setting of CVS command flags via prefix
- arguments, updated the XEmacs support, updated the manual, and
- fixed numerous bugs.
- * Stefan Monnier <monnier@gnu.org> added a slew of other features
- and introduced even more new bugs. If there's any bug left, you
- can be sure it's his.
- * Masatake YAMATO <masata-y@is.aist-nara.ac.jp> made a gracious
- contribution of his cvstree code to display a tree of tags which
- was later superseded by the new `cvs-status-mode'.
- Apart from these, a lot of people have sent us suggestions, ideas,
- requests, bug reports and encouragement. Thanks a lot! Without you
- there would be no new releases of PCL-CVS.
- File: pcl-cvs, Node: Getting started, Next: Buffer contents, Prev: About PCL-CVS, Up: Top
- 2 Getting started
- *****************
- This document assumes that you know what CVS is, and that you at least
- know the fundamental concepts of CVS. If that is not the case, you
- should read the CVS documentation. Type `info -f cvs' or `man cvs'.
- PCL-CVS is only useful once you have checked out a module. So before
- you invoke it, you must have a copy of a module somewhere in the file
- system.
- You can invoke PCL-CVS by typing `M-x cvs-examine <RET>'. You can
- also invoke it via the menu bar, under `Tools'. Or, if you prefer, you
- can also invoke PCL-CVS by simply visiting the CVS administrative
- subdirectory of your module, with a prefix argument. For example, to
- invoke PCL-CVS in a separate frame, type `C-u C-x 5 f ~/my/project/CVS
- <RET>'.
- The function `cvs-examine' will ask for a directory. The command
- `cvs -n update' will be run in that directory. (It should contain
- files that have been checked out from a CVS archive.) The output from
- `cvs' will be parsed and presented in a table in a buffer called
- `*cvs*'. It might look something like this:
- Repository : /usr/CVSroot
- Module : test
- Working dir: /users/ceder/FOO/test
- In directory .:
- Need-Update bar
- Need-Update file.txt
- Modified namechange
- Need-Update newer
- In directory sub:
- Modified ChangeLog
- --------------------- End ---------------------
- -- last cmd: cvs -f -z6 -n update -d -P --
- In this example, your repository is in `/usr/CVSroot' and CVS has
- been run in the directory `/users/ceder/FOO/test'. The three files
- (`bar', `file.txt' and `newer') that are marked with `Need-Update' have
- been changed by someone else in the CVS repository. Two files
- (`namechange' and `sub/ChangeLog') have been modified locally, and need
- to be checked in.
- You can move the cursor up and down in the buffer with `C-n' and
- `C-p' or `n' and `p'. If you press `c' on one of the `Modified' files,
- that file will be checked in to the CVS repository. *Note Committing
- changes::. You can also press `O' to update any of the files that are
- marked `Need-Update'. You can also run `M-x cvs-update <RET>' (bound
- to `M-u' in the `*cvs*' buffer) to update all the files.
- You can then press `=' to easily get a `diff' between your modified
- file and the base version that you started from, or you can press `l'
- to get the output from `cvs log'. Many more such commands are
- available simply by pressing a key (*note Getting info about files::).
- File: pcl-cvs, Node: Buffer contents, Next: Selected files, Prev: Getting started, Up: Top
- 3 Buffer contents
- *****************
- The display contains several columns, some of which are optional.
- These columns are, from left to right:
- * Optionally, the head revision of the file. This is the latest
- version found in the repository. It might also contain (instead
- of the head revision) a sub status which typically gives further
- information about how we got to the current state, for example
- `patched', `merged', ...
- * An asterisk when the file is "marked" (*note Selected files::).
- * The actual status of the file wrt the repository. See below.
- * Optionally, the base revision of the file. This is the version
- which the copy in your working directory is based upon.
- * The file name.
- The `file status' field can have the following values:
- `Modified'
- The file is modified in your working directory, and there was no
- modification to the same file in the repository. This status can
- have the following substatus:
- `merged'
- The file was modified in your working directory, and there
- were modifications in the repository as well, but they were
- merged successfully, without conflict, in your working
- directory.
- `Conflict'
- A conflict was detected while trying to merge your changes to FILE
- with changes from the repository. FILE (the copy in your working
- directory) is now the output of the `rcsmerge' command on the two
- versions; an unmodified copy of your file is also in your working
- directory, with the name `.#FILE.VERSION', where VERSION is the
- RCS revision that your modified file started from. *Note Viewing
- differences::, for more details.
- A conflict can also come from a disagreement on the existence of
- the file rather than on its content. This case is indicated by
- the following possible substatus:
- `removed'
- The file is locally removed but a new revision has been
- committed to the repository by someone else.
- `added'
- The file is locally added and has also been added to the
- repository by someone else.
- `modified'
- The file is locally modified but someone else has removed it
- from the repository.
- `Added'
- The file has been added by you, but it still needs to be checked
- in to the repository.
- `Removed'
- The file has been removed by you, but it still needs to be checked
- in to the repository. You can resurrect it by typing `a' (*note
- Adding and removing files::).
- `Unknown'
- A file that was detected in your directory, but that neither
- appears in the repository, nor is present on the list of files
- that CVS should ignore.
- `Up-to-date'
- The file is up to date with respect to the version in the
- repository. This status can have a substatus of:
- `added'
- You have just added the file to the repository.
- `updated'
- The file was brought up to date with respect to the
- repository. This is done for any file that exists in the
- repository but not in your source, and for files that you
- haven't changed but are not the most recent versions
- available in the repository.
- `patched'
- The file was brought up to date with respect to the remote
- repository by way of fetching and applying a patch to the
- file in your source. This is equivalent to `updated' except
- that CVS decided to use a hopefully more efficient method.
- `committed'
- You just committed the file.
- `Need-Update'
- Either a newer version than the one in your source is available in
- the repository and you have not modified your checked out version,
- or the file exists in the repository but not in your source. Use
- `cvs-mode-update' bound to `O' to update the file.
- `Need-Merge'
- You have modified the checked out version of the file, and a newer
- version is available in the repository. A merge will take place
- when you run a `cvs-update'.
- `Missing'
- The file has been unexpectedly removed from your working directory
- although it has not been `cvs remove'd.
- File: pcl-cvs, Node: Selected files, Next: Commands, Prev: Buffer contents, Up: Top
- 4 Selected files
- ****************
- Many of the commands work on the current set of "selected" files which
- can be either the set of marked files (if any file is marked and marks
- are not ignored) or whichever file or directory the cursor is on.
- If a directory is selected but the command cannot be applied to a
- directory, then it will be applied to the set of files under this
- directory which are in the `*cvs*' buffer.
- Furthermore, each command only operates on a subset of the selected
- files, depending on whether or not the command is "applicable" to each
- file (based on the file's status). For example, `cvs-mode-commit' is
- not applicable to a file whose status is `Need-Update'. If it should
- happen that PCL-CVS guesses the applicability wrong, you can override
- it with the special prefix `cvs-mode-force-command' normally bound to
- `M-f' (and file a bug report). The applicability rule can be slightly
- changed with `cvs-allow-dir-commit' and `cvs-force-dir-tag'.
- By default, marks are always in effect (you may change this,
- however, by setting the variable `cvs-default-ignore-marks') except for
- the commands that `tag' or `diff' a file (which can be changed with the
- variable `cvs-invert-ignore-marks').
- In addition, you may use the special prefix `cvs-mode-toggle-marks'
- normally bound to <T> to toggle the use of marks for the following
- command.
- This scheme might seem a little complicated, but once one gets used
- to it, it is quite powerful.
- For commands to mark and unmark files, see *note Marking files::.
- File: pcl-cvs, Node: Commands, Next: Log Edit Mode, Prev: Selected files, Up: Top
- 5 Commands
- **********
- The nodes in this menu contains explanations about all the commands that
- you can use in PCL-CVS. They are grouped together by type.
- * Menu:
- * Entering PCL-CVS:: Commands to invoke PCL-CVS
- * Setting flags:: Setting flags for CVS commands
- * Updating the buffer::
- * Movement commands:: How to move up and down in the buffer
- * Marking files:: How to mark files that other commands
- will later operate on.
- * Committing changes:: Checking in your modifications to the
- CVS repository.
- * Editing files:: Loading files into Emacs.
- * Getting info about files:: Display the log and status of files.
- * Adding and removing files:: Adding and removing files
- * Undoing changes:: Undoing changes
- * Removing handled entries:: Uninteresting lines can easily be removed.
- * Ignoring files:: Telling CVS to ignore generated files.
- * Viewing differences:: Commands to `diff' different versions.
- * Invoking Ediff:: Running `ediff' from `*cvs*' buffer.
- * Updating files:: Updating files that Need-update.
- * Tagging files:: Tagging files.
- * Miscellaneous commands:: Miscellaneous commands.
- File: pcl-cvs, Node: Entering PCL-CVS, Next: Setting flags, Prev: Commands, Up: Commands
- 5.1 Entering PCL-CVS
- ====================
- Most commands in PCL-CVS require that you have a `*cvs*' buffer. The
- commands that you use to get one are listed below. For each, a `cvs'
- process will be run, the output will be parsed by PCL-CVS, and the
- result will be printed in the `*cvs*' buffer (see *note Buffer
- contents::, for a description of the buffer's contents).
- `M-x cvs-update'
- Run a `cvs update' command. You will be asked for the directory
- in which the `cvs update' will be run.
- `M-x cvs-examine'
- Run a `cvs -n update' command. This is identical to the previous
- command, except that it will only check what needs to be done but
- will not change anything. You will be asked for the directory in
- which the `cvs -n update' will be run.
- `M-x cvs-status'
- Run a `cvs status' command. You will be asked for the directory
- in which the `cvs status' will be run.
- `M-x cvs-checkout'
- Run a `cvs checkout' command. You will be asked for the directory
- in which the `cvs update' will be run and the module to be checked
- out.
- `M-x cvs-quickdir'
- Populate the `*cvs*' buffer by just looking at the `CVS/Entries'
- files. This is very much like `cvs-examine' except that it does
- not access the CVS repository, which is a major advantage when the
- repository is far away. But of course, it will not be able to
- detect when a file needs to be updated or merged.
- The first four of those commands are also reachable from the menu bar
- under `Tools->PCL-CVS'. Finally, an alternative way is to visit the
- CVS administrative subdirectory in your work area with a simple prefix
- argument. For example `C-u C-x C-f ~/my/work/CVS <RET>'. This by
- default runs `cvs-quickdir' but the specific behavior can be changed
- with `cvs-dired-action' and `cvs-dired-use-hook'.
- By default, the commands above will descend recursively into
- subdirectories. You can avoid that behavior by including `-l' in the
- flags for the command. These flags can be set by giving a prefix
- argument to the command (e.g., by typing `C-u M-x cvs-update <RET> -l
- <RET>').
- File: pcl-cvs, Node: Setting flags, Next: Updating the buffer, Prev: Entering PCL-CVS, Up: Commands
- 5.2 Setting flags for CVS commands
- ==================================
- This section describes the convention used by nearly all PCL-CVS
- commands for setting optional flags sent to CVS. A single `C-u' prefix
- argument is used to cause the command to prompt for flags to be used
- for the current invocation of the command only. Two `C-u' prefix
- arguments are used to prompt for flags which will be set permanently,
- for the current invocation and all that follow, until the flags are
- changed, or unless temporary flags are set which override them.
- Perhaps an example or two is in order. Say you are about to add a
- binary file to the repository, and want to specify the flags `-kb' to
- `cvs add'. You can type `C-u a -kb <RET>', and the file will be added.
- Subsequent `cvs add' commands will use the previously prevailing flags.
- As a second example, say you are about to perform a diff and want to
- see the result in unified diff format, i.e. you'd like to pass the flag
- `-u' to both `cvs diff' and `diff'. You'd also like all subsequent
- diffs to use this flag. You can type `C-u C-u = -u <RET>' and the diff
- will be performed, and the default flags will be set to `("-u")'. You
- can of course override this flag for a single diff by using a single
- `C-u' prefix argument.
- In addition to this, some commands can take "special prefix"
- arguments. These work as follows: When called with a `C-u' prefix, the
- user is prompted for a new value of the special prefix and the special
- prefix is activated for the next command. When called without the `C-u'
- prefix, the special prefix is re-activated (with the same value as last
- time) for the next command. Calling the prefix command again when it's
- already activated deactivates it. Calling it with the `C-u C-u' prefix
- activates it for all subsequent commands until you deactivate it
- explicitly. The special prefixes are:
- `T'
- Toggles whether or not marks will be active in the next command.
- `b'
- Provide the next command with a branch (can be any version
- specifier) to work on.
- `B'
- Secondary branch argument. Only meaningful if `b' is also used.
- It can be used to provide a second branch argument to
- `cvs-mode-diff' or to `cvs-mode-update'.
- `M-f'
- Forces the next command to apply to every selected file rather
- than only to the ones PCL-CVS thinks are relevant.
- File: pcl-cvs, Node: Updating the buffer, Next: Movement commands, Prev: Setting flags, Up: Commands
- 5.3 Updating the `*cvs*' buffer
- ===============================
- The following commands can be used from within the `*cvs*' buffer to
- update the display:
- `M-u'
- Runs the command `cvs-update'.
- `M-e'
- Runs the command `cvs-examine'.
- `M-s'
- Runs the command `cvs-status'.
- In addition to the above commands which operate on the whole module,
- you can run the equivalent CVS command on just a subset of the
- files/directories with these keys:
- `O'
- Runs `cvs-mode-update' on the selected files. When run on the
- top-level directory, this is equivalent to `M-u'.
- `e'
- Runs `cvs-mode-examine' on the selected files. When run on the
- top-level directory, this is equivalent to `M-e'.
- `s'
- Runs `cvs-mode-status' on the selected files. When run on the
- top-level directory, this is equivalent to `M-s', except that CVS
- output will be shown in a `*cvs-info*' buffer that will be put in
- `cvs-status-mode'.
- File: pcl-cvs, Node: Movement commands, Next: Marking files, Prev: Updating the buffer, Up: Commands
- 5.4 Movement Commands
- =====================
- You can use most normal Emacs commands to move forward and backward in
- the buffer. Some keys are rebound to functions that take advantage of
- the fact that the buffer is a PCL-CVS buffer:
- `<SPC>'
- `n'
- These keys move the cursor one file forward, towards the end of the
- buffer (`cvs-mode-next-line').
- `p'
- This key moves one file backward, towards the beginning of the
- buffer (`cvs-mode-previous-line').
- File: pcl-cvs, Node: Marking files, Next: Committing changes, Prev: Movement commands, Up: Commands
- 5.5 Marking files
- =================
- PCL-CVS works on a set of "selected files" (*note Selected files::).
- You can mark and unmark files with these commands:
- `m'
- This marks the file that the cursor is positioned on. If the
- cursor is positioned on a directory all files in that directory
- are marked (`cvs-mode-mark').
- `u'
- Unmark the file that the cursor is positioned on. If the cursor is
- on a directory, all files in that directory are unmarked
- (`cvs-mode-unmark').
- `M'
- Mark _all_ files in the buffer (`cvs-mode-mark-all-files').
- `M-<DEL>'
- Unmark _all_ files (`cvs-mode-unmark-all-files').
- `<DEL>'
- Unmark the file on the previous line, and move point to that line
- (`cvs-mode-unmark-up').
- `%'
- Mark all files matching a regular expression
- (`cvs-mode-mark-matching-files').
- `S'
- Mark all files in a particular state, such as "Modified" or
- "Removed" (`cvs-mode-mark-on-state').
- `T'
- Toggle use of marks for the next command (`cvs-mode-toggle-marks').
- File: pcl-cvs, Node: Committing changes, Next: Editing files, Prev: Marking files, Up: Commands
- 5.6 Committing changes
- ======================
- Committing changes basically works as follows:
- 1. After having selected the files you want to commit, you type either
- `c' or `C' which brings up a special buffer `*cvs-commit*'.
- 2. You type in the log message describing the changes you're about to
- commit (*note Log Edit Mode::).
- 3. When you're happy with it, you type `C-c C-c' to do the actual
- commit.
- There's no hidden state, so you can abort the process or pick it up
- again at any time.
- The set of files actually committed is really decided only during the
- very last step, which is a mixed blessing. It allows you to go back and
- change your mind about which files to commit, but it also means that you
- might inadvertently change the set of selected files. To reduce the
- risk of error, `C-c C-c' will ask for confirmation if the set of
- selected files has changed between the first step and the last. You can
- change this last detail with `log-edit-confirm'.
- As for the difference between `c' (i.e. `cvs-mode-commit') and `C'
- (i.e. `cvs-mode-commit-setup') is that the first gets you straight to
- `*cvs-commit*' without erasing it or changing anything to its content,
- while the second first erases `*cvs-commit*' and tries to initialize it
- with a sane default (it does that by either using a template provided
- by the CVS administrator or by extracting a relevant log message from a
- `ChangeLog' file).
- If you are editing the files in your Emacs, an automatic
- `revert-buffer' will be performed. (If the file contains `$Id$'
- keywords, `cvs commit' will write a new file with the new values
- substituted. The auto-revert makes sure that you get them into your
- buffer.) The revert will not occur if you have modified your buffer,
- or if `cvs-auto-revert' is set to `nil'.
- File: pcl-cvs, Node: Editing files, Next: Getting info about files, Prev: Committing changes, Up: Commands
- 5.7 Editing files
- =================
- There are currently three commands that can be used to find a file (that
- is, load it into a buffer and start editing it there). These commands
- work on the line that the cursor is situated at. They always ignore
- any marked files.
- `f'
- Find the file that the cursor points to (`cvs-mode-find-file'). If
- the cursor points to a directory, run `dired' on that directory;
- *note (emacs)Dired::.
- `o'
- Like `f', but use another window
- (`cvs-mode-find-file-other-window').
- `A'
- Invoke `add-change-log-entry-other-window' to edit a `ChangeLog'
- file. The `ChangeLog' file will be found in the directory of the
- file the cursor points to, or in a parent of that directory
- (`cvs-mode-add-change-log-entry-other-window').
- File: pcl-cvs, Node: Getting info about files, Next: Adding and removing files, Prev: Editing files, Up: Commands
- 5.8 Getting info about files
- ============================
- `l'
- Call the command `cvs-mode-log' which runs `cvs log' on all
- selected files, and show the result in a temporary buffer
- `*cvs-info*' (*note Log View Mode::).
- `s'
- Call the command `cvs-mode-status' which runs `cvs status' on all
- selected files, and show the result in a temporary buffer
- `*cvs-info*'.
- File: pcl-cvs, Node: Adding and removing files, Next: Undoing changes, Prev: Getting info about files, Up: Commands
- 5.9 Adding and removing files
- =============================
- The following commands are available to make it easy to add files to
- and remove them from the CVS repository.
- `a'
- Add all selected files. This command can be used on `Unknown'
- files (*note Buffer contents::). The status of the file will
- change to `Added', and you will have to use `c' (`cvs-mode-commit'
- *note Committing changes::), to really add the file to the
- repository.
- This command can also be used on `Removed' files (before you commit
- them) to resurrect them.
- The command that is run is `cvs-mode-add'.
- `r'
- This command removes the selected files (after prompting for
- confirmation). The files are deleted from your directory and
- (unless the status was `Unknown'; *note Buffer contents::) they
- will also be `cvs remove'd. If the files' status was `Unknown'
- they will disappear from the buffer. Otherwise their status will
- change to `Removed', and you must use `c' (`cvs-mode-commit',
- *note Committing changes::) to commit the removal.
- The command that is run is `cvs-mode-remove-file'.
- File: pcl-cvs, Node: Undoing changes, Next: Removing handled entries, Prev: Adding and removing files, Up: Commands
- 5.10 Undoing changes
- ====================
- `U'
- If you have modified a file, and for some reason decide that you
- don't want to keep the changes, you can undo them with this
- command. It works by removing your working copy of the file and
- then getting the latest version from the repository
- (`cvs-mode-undo-local-changes').
- File: pcl-cvs, Node: Removing handled entries, Next: Ignoring files, Prev: Undoing changes, Up: Commands
- 5.11 Removing handled entries
- =============================
- `x'
- This command allows you to remove all entries that you have
- processed. More specifically, the lines for `Up-to-date' files
- (*note Buffer contents::) are removed from the buffer. If a
- directory becomes empty the heading for that directory is also
- removed. This makes it easier to get an overview of what needs to
- be done.
- `x' invokes `cvs-mode-remove-handled'. If
- `cvs-auto-remove-handled' is set to non-`nil', this will
- automatically be performed after every commit.
- `C-k'
- This command can be used for lines that `cvs-mode-remove-handled'
- would not delete, but that you want to delete
- (`cvs-mode-acknowledge').
- File: pcl-cvs, Node: Ignoring files, Next: Viewing differences, Prev: Removing handled entries, Up: Commands
- 5.12 Ignoring files
- ===================
- `i'
- Arrange so that CVS will ignore the selected files. The file
- names are added to the `.cvsignore' file in the corresponding
- directory. If the `.cvsignore' file doesn't exist, it will be
- created.
- The `.cvsignore' file should normally be added to the repository,
- but you could ignore it as well, if you like it better that way.
- This runs `cvs-mode-ignore'.
- File: pcl-cvs, Node: Viewing differences, Next: Invoking Ediff, Prev: Ignoring files, Up: Commands
- 5.13 Viewing differences
- ========================
- `='
- `d ='
- Display a `cvs diff' between the selected files and the version
- that they are based on (`cvs-mode-diff').
- `d b'
- If CVS finds a conflict while merging two versions of a file
- (during a `cvs update', *note Updating the buffer::) it will save
- the original file in a file called `.#FILE.VERSION' where FILE is
- the name of the file, and VERSION is the revision number that FILE
- was based on.
- With the `d b' command you can run a `diff' on the files
- `.#FILE.VERSION' and `FILE'.
- `d h'
- Display a `cvs diff' between the selected files and the head
- revision (the most recent version on the current branch) in the
- repository (`cvs-mode-diff-head').
- `d r'
- Display a `cvs diff' between the base revision of the selected
- files and the head revision in the repository. This displays the
- changes anyone has committed to the repository since you last
- executed a checkout, update or commit operation
- (`cvs-mode-diff-repository').
- `d v'
- Display a `cvs diff' between the selected files and the head
- revision of the vendor branch in the repository
- (`cvs-mode-diff-vendor').
- `d y'
- Display a `cvs diff' between the selected files and yesterday's
- head revision in the repository (`cvs-mode-diff-yesterday').
- By default, `diff' commands ignore the marks. This can be changed
- with `cvs-invert-ignore-marks'.
- File: pcl-cvs, Node: Invoking Ediff, Next: Updating files, Prev: Viewing differences, Up: Commands
- 5.14 Running ediff
- ==================
- `d e'
- This uses `ediff' (or `emerge', depending on
- `cvs-idiff-imerge-handlers') to allow you to view diffs. If a
- prefix argument is given, PCL-CVS will prompt for a revision
- against which the diff should be made, else the default will be to
- use the BASE revision.
- `d E'
- This command use `ediff' (or `emerge', see above) to allow you to
- do an interactive 3-way merge.
- *Please note:* when the file status is `Conflict', CVS has
- already performed a merge. The resulting file is not used in any
- way if you use this command. If you use the `q' command inside
- `ediff' (to successfully terminate a merge) the file that CVS
- created will be overwritten.
- File: pcl-cvs, Node: Updating files, Next: Tagging files, Prev: Invoking Ediff, Up: Commands
- 5.15 Updating files
- ===================
- `O'
- Update all selected files with status `Need-update' by running
- `cvs update' on them (`cvs-mode-update').
- File: pcl-cvs, Node: Tagging files, Next: Miscellaneous commands, Prev: Updating files, Up: Commands
- 5.16 Tagging files
- ==================
- `t'
- Tag all selected files by running `cvs tag' on them
- (`cvs-mode-tag'). It's usually preferable to tag a directory at a
- time. Rather than selecting all files (which too often doesn't
- select all files but only the few that are displayed), clear the
- selection with `M-DEL' (`cvs-mode-unmark-all-files'), position the
- cursor on the directory you want to tag and hit `t'.
- By default, `tag' commands ignore the marks. This can be changed
- with `cvs-invert-ignore-marks'. Also, by default `tag' can only be
- applied to directories, see `cvs-force-dir-tag' if you want to change
- this behavior.
- File: pcl-cvs, Node: Miscellaneous commands, Prev: Tagging files, Up: Commands
- 5.17 Miscellaneous commands
- ===========================
- `M-x cvs-mode-byte-compile-files'
- Byte compile all selected files that end in `.el'.
- `M-x cvs-mode-delete-lock'
- This command deletes the lock files that the `*cvs*' buffer
- informs you about. You should normally never have to use this
- command, since CVS tries very carefully to always remove the lock
- files itself.
- You can only use this command when a message in the `*cvs*' buffer
- tells you so. You should wait a while before using this command
- in case someone else is running a `cvs' command.
- Also note that this only works if the repository is local.
- `?'
- `h'
- Show a summary of common command key bindings in the echo area
- (`cvs-help').
- `q'
- Bury the PCL-CVS buffer (`cvs-bury-buffer').
- `M-x cvs-mode-quit'
- Quit PCL-CVS, killing the `*cvs*' buffer.
- File: pcl-cvs, Node: Log Edit Mode, Next: Log View Mode, Prev: Commands, Up: Top
- 6 Editing a Log Message
- ***********************
- Buffers for entering/editing log messages for changes which are about
- to be committed are put into Log Edit mode.
- Sometimes the log buffer contains default text when you enter it,
- typically the last log message entered. If it does, mark and point are
- set around the entire contents of the buffer so that it is easy to kill
- the contents of the buffer with `C-w'.
- If you work by writing entries in the `ChangeLog' (*note
- (emacs)Change Log::) and then commit the change under revision control,
- you can generate the Log Edit text from the ChangeLog using `C-c C-a'
- (`log-edit-insert-changelog'). This looks for entries for the file(s)
- concerned in the top entry in the ChangeLog and uses those paragraphs
- as the log text. This text is only inserted if the top entry was made
- under your user name on the current date. *Note (emacs)Change Logs and
- VC::, for the opposite way of working--generating ChangeLog entries
- from the revision control log.
- In the Log Edit buffer, `C-c C-f' (`M-x log-edit-show-files') shows
- the list of files to be committed in case you need to check that.
- When you have finished editing the log message, type `C-c C-c' to
- exit the buffer and commit the change.
- File: pcl-cvs, Node: Log View Mode, Next: Customization, Prev: Log Edit Mode, Up: Top
- 7 Browsing a Log of Changes
- ***************************
- Log View mode provides a few useful commands for navigating revision
- control log output. It is used for the output buffers of both
- `cvs-mode-log' and `vc-print-log'.
- In this mode, `n' goes to the next message and `p' goes to the
- previous message and `N' and `P' go to the next and previous files,
- respectively, in multi-file output. With a numeric prefix argument,
- these commands move that many messages of files.
- File: pcl-cvs, Node: Customization, Next: Bugs, Prev: Log View Mode, Up: Top
- 8 Customization
- ***************
- If you have an idea about any customization that would be handy but
- isn't present in this list, please tell us! For info on how to reach
- us, see *note Bugs::.
- `cvs-auto-remove-handled'
- If this variable is set to any non-`nil' value,
- `cvs-mode-remove-handled' will be called every time you check in
- files, after the check-in is ready. *Note Removing handled
- entries::.
- `cvs-auto-remove-directories'
- If this variable is set to any non-`nil' value, directories that do
- not contain any files to be checked in will not be listed in the
- `*cvs*' buffer.
- `cvs-auto-revert'
- If this variable is set to any non-`nil' value any buffers you have
- that visit a file that is committed will be automatically reverted.
- This variable defaults to `t'. *Note Committing changes::.
- `cvs-update-prog-output-skip-regexp'
- The `-u' flag in the `modules' file can be used to run a command
- whenever a `cvs update' is performed (see `cvs(5)'). This regexp
- is used to search for the last line in that output. It is
- normally set to `$'. That setting is only correct if the command
- outputs nothing. Note that PCL-CVS will get very confused if the
- command outputs _anything_ to `stderr'.
- `cvs-cvsroot'
- This variable can be set to override `CVSROOT'. It should be a
- string. If it is set, then every time a `cvs' command is run, it
- will be called as `cvs -d CVS-CVSROOT...'. This can be useful if
- your site has several repositories.
- `log-edit-require-final-newline'
- When you enter a log message by typing into the
- `*cvs-commit-message*' buffer, PCL-CVS normally automatically
- inserts a trailing newline, unless there already is one. This
- behavior can be controlled via
- `cvs-commit-buffer-require-final-newline'. If it is `t' (the
- default behavior), a newline will always be appended. If it is
- `nil', newlines will never be appended. Any other value causes
- PCL-CVS to ask the user whenever there is no trailing newline in
- the commit message buffer.
- `log-edit-changelog-full-paragraphs'
- If this variable is non-`nil', include full `ChangeLog' paragraphs
- in the CVS log created by `cvs-mode-changelog-commit'. This may
- be set in the local variables section of a `ChangeLog' file, to
- indicate the policy for that `ChangeLog'.
- A "`ChangeLog' paragraph" is a bunch of log text containing no
- blank lines; a paragraph usually describes a set of changes with a
- single purpose, but perhaps spanning several functions in several
- files. Changes in different paragraphs are unrelated.
- You could argue that the CVS log entry for a file should contain
- the full `ChangeLog' paragraph mentioning the change to the file,
- even though it may mention other files, because that gives you the
- full context you need to understand the change. This is the
- behavior you get when this variable is set to `t', the default.
- On the other hand, you could argue that the CVS log entry for a
- change should contain only the text for the changes which occurred
- in that file, because the CVS log is per-file. This is the
- behavior you get when this variable is set to `nil'.
- `cvs-sort-ignore-file'
- If this variable is set to any non-`nil' value, the `.cvsignore'
- file will always be sorted whenever you use `cvs-mode-ignore' to
- add a file to it. This option is on by default.
- * Menu:
- * Customizing Faces::
- File: pcl-cvs, Node: Customizing Faces, Prev: Customization, Up: Customization
- 8.1 Customizing Faces
- =====================
- PCL-CVS adds a few extra features, including menus, mouse bindings, and
- fontification of the `*cvs*' buffer. The faces defined for
- fontification are listed below:
- `cvs-header'
- used to highlight directory changes.
- `cvs-filename'
- Used to highlight file names.
- `cvs-unknown'
- Used to highlight the status of files which are `Unknown'.
- `cvs-handled'
- Used to highlight the status of files which are handled and need
- no further action.
- `cvs-need-action'
- Used to highlight the status of files which still need action.
- `cvs-marked'
- Used to highlight the marked file indicator (`*').
- `cvs-msg'
- Used to highlight CVS messages.
- File: pcl-cvs, Node: Bugs, Next: GNU Free Documentation License, Prev: Customization, Up: Top
- 9 Bugs (known and unknown)
- **************************
- If you find a bug or misfeature, don't hesitate to tell us! Send email
- to <bug-gnu-emacs@gnu.org> which is gatewayed to the newsgroup
- `gnu.emacs.bugs'. Feature requests should also be sent there. We
- prefer discussing one thing at a time. If you find several unrelated
- bugs, please report them separately. If you are running PCL-CVS under
- XEmacs, you should also send a copy of bug reports to
- <xemacs-beta@xemacs.org>.
- If you have problems using PCL-CVS or other questions, send them to
- <help-gnu-emacs@gnu.org>, which is gatewayed to the `gnu.emacs.help'
- newsgroup. This is a good place to get help, as is <cvs-info@gnu.org>,
- gatewayed to `gnu.cvs.help'.
- If you have ideas for improvements, or if you have written some
- extensions to this package, we would like to hear from you. We hope
- that you find this package useful!
- Below is a partial list of currently known problems with PCL-CVS.
- Unexpected output from CVS
- Unexpected output from CVS may confuse PCL-CVS. It will create
- warning messages in the `*cvs*' buffer alerting you to any parse
- errors. If you get these messages, please send a bug report to
- the email addresses listed above. Include the contents of the
- `*cvs*' buffer, the output of the CVS process (which should be
- found in the ` *cvs-tmp*' buffer), and the versions of Emacs,
- PCL-CVS and CVS you are using.
- File: pcl-cvs, Node: GNU Free Documentation License, Next: Function and Variable Index, Prev: Bugs, Up: Top
- Appendix A GNU Free Documentation License
- *****************************************
- Version 1.3, 3 November 2008
- Copyright (C) 2000, 2001, 2002, 2007, 2008, 2009 Free Software Foundation, Inc.
- `http://fsf.org/'
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
- 0. PREAMBLE
- The purpose of this License is to make a manual, textbook, or other
- functional and useful document "free" in the sense of freedom: to
- assure everyone the effective freedom to copy and redistribute it,
- with or without modifying it, either commercially or
- noncommercially. Secondarily, this License preserves for the
- author and publisher a way to get credit for their work, while not
- being considered responsible for modifications made by others.
- This License is a kind of "copyleft", which means that derivative
- works of the document must themselves be free in the same sense.
- It complements the GNU General Public License, which is a copyleft
- license designed for free software.
- We have designed this License in order to use it for manuals for
- free software, because free software needs free documentation: a
- free program should come with manuals providing the same freedoms
- that the software does. But this License is not limited to
- software manuals; it can be used for any textual work, regardless
- of subject matter or whether it is published as a printed book.
- We recommend this License principally for works whose purpose is
- instruction or reference.
- 1. APPLICABILITY AND DEFINITIONS
- This License applies to any manual or other work, in any medium,
- that contains a notice placed by the copyright holder saying it
- can be distributed under the terms of this License. Such a notice
- grants a world-wide, royalty-free license, unlimited in duration,
- to use that work under the conditions stated herein. The
- "Document", below, refers to any such manual or work. Any member
- of the public is a licensee, and is addressed as "you". You
- accept the license if you copy, modify or distribute the work in a
- way requiring permission under copyright law.
- A "Modified Version" of the Document means any work containing the
- Document or a portion of it, either copied verbatim, or with
- modifications and/or translated into another language.
- A "Secondary Section" is a named appendix or a front-matter section
- of the Document that deals exclusively with the relationship of the
- publishers or authors of the Document to the Document's overall
- subject (or to related matters) and contains nothing that could
- fall directly within that overall subject. (Thus, if the Document
- is in part a textbook of mathematics, a Secondary Section may not
- explain any mathematics.) The relationship could be a matter of
- historical connection with the subject or with related matters, or
- of legal, commercial, philosophical, ethical or political position
- regarding them.
- The "Invariant Sections" are certain Secondary Sections whose
- titles are designated, as being those of Invariant Sections, in
- the notice that says that the Document is released under this
- License. If a section does not fit the above definition of
- Secondary then it is not allowed to be designated as Invariant.
- The Document may contain zero Invariant Sections. If the Document
- does not identify any Invariant Sections then there are none.
- The "Cover Texts" are certain short passages of text that are
- listed, as Front-Cover Texts or Back-Cover Texts, in the notice
- that says that the Document is released under this License. A
- Front-Cover Text may be at most 5 words, and a Back-Cover Text may
- be at most 25 words.
- A "Transparent" copy of the Document means a machine-readable copy,
- represented in a format whose specification is available to the
- general public, that is suitable for revising the document
- straightforwardly with generic text editors or (for images
- composed of pixels) generic paint programs or (for drawings) some
- widely available drawing editor, and that is suitable for input to
- text formatters or for automatic translation to a variety of
- formats suitable for input to text formatters. A copy made in an
- otherwise Transparent file format whose markup, or absence of
- markup, has been arranged to thwart or discourage subsequent
- modification by readers is not Transparent. An image format is
- not Transparent if used for any substantial amount of text. A
- copy that is not "Transparent" is called "Opaque".
- Examples of suitable formats for Transparent copies include plain
- ASCII without markup, Texinfo input format, LaTeX input format,
- SGML or XML using a publicly available DTD, and
- standard-conforming simple HTML, PostScript or PDF designed for
- human modification. Examples of transparent image formats include
- PNG, XCF and JPG. Opaque formats include proprietary formats that
- can be read and edited only by proprietary word processors, SGML or
- XML for which the DTD and/or processing tools are not generally
- available, and the machine-generated HTML, PostScript or PDF
- produced by some word processors for output purposes only.
- The "Title Page" means, for a printed book, the title page itself,
- plus such following pages as are needed to hold, legibly, the
- material this License requires to appear in the title page. For
- works in formats which do not have any title page as such, "Title
- Page" means the text near the most prominent appearance of the
- work's title, preceding the beginning of the body of the text.
- The "publisher" means any person or entity that distributes copies
- of the Document to the public.
- A section "Entitled XYZ" means a named subunit of the Document
- whose title either is precisely XYZ or contains XYZ in parentheses
- following text that translates XYZ in another language. (Here XYZ
- stands for a specific section name mentioned below, such as
- "Acknowledgements", "Dedications", "Endorsements", or "History".)
- To "Preserve the Title" of such a section when you modify the
- Document means that it remains a section "Entitled XYZ" according
- to this definition.
- The Document may include Warranty Disclaimers next to the notice
- which states that this License applies to the Document. These
- Warranty Disclaimers are considered to be included by reference in
- this License, but only as regards disclaiming warranties: any other
- implication that these Warranty Disclaimers may have is void and
- has no effect on the meaning of this License.
- 2. VERBATIM COPYING
- You may copy and distribute the Document in any medium, either
- commercially or noncommercially, provided that this License, the
- copyright notices, and the license notice saying this License
- applies to the Document are reproduced in all copies, and that you
- add no other conditions whatsoever to those of this License. You
- may not use technical measures to obstruct or control the reading
- or further copying of the copies you make or distribute. However,
- you may accept compensation in exchange for copies. If you
- distribute a large enough number of copies you must also follow
- the conditions in section 3.
- You may also lend copies, under the same conditions stated above,
- and you may publicly display copies.
- 3. COPYING IN QUANTITY
- If you publish printed copies (or copies in media that commonly
- have printed covers) of the Document, numbering more than 100, and
- the Document's license notice requires Cover Texts, you must
- enclose the copies in covers that carry, clearly and legibly, all
- these Cover Texts: Front-Cover Texts on the front cover, and
- Back-Cover Texts on the back cover. Both covers must also clearly
- and legibly identify you as the publisher of these copies. The
- front cover must present the full title with all words of the
- title equally prominent and visible. You may add other material
- on the covers in addition. Copying with changes limited to the
- covers, as long as they preserve the title of the Document and
- satisfy these conditions, can be treated as verbatim copying in
- other respects.
- If the required texts for either cover are too voluminous to fit
- legibly, you should put the first ones listed (as many as fit
- reasonably) on the actual cover, and continue the rest onto
- adjacent pages.
- If you publish or distribute Opaque copies of the Document
- numbering more than 100, you must either include a
- machine-readable Transparent copy along with each Opaque copy, or
- state in or with each Opaque copy a computer-network location from
- which the general network-using public has access to download
- using public-standard network protocols a complete Transparent
- copy of the Document, free of added material. If you use the
- latter option, you must take reasonably prudent steps, when you
- begin distribution of Opaque copies in quantity, to ensure that
- this Transparent copy will remain thus accessible at the stated
- location until at least one year after the last time you
- distribute an Opaque copy (directly or through your agents or
- retailers) of that edition to the public.
- It is requested, but not required, that you contact the authors of
- the Document well before redistributing any large number of
- copies, to give them a chance to provide you with an updated
- version of the Document.
- 4. MODIFICATIONS
- You may copy and distribute a Modified Version of the Document
- under the conditions of sections 2 and 3 above, provided that you
- release the Modified Version under precisely this License, with
- the Modified Version filling the role of the Document, thus
- licensing distribution and modification of the Modified Version to
- whoever possesses a copy of it. In addition, you must do these
- things in the Modified Version:
- A. Use in the Title Page (and on the covers, if any) a title
- distinct from that of the Document, and from those of
- previous versions (which should, if there were any, be listed
- in the History section of the Document). You may use the
- same title as a previous version if the original publisher of
- that version gives permission.
- B. List on the Title Page, as authors, one or more persons or
- entities responsible for authorship of the modifications in
- the Modified Version, together with at least five of the
- principal authors of the Document (all of its principal
- authors, if it has fewer than five), unless they release you
- from this requirement.
- C. State on the Title page the name of the publisher of the
- Modified Version, as the publisher.
- D. Preserve all the copyright notices of the Document.
- E. Add an appropriate copyright notice for your modifications
- adjacent to the other copyright notices.
- F. Include, immediately after the copyright notices, a license
- notice giving the public permission to use the Modified
- Version under the terms of this License, in the form shown in
- the Addendum below.
- G. Preserve in that license notice the full lists of Invariant
- Sections and required Cover Texts given in the Document's
- license notice.
- H. Include an unaltered copy of this License.
- I. Preserve the section Entitled "History", Preserve its Title,
- and add to it an item stating at least the title, year, new
- authors, and publisher of the Modified Version as given on
- the Title Page. If there is no section Entitled "History" in
- the Document, create one stating the title, year, authors,
- and publisher of the Document as given on its Title Page,
- then add an item describing the Modified Version as stated in
- the previous sentence.
- J. Preserve the network location, if any, given in the Document
- for public access to a Transparent copy of the Document, and
- likewise the network locations given in the Document for
- previous versions it was based on. These may be placed in
- the "History" section. You may omit a network location for a
- work that was published at least four years before the
- Document itself, or if the original publisher of the version
- it refers to gives permission.
- K. For any section Entitled "Acknowledgements" or "Dedications",
- Preserve the Title of the section, and preserve in the
- section all the substance and tone of each of the contributor
- acknowledgements and/or dedications given therein.
- L. Preserve all the Invariant Sections of the Document,
- unaltered in their text and in their titles. Section numbers
- or the equivalent are not considered part of the section
- titles.
- M. Delete any section Entitled "Endorsements". Such a section
- may not be included in the Modified Version.
- N. Do not retitle any existing section to be Entitled
- "Endorsements" or to conflict in title with any Invariant
- Section.
- O. Preserve any Warranty Disclaimers.
- If the Modified Version includes new front-matter sections or
- appendices that qualify as Secondary Sections and contain no
- material copied from the Document, you may at your option
- designate some or all of these sections as invariant. To do this,
- add their titles to the list of Invariant Sections in the Modified
- Version's license notice. These titles must be distinct from any
- other section titles.
- You may add a section Entitled "Endorsements", provided it contains
- nothing but endorsements of your Modified Version by various
- parties--for example, statements of peer review or that the text
- has been approved by an organization as the authoritative
- definition of a standard.
- You may add a passage of up to five words as a Front-Cover Text,
- and a passage of up to 25 words as a Back-Cover Text, to the end
- of the list of Cover Texts in the Modified Version. Only one
- passage of Front-Cover Text and one of Back-Cover Text may be
- added by (or through arrangements made by) any one entity. If the
- Document already includes a cover text for the same cover,
- previously added by you or by arrangement made by the same entity
- you are acting on behalf of, you may not add another; but you may
- replace the old one, on explicit permission from the previous
- publisher that added the old one.
- The author(s) and publisher(s) of the Document do not by this
- License give permission to use their names for publicity for or to
- assert or imply endorsement of any Modified Version.
- 5. COMBINING DOCUMENTS
- You may combine the Document with other documents released under
- this License, under the terms defined in section 4 above for
- modified versions, provided that you include in the combination
- all of the Invariant Sections of all of the original documents,
- unmodified, and list them all as Invariant Sections of your
- combined work in its license notice, and that you preserve all
- their Warranty Disclaimers.
- The combined work need only contain one copy of this License, and
- multiple identical Invariant Sections may be replaced with a single
- copy. If there are multiple Invariant Sections with the same name
- but different contents, make the title of each such section unique
- by adding at the end of it, in parentheses, the name of the
- original author or publisher of that section if known, or else a
- unique number. Make the same adjustment to the section titles in
- the list of Invariant Sections in the license notice of the
- combined work.
- In the combination, you must combine any sections Entitled
- "History" in the various original documents, forming one section
- Entitled "History"; likewise combine any sections Entitled
- "Acknowledgements", and any sections Entitled "Dedications". You
- must delete all sections Entitled "Endorsements."
- 6. COLLECTIONS OF DOCUMENTS
- You may make a collection consisting of the Document and other
- documents released under this License, and replace the individual
- copies of this License in the various documents with a single copy
- that is included in the collection, provided that you follow the
- rules of this License for verbatim copying of each of the
- documents in all other respects.
- You may extract a single document from such a collection, and
- distribute it individually under this License, provided you insert
- a copy of this License into the extracted document, and follow
- this License in all other respects regarding verbatim copying of
- that document.
- 7. AGGREGATION WITH INDEPENDENT WORKS
- A compilation of the Document or its derivatives with other
- separate and independent documents or works, in or on a volume of
- a storage or distribution medium, is called an "aggregate" if the
- copyright resulting from the compilation is not used to limit the
- legal rights of the compilation's users beyond what the individual
- works permit. When the Document is included in an aggregate, this
- License does not apply to the other works in the aggregate which
- are not themselves derivative works of the Document.
- If the Cover Text requirement of section 3 is applicable to these
- copies of the Document, then if the Document is less than one half
- of the entire aggregate, the Document's Cover Texts may be placed
- on covers that bracket the Document within the aggregate, or the
- electronic equivalent of covers if the Document is in electronic
- form. Otherwise they must appear on printed covers that bracket
- the whole aggregate.
- 8. TRANSLATION
- Translation is considered a kind of modification, so you may
- distribute translations of the Document under the terms of section
- 4. Replacing Invariant Sections with translations requires special
- permission from their copyright holders, but you may include
- translations of some or all Invariant Sections in addition to the
- original versions of these Invariant Sections. You may include a
- translation of this License, and all the license notices in the
- Document, and any Warranty Disclaimers, provided that you also
- include the original English version of this License and the
- original versions of those notices and disclaimers. In case of a
- disagreement between the translation and the original version of
- this License or a notice or disclaimer, the original version will
- prevail.
- If a section in the Document is Entitled "Acknowledgements",
- "Dedications", or "History", the requirement (section 4) to
- Preserve its Title (section 1) will typically require changing the
- actual title.
- 9. TERMINATION
- You may not copy, modify, sublicense, or distribute the Document
- except as expressly provided under this License. Any attempt
- otherwise to copy, modify, sublicense, or distribute it is void,
- and will automatically terminate your rights under this License.
- However, if you cease all violation of this License, then your
- license from a particular copyright holder is reinstated (a)
- provisionally, unless and until the copyright holder explicitly
- and finally terminates your license, and (b) permanently, if the
- copyright holder fails to notify you of the violation by some
- reasonable means prior to 60 days after the cessation.
- Moreover, your license from a particular copyright holder is
- reinstated permanently if the copyright holder notifies you of the
- violation by some reasonable means, this is the first time you have
- received notice of violation of this License (for any work) from
- that copyright holder, and you cure the violation prior to 30 days
- after your receipt of the notice.
- Termination of your rights under this section does not terminate
- the licenses of parties who have received copies or rights from
- you under this License. If your rights have been terminated and
- not permanently reinstated, receipt of a copy of some or all of
- the same material does not give you any rights to use it.
- 10. FUTURE REVISIONS OF THIS LICENSE
- The Free Software Foundation may publish new, revised versions of
- the GNU Free Documentation License from time to time. Such new
- versions will be similar in spirit to the present version, but may
- differ in detail to address new problems or concerns. See
- `http://www.gnu.org/copyleft/'.
- Each version of the License is given a distinguishing version
- number. If the Document specifies that a particular numbered
- version of this License "or any later version" applies to it, you
- have the option of following the terms and conditions either of
- that specified version or of any later version that has been
- published (not as a draft) by the Free Software Foundation. If
- the Document does not specify a version number of this License,
- you may choose any version ever published (not as a draft) by the
- Free Software Foundation. If the Document specifies that a proxy
- can decide which future versions of this License can be used, that
- proxy's public statement of acceptance of a version permanently
- authorizes you to choose that version for the Document.
- 11. RELICENSING
- "Massive Multiauthor Collaboration Site" (or "MMC Site") means any
- World Wide Web server that publishes copyrightable works and also
- provides prominent facilities for anybody to edit those works. A
- public wiki that anybody can edit is an example of such a server.
- A "Massive Multiauthor Collaboration" (or "MMC") contained in the
- site means any set of copyrightable works thus published on the MMC
- site.
- "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
- license published by Creative Commons Corporation, a not-for-profit
- corporation with a principal place of business in San Francisco,
- California, as well as future copyleft versions of that license
- published by that same organization.
- "Incorporate" means to publish or republish a Document, in whole or
- in part, as part of another Document.
- An MMC is "eligible for relicensing" if it is licensed under this
- License, and if all works that were first published under this
- License somewhere other than this MMC, and subsequently
- incorporated in whole or in part into the MMC, (1) had no cover
- texts or invariant sections, and (2) were thus incorporated prior
- to November 1, 2008.
- The operator of an MMC Site may republish an MMC contained in the
- site under CC-BY-SA on the same site at any time before August 1,
- 2009, provided the MMC is eligible for relicensing.
- ADDENDUM: How to use this License for your documents
- ====================================================
- To use this License in a document you have written, include a copy of
- the License in the document and put the following copyright and license
- notices just after the title page:
- Copyright (C) YEAR YOUR NAME.
- Permission is granted to copy, distribute and/or modify this document
- under the terms of the GNU Free Documentation License, Version 1.3
- or any later version published by the Free Software Foundation;
- with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
- Texts. A copy of the license is included in the section entitled ``GNU
- Free Documentation License''.
- If you have Invariant Sections, Front-Cover Texts and Back-Cover
- Texts, replace the "with...Texts." line with this:
- with the Invariant Sections being LIST THEIR TITLES, with
- the Front-Cover Texts being LIST, and with the Back-Cover Texts
- being LIST.
- If you have Invariant Sections without Cover Texts, or some other
- combination of the three, merge those two alternatives to suit the
- situation.
- If your document contains nontrivial examples of program code, we
- recommend releasing these examples in parallel under your choice of
- free software license, such as the GNU General Public License, to
- permit their use in free software.
- File: pcl-cvs, Node: Function and Variable Index, Next: Concept Index, Prev: GNU Free Documentation License, Up: Top
- Function and Variable Index
- ***************************
- This is an index of all the functions and variables documented in this
- manual.
|