Many of the responses contain something called pathname. The name is somewhat misleading; it actually indicates a pair of pathnames. First, a local directory name relative to the directory in which the command was given (i.e. the last Directory before the command). Then a linefeed and a repository name. Then a slash and the filename (without a ,v ending). For example, for a file i386.mh which is in the local directory gas.clean/config and for which the repository is /rel/cvsfiles/devo/gas/config:
gas.clean/config/ /rel/cvsfiles/devo/gas/config/i386.mh
If the server wants to tell the client to create a directory, then it merely uses the directory in any response, as described above, and the client should create the directory if it does not exist. Note that this should only be done one directory at a time, in order to permit the client to correctly store the repository for each directory. Servers can use requests such as Clear-sticky, Clear-static-directory, or any other requests, to create directories.
Some server implementations may poorly distinguish between a directory which should not exist and a directory which contains no files; in order to refrain from creating empty directories a client should both send the -P option to update or co, and should also detect the case in which the server asks to create a directory but not any files within it (in that case the client should remove the directory or refrain from creating it in the first place). Note that servers could clean this up greatly by only telling the client to create directories if the directory in question should exist, but until servers do this, clients will need to offer the -P behavior described above.