Next: , Previous: depopulate, Up: Subcommands



6.7 Prcs checkin

— Command: prcs checkin [option ...] [project [file-or-dir ...]]

ADDITIONAL OPTIONS: -r, -u, -j, --version-log

Create a new version of the specified project in the repository. Copy all files listed in the Files attribute of the descriptor (project.prj), taking those specified in file-or-dir operands and the descriptor itself from the working files. Also, modify the descriptor to reflect the contents of the new version. See Descriptors.

If file-or-dir arguments are provided, they must name files and directories listed in the Files attribute. Only those working files are checked in; other files listed in the project descriptor are carried over from the file versions listed for them in the Files attribute. It is an error for these other files to have null internal file identifiers in the .prj file.

A check-in records the access protection on each file (reading it from the working file). It records symbolic links with the :symlink option and empty directories with a :directory option. You could have, for example, a Files attribute as follows:

          (Files
            (empty () :directory)        ; an empty directory
            (pointer () :symlink)        ; a symbolic link
            (realfile () :no-keywords)   ; the only real file in the list
          )
     

Prcs reads the contents of a symbolic link from the link at check-in time. It is thus wise to use relative pathnames inside the project. Directories with a :directory option need not be actually empty, but this ensures their creation at checkout. It is an error to have a :no-keywords option in the same file as a :symlink, or :directory option.

The new version will have the latest minor version number for the specified major version. The -r option may specify a major version; any minor version specified is ignored. The -r option defaults to -r.@, thus taking the major version from the .prj file.

Let LV denote the last minor version on the branch being checked into. A checkin is considered safe if the nearest common ancestor of LV and the working version is LV (see Parent-Version attribute). This is to insure that the version being checked in is a descendant of the version at the head of the branch before checkin. Otherwise, changes at the head of the branch are clobbered. Unless the -f option is present, prcs will warn you if a checkin is not safe and allow you to abort.

With -l present, prcs will list which files are modified, inserted, deleted, or renamed, relative to the real working version prior to checkin. With -L, prcs will list all these changes in addition to listing which files are unmodified.

Returns a status code of 0 if all goes well, and non-zero if there are errors.