3.10. Controlling the Project State Cache

In order to speed up the building of projects and displaying information about the version control status of packages, prjm keeps a state cache (usually in the file .checkpoint). This cache contains fingerprints for all the packages (which are used to determine if anything in the package directory has changed since the last inspection) and a set of attributes which (when set) may be used to omit several time-consuming operations. The setting of these attributes is carefully controlled, and always chosen to be `on the safe side' for all attributes except those indicating up-to-date and no conflicts. To clean these cached attributes, you can use

  prjm -purgeunsureversioninfo
This action will be executed by prjm anyway if you want to check for out-of-date and conflicting packages, unless the -lazy option is specified, too. (This is different from the behaviour of ComPactHTTPd, which does not recompute these attributes for every display.)

You may also throw away all cached build information and thus make prjm issue new build and ship commands for every package on the next build run:

  prjm -purgebuildinfo


Nonetheless, if you don't trust the cached information, you can

If you want to see the cache contents, you can either list or edit the file directly (it is plain ASCII text), or use the command

  prjm -showcache
which also recomputes the saved fingerprints.

If you want to see the status of all packages in a format that is easier to read, use

  prjm -shortstatus
which displays a short status description for every package, which is essentially the information from the cache. If you specify the option -longstatus, many more status attributes will be shown for every package.

If you do not specify the -noc or -nocache option, the checkpoint file is read and evaluated prior to every action of prjm, and a new checkpoint is written after the completion of the action.

You can use the options -checkpointfile <fn> and -cpf <fn> to specify a different name for the checkpoint file to be used.

In combination with the verbose option -v, prjm will tell you which actions are actually performed and which are ommitted due to cached information.