/* -*-Mode: C;-*-
* PRCS - The Project Revision Control System
* Copyright (C) 1996, 1997 Josh MacDonald
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* This file was automatically generated by Emacs and the source
* file /home/jmacd/nfs/projects/prcs1/doc/prcs.texi at Sun May 9 17:41:14 2004: DO NOT EDIT.
*/
#include "prcs.h"
#include "syscmd.h"
#include "docs.h"
SystemCommand rcs_command("/usr/bin/rcs", "RCS_PATH");
SystemCommand ci_command("/usr/bin/ci", "RCS_PATH");
SystemCommand co_command("/usr/bin/co", "RCS_PATH");
SystemCommand rlog_command("/usr/bin/rlog", "RCS_PATH");
SystemCommand tar_command("/bin/tar", "RCS_PATH");
SystemCommand gdiff3_command("/usr/bin/diff3", "RCS_PATH");
SystemCommand gdiff_command("/usr/bin/diff", "RCS_PATH");
SystemCommand ls_command("/bin/ls", "RCS_PATH");
SystemCommand gzip_command("/usr/bin/gzip", "RCS_PATH");
const int env_names_count = 10;
const EnvName env_names[] = {
{ "TMPDIR", NULL },
{ "RCS_PATH", NULL },
{ "PRCS_REPOSITORY", NULL },
{ "PRCS_PLAIN_FORMAT", NULL },
{ "PRCS_MERGE_COMMAND", NULL },
{ "PRCS_LOGQUERY", NULL },
{ "PRCS_JOB_NUMBER", NULL },
{ "PRCS_DIFF_OPTIONS", NULL },
{ "PRCS_DIFF_COMMAND", NULL },
{ "PRCS_CONFLICT_EDITOR", NULL }
};
const char options_summary[] =
" - Option: --all\n"
" Used in `prcs execute' to indicate that the specified command is\n"
" to be executed just once, with all files as arguments.\n"
"\n"
" - Option: -d\n"
" - Long Form: --delete\n"
" Tells PRCS to perform some optional deletion action. Used by\n"
" `prcs populate' to indicate that files that are not present in a\n"
" working directory are to be removed from the Files list.\n"
"\n"
" - Standard Option: -f\n"
" - Long Form: --force\n"
" Force: resolve what would normally be interactive queries in\n"
" some fixed way, depending on the subcommand, assuring that PRCS\n"
" will never use the standard input.\n"
"\n"
" - Standard Option: -h\n"
" - Standard Option: -H\n"
" - Long Form: --help\n"
" Prints out help very similar to the contents of this section.\n"
"\n"
" - Option: -i\n"
" - Long Form: --immediate\n"
" Causes certain actions to occur immediately during execution of\n"
" a command. For `prcs uncompress', causes the files in a project\n"
" to be uncompressed on the spot, rather than incrementally as\n"
" they are needed.\n"
"\n"
" - Standard Option: -j number\n"
" - Long Form: --jobs=NUMBER\n"
" Allows PRCS to spawn up to NUMBER child processes at once.\n"
" Almost always, 2 or 3 will result in faster operations and higher\n"
" machine load. Experimentation will yield the best results.\n"
"\n"
" - Option: -k\n"
" - Long Form: --keywords\n"
" Causes `prcs diff' to compare keywords, instead of stripping them\n"
" before comparison.\n"
"\n"
" - Standard Option: -l\n"
" - Long Form: --long-format\n"
" - Standard Option: -L\n"
" - Long Form: --long-long-format\n"
" Various long formats, depending on the subcommand.\n"
"\n"
" - Option: --match pattern\n"
" Used in `prcs execute' to indicate that the names of the files\n"
" to be processed, or the options attached to them, must match\n"
" PATTERN.\n"
"\n"
" - Standard Option: -n\n"
" - Long Form: --no-action\n"
" Indicates that the command is to report what would happen in the\n"
" absence of `-n', without changing working files or the\n"
" repository.\n"
"\n"
" - Option: -N\n"
" - Long Form: --new\n"
" In `prcs diff', produces comparisons against empty (\"new\") files\n"
" where a file is missing in one of the versions being compared.\n"
" If you intend to use the -N option and later apply the diffs you\n"
" should make sure to always use one of the context diff formats.\n"
" See the PRCS_DIFF_OPTIONS environment variable *Note Environment\n"
" Variables::.\n"
"\n"
" - Option: --no-keywords\n"
" Causes `prcs populate' to add all files with the :no-keywords\n"
" attribute.\n"
"\n"
" - Option: --not pattern\n"
" Used in `prcs execute' to indicate that the names of files to be\n"
" processed, or the options attached to them, must not match\n"
" PATTERN.\n"
"\n"
" - Option: --pipe\n"
" Causes `prcs execute' to supply file data as the standard input.\n"
"\n"
" - Option: -p\n"
" - Long Form: --preserve, -@b{-}preserve-permissions,\n"
" -@b{-}permissions\n"
" Preserve permissions on files that are checked out, ignoring any\n"
" standard protections the user may have set for newly-created\n"
" files (as by the file mode creation mask in UNIX).\n"
"\n"
" - Option: -P\n"
" - Long Form: --exclude-project-file\n"
" Prevent situations where the project file may be treated as an\n"
" ordinary file. For example, this causes `prcs diff' not to\n"
" output changes in the project files of each version.\n"
"\n"
" - Standard Option: --plain-format\n"
" Turns off PRCS's default formatting of its output, which is to\n"
" break lines at the screen width and surround filenames with\n"
" single quotes. Setting the PRCS_PLAIN_FORMAT environment\n"
" variable has the same effect (*note Environment Variables::).\n"
"\n"
" - Option: --pre\n"
" Used in `prcs execute' to indicate that directories are to be\n"
" listed in pre-order: directory names first, then their\n"
" non-directory contents, then subdirectories.\n"
"\n"
" - Standard Option: -q\n"
" - Long Form: --quiet\n"
" Suppress normal informational messages.\n"
"\n"
" - Option: -r version\n"
" - Long Form: --revision=VERSION\n"
" Identifies a version of a project. The VERSION is a version\n"
" specifier. *Note Version Names and Specifiers::. The space\n"
" between `-r' and VERSION is optional.\n"
"\n"
" - Standard Option: -R directory\n"
" - Long Form: --repository=DIRECTORY\n"
" Use DIRECTORY as the repository, ignoring the value of the\n"
" `PRCS_REPOSITORY' environment variable.\n"
"\n"
" - Standard Option: -s\n"
" - Long Form: --skilled-merge\n"
" Turn off most of the safety features of `prcs merge', allowing a\n"
" skilled user finer control over the process. *Note merge::.\n"
"\n"
" - Option: --sort=TYPE\n"
" Set the type of sorting for the info command to perform on its\n"
" output. The two valid values for TYPE are `version' and `date'.\n"
" The default is VERSION.\n"
"\n"
" - Option: -u\n"
" - Long Form: --unlink\n"
" When PRCS writes a working file or the project file, it\n"
" generally does so by replacing any existing file of that name.\n"
" With this option, however, if the file to be written is a\n"
" symbolic link, that link is removed and a new file is created.\n"
" Thus, the file that was originally linked to is unchanged.\n"
"\n"
" - Standard Option: -v\n"
" - Long Form: --version\n"
" Prints the version of PRCS and exits.\n"
"\n"
" - Option: --version-log=NEW VERSION LOG\n"
" Causes `prcs checkin' to set the Version-Log on the command line.\n"
" You will be prompted if there is an existing New-Version-Log\n"
" already. This option overrides the PRCS_LOGQUERY environment\n"
" variable.\n"
"\n"
" - Option: -z\n"
" - Long Form: --compress\n"
" Indicates that a command should perform (de)compression.\n"
;
const char checkout_help_string[] =
" - Command: prcs checkout [option ...] [project [file-or-dir ...]]\n"
" ADDITIONAL OPTIONS: `-r', `-p', `-u', `-P'\n"
"\n"
" Create a working copy of a version of the specified files and\n"
" directories in PROJECT rooted in the current directory (creating\n"
" any subdirectories that don't exist). You may use the option\n"
" `-r' to select a version. The default major and minor version\n"
" specifiers are both `@'.\n"
"\n"
" You will be warned when a check-out would change the contents of\n"
" an existing working file, and interactively given the choice of\n"
" replacing the file with the version being checked out, or\n"
" leaving the existing file alone. Existing working files that do\n"
" not differ from corresponding project files are not modified\n"
" (their changed and modified dates do not change). The `-f'\n"
" option will cause checkout to overwrite all files that differ\n"
" without asking.\n"
"\n"
" When PRCS overwrites a working file that is a symbolic link,\n"
" then (unless the `:symlink' option is specified for that file),\n"
" it will overwrite the file that the link references, without\n"
" changing the link itself. With the `-u' option, PRCS will\n"
" instead remove the link and create a new file.\n"
"\n"
" If a working project-version descriptor for PROJECT exists, then\n"
" the project-version descriptor is treated as an ordinary file\n"
" for purposes of check-out. A check-out with a non-defaulted\n"
" FILE-OR-DIR list that does not contain the descriptor therefore\n"
" leaves the descriptor unchanged. Further, if the `-P' option is\n"
" supplied, the project descriptor will not be created at all.\n"
"\n"
" Files that are checked out are restored to the protections\n"
" recorded for them at check-in time, usually modified (on UNIX\n"
" systems) by the user's file mode creation mask (see the UNIX\n"
" manual entry for umask(1)). With the `-p' option, this mask is\n"
" ignored, and the command restores the files' protections to\n"
" exactly their state at check-in.\n"
"\n"
" Returns a status code of 0 if all goes well, and non-zero if\n"
" there are errors.\n"
;
const char populate_help_string[] =
" - Command: prcs populate [option ...] [project [file-or-dir ...]]\n"
" ADDITIONAL OPTIONS: `-d', `-u', `--no-keywords'\n"
"\n"
" Add each file in the FILE-OR-DIR list to the Files list of the\n"
" `.prj' file identified by PROJECT, without modifying the\n"
" repository. For each directory in FILE-OR-DIR, recursively adds\n"
" all files in that directory structure (or the directory itself,\n"
" if it is empty). The FILE-OR-DIR operand list defaults to the\n"
" current directory.\n"
"\n"
" Without the `-d' option, any files already in the Files list\n"
" remain there unchanged. With `-d', populate will prompt you\n"
" about removing files from the Files list that are listed there\n"
" as appearing under one of the directories given in the\n"
" FILE-OR-DIR list, but are not found in the working directory.\n"
" With `-d' and `-f', it will remove them silently.\n"
"\n"
" For example, suppose the file `P.prj' lists files `C', `D1/A',\n"
" `D1/B', `D2/A', `D2/B'. Suppose a working directory contains\n"
" files `A', `D1/B', and `D2/B'. Then the command\n"
"\n"
" prcs populate -d P\n"
"\n"
" would remove files `C', `D1/A', and `D2/A' from the Files list\n"
" of `P.prj', and add file `A'. For the same initial `P.prj'\n"
" file, the command\n"
"\n"
" prcs populate -d P D1\n"
"\n"
" would remove `D1/A' from `P.prj', and would add nothing.\n"
"\n"
" New files are added with null internal file identifiers.\n"
" Populate attempts to fill in the `:symlink' and `:directory'\n"
" options. It also applies a heuristic test to each file added to\n"
" guess whether it is a non-text file; for each file it judges to\n"
" be a non-text file, it includes the `:no-keywords' option for\n"
" that file (*note Files attribute::).\n"
"\n"
;
const char depopulate_help_string[] =
" - Command: prcs depopulate [option ...] [project [file-or-dir ...]]\n"
" ADDITIONAL OPTIONS: `-u'\n"
"\n"
" Remove each file in the FILE-OR-DIR list from the Files list of\n"
" the `.prj' file identified by PROJECT, without modifying the\n"
" repository. For each directory in FILE-OR-DIR, recursively\n"
" removes all files in that directory structure (or the directory\n"
" itself, if it is empty). The FILE-OR-DIR operand list defaults\n"
" to the current directory, but since removing all files is\n"
" probably not something the user wants to do, it queries first if\n"
" no FILE-OR-DIR is supplied.\n"
"\n"
;
const char checkin_help_string[] =
" - Command: prcs checkin [option ...] [project [file-or-dir ...]]\n"
" ADDITIONAL OPTIONS: `-r', `-u', `-j', `--version-log'\n"
"\n"
" Create a new version of the specified project in the repository.\n"
" Copy all files listed in the Files attribute of the descriptor\n"
" (`PROJECT.prj'), taking those specified in FILE-OR-DIR operands\n"
" and the descriptor itself from the working files. Also, modify\n"
" the descriptor to reflect the contents of the new version.\n"
" *Note Descriptors::.\n"
"\n"
" If FILE-OR-DIR arguments are provided, they must name files and\n"
" directories listed in the Files attribute. Only those working\n"
" files are checked in; other files listed in the project\n"
" descriptor are carried over from the file versions listed for\n"
" them in the Files attribute. It is an error for these other\n"
" files to have null internal file identifiers in the `.prj' file.\n"
"\n"
" A check-in records the access protection on each file (reading\n"
" it from the working file). It records symbolic links with the\n"
" `:symlink' option and empty directories with a `:directory'\n"
" option. You could have, for example, a Files attribute as\n"
" follows:\n"
"\n"
" (Files\n"
" (empty () :directory) ; an empty directory\n"
" (pointer () :symlink) ; a symbolic link\n"
" (realfile () :no-keywords) ; the only real file in the list\n"
" )\n"
"\n"
" PRCS reads the contents of a symbolic link from the link at\n"
" check-in time. It is thus wise to use relative pathnames inside\n"
" the project. Directories with a `:directory' option need not be\n"
" actually empty, but this ensures their creation at checkout. It\n"
" is an error to have a `:no-keywords' option in the same file as\n"
" a `:symlink', or `:directory' option.\n"
"\n"
" The new version will have the latest minor version number for the\n"
" specified major version. The `-r' option may specify a major\n"
" version; any minor version specified is ignored. The `-r' option\n"
" defaults to `-r.@', thus taking the major version from the\n"
" `.prj' file.\n"
"\n"
" Let LV denote the last minor version on the branch being checked\n"
" into. A checkin is considered \"safe\" if the nearest common\n"
" ancestor of LV and the working version is LV (*note\n"
" Parent-Version attribute::). This is to insure that the version\n"
" being checked in is a descendant of the version at the head of\n"
" the branch before checkin. Otherwise, changes at the head of\n"
" the branch are clobbered. Unless the `-f' option is present,\n"
" PRCS will warn you if a checkin is not safe and allow you to\n"
" abort.\n"
"\n"
" With `-l' present, PRCS will list which files are modified,\n"
" inserted, deleted, or renamed, relative to the real working\n"
" version prior to checkin. With `-L', PRCS will list all these\n"
" changes in addition to listing which files are unmodified.\n"
"\n"
" Returns a status code of 0 if all goes well, and non-zero if\n"
" there are errors.\n"
;
const char diff_help_string[] =
" - Command: prcs diff [option ...] [project [file-or-dir ...]] [--\n"
" [diff-option ...]]\n"
" ADDITIONAL OPTIONS: `-r' (once or twice), `-k', `-N', `-P'\n"
"\n"
" Compare the (partial) contents of two repository versions of a\n"
" project or of a repository version and a working version. When\n"
" FILE-OR-DIR arguments are present, they restrict comparison to\n"
" the specified files or subdirectory trees. The PROJECT argument\n"
" may be defaulted if there is a single file with extension `.prj'\n"
" in the current working directory, in which case PRCS takes its\n"
" name (without `.prj') as the project name.\n"
"\n"
" The OPTIONs may specify zero, one, or two versions (using `-r'\n"
" options). Specifying no `-r' options is equivalent to supplying\n"
" the single option `-r.', the version from which the current\n"
" working directory was checked out. A `-r' option that specifies\n"
" only a major version (leaving off the minor version and its\n"
" preceding period) implicitly has a minor version of `@'. When\n"
" one version specifier is given, the files in the indicated\n"
" version are compared to the working files. The command's output\n"
" notes any discrepancies in the contents of identically-named\n"
" files, or in files present in one version but not the other. Two\n"
" version specifiers cause the same comparison, but between two\n"
" checked-in versions of the project.\n"
"\n"
" Normally, `diff' canonicalizes keyword instances in the files it\n"
" compares, removing the keyword values and leaving just the\n"
" keyword name. As a result, two different versions of a file\n"
" that differ only in their keyword values will compare as equal.\n"
" The `-k' option causes `diff' to compare keyword values as well.\n"
"\n"
" If a file is present only in one of the project versions being\n"
" compared, `diff' will normally just announce that such a file\n"
" occurs only in one of the versions. With the `-N' option, it\n"
" will produce the same output it would if it instead treated the\n"
" non-existent version as an empty file. This is useful when\n"
" producing patch files that include new files as well as changed\n"
" ones. Its effect is essentially the same as that of the same\n"
" option in GNU `diff' when it compares directories.\n"
"\n"
" Files in the two versions being compared are paired by their\n"
" names and their internal-file families (see *Note Files\n"
" attribute::, for a description of internal-file families). That\n"
" is, PRCS will assume that two files in the different versions\n"
" correspond if they have the same name or the same internal-file\n"
" family. This makes it possible to have conflicts (for example,\n"
" when one switches the names of two files in a project\n"
" descriptor); in those cases PRCS will ask the user to resolve\n"
" the conflict.\n"
"\n"
" The DIFF-OPTIONS, if provided, are any options acceptable to GNU\n"
" `diff'. *Note (diff)Top::. The environment variable\n"
" `PRCS_DIFF_OPTIONS', if set, supplies a default set of whitespace\n"
" separated DIFF-OPTIONS.\n"
"\n"
" If the FILE-OR-DIR is defaulted and `-P' is not supplied, or if\n"
" FILE-OR-DIR contains the project descriptor, PRCS outputs\n"
" differences between project descriptors.\n"
"\n"
" Returns a status code of 0 if there were no differences, 1 if\n"
" there were differences, and 2 if there were problems.\n"
;
const char merge_help_string[] =
" - Command: prcs merge [option ...] [project [file-or-dir ...]]\n"
" ADDITIONAL OPTIONS: `-r', `-u', `-s'\n"
"\n"
" Find differences between working files and those of the selected\n"
" version of PROJECT, and (unless `-n' is specified) try to modify\n"
" the working files to reconcile them. The default major and minor\n"
" versions are `-r.@'.\n"
"\n"
" More precisely, the comparison takes place between three\n"
" versions of PROJECT: the working version (called PW in what\n"
" follows), the \"common version\" (PC) and the \"selected version\"\n"
" (PS).\n"
"\n"
" PW is the working version specified in the checked-out\n"
" descriptor and consists of all files listed therein. PS is the\n"
" version against which PRCS will reconcile changes, identified by\n"
" the (possibly defaulted) `-r' option. A common version is\n"
" chosen according to the following algorithm:\n"
"\n"
" Each version, including the working version, has a list of parent\n"
" versions. The parent versions establish an ancestry graph that\n"
" is directed and contains no cycles. A version is an ancestor of\n"
" another if it can be reached by following zero or more parents\n"
" (see *Note Parent-Version attribute:: and *Note Merge-Parents\n"
" attribute::). PC is chosen from the set of all versions that\n"
" are ancestors of PW and PS. If amongst this intersection, there\n"
" exists a unique nearest common ancestor, then it is PC. If there\n"
" is no such version, PRCS will complain and ask the user for help.\n"
"\n"
" Files in the three versions are matched up both by name and by\n"
" internal-file family (*note Files attribute::). That is, PRCS\n"
" will assume that two files in different versions correspond if\n"
" they have the same name or the same internal-file family. This\n"
" makes it possible to have conflicts (for example, when one\n"
" switches the names of two files in a project descriptor); in\n"
" those cases PRCS will ask the user to resolve the conflict.\n"
"\n"
" A `prcs merge' will report discrepancies and (unless `-n' is\n"
" specified) take actions as directed. The possible actions are as\n"
" follows.\n"
"\n"
" `n'\n"
" Do nothing.\n"
"\n"
" `a'\n"
" Add the file from PS to PW.\n"
"\n"
" `r'\n"
" Replace the working file with the file from PS.\n"
"\n"
" `d'\n"
" Delete the file from PW.\n"
"\n"
" `m'\n"
" Merge the file from PS with that from PW, inserting markers\n"
" into the merged working file to show where the changes in PW\n"
" (relative to PC) and those in the version from PS overlap.\n"
" If the file from PC is missing, then an empty file is used\n"
" for its contents. In general, you will have to edit the\n"
" working file to resolve the discrepancies. If the versions\n"
" in PS and PW are identical aside from keyword values,\n"
" merging has no effect.\n"
"\n"
" `?'\n"
" Print summary of options.\n"
"\n"
" `h'\n"
" Print explanatory help message.\n"
"\n"
" `v'\n"
" View differences between PS, PC, and PW (there is further\n"
" prompting for which you want compared).\n"
"\n"
" The `-f' option causes default actions to each discrepancy (see\n"
" below). Otherwise, PRCS will ask the user to specify one of the\n"
" possible actions. All of the actions except `n' modify the\n"
" descriptor, either to remove the file from the Files list, or to\n"
" modify its internal file identifier to the one from PS.\n"
"\n"
" Like `prcs diff', `prcs merge' canonicalizes files to strip\n"
" keyword values before comparing them for discrepancies (*note\n"
" diff::). In the descriptions that follow, saying that files are\n"
" \"equivalent\" means that they are identical when canonicalized.\n"
"\n"
" PRCS detects the following discrepancies:\n"
"\n"
" * Files present in PC and absent in PW. The default action\n"
" is `n'. That is, the files are assumed to be obsolete,\n"
" regardless of their status in PS.\n"
"\n"
" * Files present in PC and PW, and absent in PS. The default\n"
" action is `d'. That is, the files are assumed to be\n"
" obsolete.\n"
"\n"
" * Files present in PC, PS, and PW, equivalent in PC and PW,\n"
" and different in PS. The default action is `r'. That is,\n"
" the version in PS is assumed to be most up-to-date.\n"
"\n"
" * Files present in PC, PS, and PW, and different in all three.\n"
" The default action is `m'. There have been independent\n"
" changes in both PW and PS.\n"
"\n"
" * Files absent in PC, and different in PW and PS. The\n"
" default action is `m'.\n"
"\n"
" * Files absent in PC and PW, and present in PS. The default\n"
" action is `a'.\n"
"\n"
" * PRCS takes no action in other cases, and does not prompt\n"
" the user.\n"
"\n"
" When PRCS overwrites a working file that is a symbolic link,\n"
" then (unless the `:symlink' option is specified for that file),\n"
" it will overwrite the file that the link references, without\n"
" changing the link itself. With the `-u' option, PRCS will\n"
" instead remove the link and create a new file.\n"
"\n"
" Whenever PRCS is going to replace a working file as a result of\n"
" one of the actions above, it first moves the original file into\n"
" the `obsolete' directory and gives it a unique name.\n"
"\n"
" A partial merge takes place when not all files in the three\n"
" versions are considered for merging. This can happen if a merge\n"
" is aborted or the FILE-OR-DIR option limits the files under\n"
" consideration. When this happens, PRCS records which files have\n"
" been merged and their names in the working project's\n"
" New-Merge-Parents attribute (*note Merge-Parents attribute::).\n"
"\n"
" A merge is considered _complete_ when each file in each version\n"
" has been considered once. A complete merge may be achieved by\n"
" several partial merges. To prevent reconsidering the same file\n"
" more then once, PRCS will not consider any set of files\n"
" containing a file that was already considered in a previous\n"
" merge against the same selected version unless the `-s' option\n"
" is specified.\n"
"\n"
" In general, the `-s' option allows the user to turn off all the\n"
" safety features built into `prcs merge'. It will allow a user to\n"
" merge files more than once, override the choice of an effective\n"
" working version, restart a complete merge, and start a new merge\n"
" without completing a previous merge.\n"
"\n"
" By default, PRCS uses the GNU diff3 command to perform 2- or\n"
" 3-way file merges when you choose the `m' action (*note\n"
" (diff)top::). It is possible, however, to supply your own merge\n"
" command. By setting the `PRCS_MERGE_COMMAND' environment\n"
" variable to a program name, PRCS will call the named command\n"
" instead of diff3 (*note Environment Variables::).\n"
"\n"
;
const char rekey_help_string[] =
" - Command: prcs rekey [option ...] [project [file-or-dir ...]]\n"
" ADDITIONAL OPTIONS: `-u'\n"
"\n"
" Replace keywords in the selected files, according to the version\n"
" named in the project file. Files whose contents would not\n"
" change under keyword substitution are not modified. With the\n"
" `-n' option, simply reports files that will change as a result\n"
" of keyword replacement. *Note Keywords::.\n"
"\n"
" When PRCS overwrites a working file that is a symbolic link,\n"
" then (unless the `:symlink' option is specified for that file),\n"
" it will overwrite the file that the link references, without\n"
" changing the link itself. With the `-u' option, PRCS will\n"
" instead remove the link and create a new file.\n"
"\n"
" You can use this command to update keywords in working files\n"
" after performing a `prcs checkin', which does not modify keyword\n"
" values.\n"
;
const char info_help_string[] =
" - Command: prcs info [option ...] [project [file-or-dir ...]]\n"
" ADDITIONAL OPTIONS: `-r', `--sort'\n"
"\n"
" Print information about versions of the named project. For each\n"
" version listed, prints the project name, major and minor version\n"
" identifiers, date and time checked in, and the user who checked\n"
" in the version. With the `-l' option, also prints out the\n"
" version logs and each project description. With `-L', also\n"
" prints out the files constituting the version, their attributes,\n"
" and their unkeyed MD5 checksum; the FILE-OR-DIR options in this\n"
" case restrict the files or directories that are listed.\n"
"\n"
" The `-r' option is special in this command in that it may contain\n"
" any of the shell filename-generation pattern characters defined\n"
" for the Bourne shell, `sh': `*', which matches any string of 0\n"
" or more characters; `?', which matches any single character;\n"
" `[...]', which matches any of the enclosed characters; and\n"
" `[!...]', which matches any character except one of the enclosed\n"
" characters. These special pattern characters must be escaped to\n"
" get them past the shell. The default for both the major and\n"
" minor versions is `*'. The `-r' option is still interpreted as\n"
" a separate major and minor version; that is, `-rFoo.*' matches\n"
" `Foo.1', but not `Foo.Bar.1'.\n"
"\n"
" The `--sort=TYPE' option sets the type of sorting that the info\n"
" command should use. If TYPE is `date', versions are sorted by\n"
" individual version date, otherwise the default, `version', is to\n"
" sort by major version creation date.\n"
;
const char changes_help_string[] =
" - Command: prcs changes [option ...] [project [file-or-dir ...]]\n"
" ADDITIONAL OPTIONS: `-r' (once or twice), `-l'\n"
"\n"
" The changes subcommand helps you find what versions modify a\n"
" specific file or files. For example, suppose you fixed a bug a\n"
" long time ago and now it shows up again in the current version.\n"
" You would like to know what project versions modify a certain\n"
" file so you can find out who undid your bug-fix and blame them!\n"
"\n"
" Like `prcs diff', the OPTIONs may specify zero, one, or two\n"
" versions (using `-r' options). Specifying no `-r' options is\n"
" equivalent to supplying the single option `-r.', the version from\n"
" which the current working directory was checked out. A `-r'\n"
" option that specifies only a major version (leaving off the\n"
" minor version and its preceding period) implicitly has a minor\n"
" version of `@'. When one version specifier is given, only that\n"
" version is scanned for changes. Two version specifiers cause a\n"
" range of versions to be scanned. In the two version case, one\n"
" version must be an ancestor of the other, and reversing the\n"
" order of the two versions will reverse the order of the output.\n"
"\n"
" When FILE-OR-DIR arguments are present, they restrict the change\n"
" report to the specified files or subdirectory trees. Otherwise\n"
" all files are reported.\n"
"\n"
" For each specified version that modifies a file (in the\n"
" reporting set) relative to one of its parent versions, `changes'\n"
" prints the project name, major and minor version identifiers,\n"
" date and time checked in, and the user who checked in the\n"
" version. Then it prints the parent version and a listing of all\n"
" the selected files that were modified, including: addition,\n"
" deletion, rename, type change, symlink change, or version\n"
" change. For regular files, `changes' also prints the number of\n"
" lines added and removed by the modification. If a project\n"
" version does not modify any of the selected files, nothing is\n"
" printed.\n"
"\n"
" When the `-l' option is present, `changes' also prints the\n"
" version-log associated with each version.\n"
"\n"
;
const char admin_compress_help_string[] =
" - Subfunction: compress [project]\n"
" Encourages PRCS to save space in storing the data for PROJECT,\n"
" even at the expense of slower processing. This command may take\n"
" some time to execute. Interrupting it in the middle is safe,\n"
" although it may lead to somewhat erratic space-saving behavior.\n"
;
const char admin_uncompress_help_string[] =
" - Subfunction: uncompress [option] [project]\n"
" ADDITIONAL OPTIONS: `-i'\n"
"\n"
" Encourages PRCS to save time in processing commands against\n"
" PROJECT, even at the expense of using more space--perhaps\n"
" considerably more. With the `-i' option, PRCS will immediately\n"
" expand the entire representation of PROJECT. Without the `-i'\n"
" option, PRCS will increase its use of space only as needed. If\n"
" disk space should run out, PRCS will leave the repository in a\n"
" correct state.\n"
;
const char admin_access_help_string[] =
" - Subfunction: access [project]\n"
" With the optional operand, interactively sets read and write\n"
" permissions to all versions of PROJECT, in the repository, and\n"
" (on systems that provide it) sets the group to which the files\n"
" belong. This command allows the owner of a project in a\n"
" repository to restrict the access that others have to its\n"
" contents. One can specify that these files may only be read or\n"
" may not be accessed at all.\n"
"\n"
" Without a PROJECT operand, interactively sets read and write\n"
" permissions to the repository itself, both for members of the\n"
" repository directory's group, and for all other users. One must\n"
" have at least read access to the repository to look at or check\n"
" out any project (in addition to having appropriate access to the\n"
" project itself). You must have write access to the repository to\n"
" create new projects in it.\n"
;
const char admin_rebuild_help_string[] =
" - Subfunction: rebuild [option ...] [project]\n"
" Rebuilds internal repository data on PROJECT, possibly removing\n"
" file storage for deleted project versions and verifying the\n"
" integrity of all project versions. With the `-l' option, reports\n"
" deletions. Unless there has been damage to the repository, this\n"
" command generally has no visible effect on the notional contents\n"
" of the repository.\n"
;
const char admin_init_help_string[] =
" - Subfunction: init project\n"
" Create a new project in the repository containing no (non-empty)\n"
" versions. Performing a `prcs checkout' on a non-existent\n"
" project creates a blank working project descriptor without\n"
" modifying the repository. The first `prcs checkin' for that\n"
" project then creates a new entry in the repository. Normally, no\n"
" other explicit initialization for the project's entry in the\n"
" repository is necessary. However, with this method it is\n"
" impossible to perform a `prcs access' before the first check-in,\n"
" because there is no record of the new project in the repository.\n"
" With `prcs init', you can create a repository entry (containing\n"
" no versions) that you can modify with `prcs access'.\n"
;
const char admin_pdelete_help_string[] =
" - Subfunction: pdelete project\n"
" Deletes a repository entry, permanently removing all versions\n"
" and data from the repository.\n"
"\n"
;
const char admin_pinfo_help_string[] =
" - Subfunction: pinfo\n"
" Lists all projects in the repository.\n"
"\n"
;
const char admin_prename_help_string[] =
" - Subfunction: prename project\n"
" Renames a repository entry, similar to renaming during `prcs\n"
" unpackage'.\n"
"\n"
;
const char config_help_string[] =
" - Command: prcs config\n"
" Print out all compiled-in values and their values, possibly\n"
" altered by environment variables or command-line arguments.\n"
" Also verifies that the executables named by `$RCS_PATH', or its\n"
" compiled-in default, are valid and checks their version numbers\n"
" to see that they are not outdated.\n"
;
const char package_help_string[] =
" - Command: prcs package project packagedfile\n"
" ADDITIONAL OPTIONS: `-z'\n"
"\n"
" Creates a plain file named PACKAGEDFILE, containing all the data\n"
" in PROJECT. A value of `-' for PACKAGEDFILE denotes the\n"
" standard output. With `-z', the output file is compressed (in\n"
" gzip format).\n"
;
const char unpackage_help_string[] =
" - Command: prcs unpackage packagedfile [project]\n"
" Creates PROJECT in the repository to be a copy of the project\n"
" from which PACKAGEDFILE was created. The file PACKAGEDFILE must\n"
" have been created by `prcs package' (with or without the `-z'\n"
" option). If PROJECT is omitted, it defaults to the name of the\n"
" project from which PACKAGEDFILE was created. If PROJECT exists\n"
" in the repository, the user is prompted to delete the old copy\n"
" from the repository. A value of `-' for PACKAGEDFILE denotes\n"
" the standard input. With `-n', it merely reports the name of\n"
" the project that would be added.\n"
"\n"
" If PROJECT differs from the original name as stored in\n"
" PACKAGEDFILE, the project is renamed. Renaming a project\n"
" revises the history of the project; the result is as if the\n"
" project had always been named PROJECT, with one exception: When\n"
" checked out, project descriptor will have a comment inserted\n"
" making note of the original project name.\n"
;
const char execute_help_string[] =
" - Command: prcs execute [option ...] [project [file-or-dir ...]] [--\n"
" command [arg ...]]\n"
" ADDITIONAL OPTIONS: `-r', `-P', `--pre', `--all', `--pipe'\n"
" `--match PATTERN', `--not PATTERN'\n"
"\n"
" Execute `COMMAND ARG ...,' suitably modified as described below,\n"
" for the name of each file and directory in FILE-OR-DIR in the\n"
" specified version, filtered by any `--match' and `--not'\n"
" operators as described below. This elaborate command is\n"
" intended to facilitate efficient, open-ended extension of the\n"
" functions of PRCS. Each directory, whether or not explicitly\n"
" named in the project, is included once, either in pre- or\n"
" post-order.\n"
"\n"
" With the `--all' option, COMMAND is executed once. Otherwise,\n"
" it is executed once per file name.\n"
"\n"
" The PATTERN options filter the selected files. To be selected,\n"
" the entry in the Files attribute for a given file must satisfy\n"
" the `--match' pattern (if any) and not satisfy the `--not'\n"
" pattern, if any. Each pattern is a regular expression; an entry\n"
" satisfies the pattern if either the name or any of the `:'\n"
" options matches the pattern.\n"
"\n"
" For each execution of COMMAND, PRCS first replaces the following\n"
" strings wherever they appear in COMMAND and in each ARG:\n"
"\n"
" `{}'\n"
" Replaced by the name of the file. With the `--all' option,\n"
" replaced by the sequence of all selected file names,\n"
" separated by \"unquoted blanks\" (that is, blanks that divide\n"
" the replacement string into separate arguments).\n"
"\n"
" `{options}'\n"
" Replaced by a string consisting of all colon-options\n"
" applicable to the file (*note Files attribute::), separated\n"
" by \"quoted blanks\" (that is, blanks that do not divide the\n"
" replacement string into separate arguments). If a\n"
" directory is not explicitly named in the project file, it\n"
" is listed with a `:implicit-directory' option, whether or\n"
" not it appears separately in the Files attribute. These\n"
" directories appear whether or not the files containing them\n"
" were on the command line (otherwise, it would be impossible\n"
" to get just the directories). The project file is included\n"
" with the `:project-file' attribute. With the `--all'\n"
" option, all of these colon-option strings are concatenated\n"
" together, with the strings for different files separated by\n"
" unquoted blanks.\n"
"\n"
" `{file}'\n"
" The name of a file containing the contents of the\n"
" appropriate version of the file. Unless the internal file\n"
" identifier is null (which can only happen when there is no\n"
" `-r' option, so that the working version is specified),\n"
" this is the name of a temporary file containing a\n"
" checked-out copy of the appropriate version, which is\n"
" deleted after COMMAND completes. With a null internal file\n"
" identifier, `{file}' is the same as `{}'. It is the empty\n"
" string for a directory or a file carrying the `:symlink'\n"
" option. With the `--all' option, all of these file names\n"
" are concatenated together, separated by unquoted blanks.\n"
"\n"
" (In contexts where curly braces are special to your shell, you\n"
" will have to escape them.) After these substitutions, PRCS\n"
" invokes COMMAND, which must be an executable file. It looks for\n"
" COMMAND in the same directories as the shell (using the PATH\n"
" environment variable). When `--' and what follows are omitted,\n"
" they default to\n"
"\n"
" -- /bin/echo {}\n"
"\n"
" which simply echoes the names of all files and directories in the\n"
" selected version, one per line.\n"
"\n"
" One small glitch: `prcs execute' uses the current directory in\n"
" effect when it is invoked as the current directory seen by\n"
" COMMAND. This is true, even when the PROJECT operand specifies\n"
" a subdirectory. For example,\n"
"\n"
" % cd /usr/users/foo\n"
" % prcs execute D/P -- pwd\n"
"\n"
" will print `/usr/users/foo' once for each file listed in\n"
" `/usr/users/foo/D/P.prj', and not `/usr/users/foo/D', as the\n"
" general description of the PROJECT operand might otherwise\n"
" suggest (*note Specifying Projects::). This allows you to do\n"
" something like the following:\n"
"\n"
" % ln -s . P-1.0\n"
" % tar -cvf P-1.0.tar `prcs execute --not :.*directory P-1.0`\n"
"\n"
" for making tarfiles containing all files in a project in an\n"
" appropriately named subdirectory for distribution.\n"
"\n"
" If the `--pipe' option is present, then the contents of the file\n"
" (as would be contained in the file named by `{file}') is\n"
" supplied as the standard input. The `--pipe' and `--all'\n"
" options are incompatible. Any ARG whose replacement contains\n"
" unquoted blanks (introduced by the `--all' option) is divided at\n"
" those blanks into separate arguments (even in the case where\n"
" substitution results in a null string, that null string will be\n"
" broken out as a separate argument). Each of the resulting\n"
" arguments, is passed directly to the program specified by\n"
" COMMAND as a single string, with no further processing by any\n"
" shell.\n"
"\n"
" With the `--all' option, PRCS will invoke COMMAND only once.\n"
" The order of the lists of arguments replacing each pattern in\n"
" COMMAND is consistent, so that, for example, the options for the\n"
" first file name in the replacement for `{}' is the first string\n"
" in the replacement for `{options}'. For example, if a project\n"
" contains the files `A', `B/Q', and `B/R', then\n"
"\n"
" prcs execute --all . -- foo -a{}-b \"{options}\"\n"
"\n"
" will execute (in effect) the single command\n"
"\n"
" foo -aA B/Q B/R B-b \"\" \"\" \"\" \":directory\"\n"
"\n"
" With the `--pre' (for pre-order) option the directory name is\n"
" listed first, then the non-directory file names within that\n"
" directory, then the subdirectories and their contents.\n"
" Otherwise, subdirectories and their contents are listed first,\n"
" then the names of its non-directory files, then the name of the\n"
" directory itself.\n"
"\n"
" With `-n', the command prints the commands that will be executed\n"
" without actually executing them.\n"
;
const char delete_help_string[] =
" - Command: prcs delete `-r' version project\n"
" Delete the indicated version of PROJECT. It will no longer be\n"
" possible to retrieve the given version. Therefore, this is a\n"
" command that you should use very sparingly, if at all.\n"
"\n"
" Deleting a version does not necessarily release the space used\n"
" by the files it contains, since these may be mentioned in other\n"
" versions. At various times, PRCS will note what space can\n"
" actually be released and do so.\n"
"\n"
" Minor version numbers increase monotonically, regardless of\n"
" deletions, and are never re-used.\n"
;
const char general_help_string[] =
"Possible commands are:\n"
" admin Requires subcommand (`prcs admin --help' for help).\n"
" checkin Checkin project revision.\n"
" checkout Checkout project revision.\n"
" config Verify compiled in paths, defaults, and environment\n"
" variables.\n"
" delete Delete named revision of project.\n"
" depopulate Remove named files from project descriptor.\n"
" diff Show differences between two revisions.\n"
" execute Execute a command for each file in a project.\n"
" info Print information about versions of project.\n"
" merge Reconcile differences between working files and\n"
" another revision.\n"
" package Package the project and all its revisions into\n"
" packagefile.\n"
" populate Add named files to project descriptor.\n"
" rekey Set keywords in selected files.\n"
" unpackage Unpackage project in packagefile.\n"
"Use the --help option with a command for further help.\n"
;
const char admin_help_string[] =
"Possible subcommands are:\n"
" access Set the access permissions on the repository.\n"
" compress Instruct PRCS to save disk space for project.\n"
" init Create a repository entry.\n"
" pdelete Delete a repository entry.\n"
" prename Rename a repository entry.\n"
" rebuild Instruct PRCS to reconstruct its data files in the\n"
" repository. This command is helpful if the repository\n"
" has been damaged or PRCS has reported an error due to\n"
" and RCS command failure or missing version data.\n"
" uncompress Instruct PRCS to save time in processing project(default).\n"
"Use the --help option with a command for further help.\n"
;
syntax highlighted by Code2HTML, v. 0.9.1