Put each project in a separate directory under a single depot
In this method all your projects appear under the
directory. For example, if you are developing three separate products -- a server, an administrative interface, and a browser application -- you can set up your projects like the following:
Client workspaces can be mapped to one or more of these paths to work on these projects. Workspaces can be dedicated to particular projects, and users can set up separate workspaces for each project, or work on all projects in the same client workspace. The Perforce superuser can set permissions on each project to limit user access. Any Perforce superuser has access to, and control over, all projects.
For more information on adding a new directory tree to your Depot, please see KB Adding Empty Directories
for more details.
Put each project in a separate depot (multiple depots)
In this method, you create a separate depot for each project. Your project paths would look like:
Client workspaces and permissions work exactly the same with the multiple depot configuration as with the single depot configuration. The same Perforce database is used to store status and history for all projects.
The most significant difference with the multiple depot configuration is that, in the Perforce Server P4ROOT directory, each project is stored in its own top-level depot directory (rather than as a subdirectory of a single depot). The multiple depot configuration allows you to use the depot "Map" field to put each top-level depot directory on a separate filesystem, if desired. More on using the Map field can be found in the Command Reference entry for the p4 depot
Performance is another consideration in configuring single vs. multiple depots. By splitting projects into separate depots, file paths for many Perforce operations are inherently limited to a more narrow range of files, resulting in reduced need to scan certain database tables. The performance difference is dependent on the particular data sets and usage. For many small installations, there is no appreciable difference. However, for larger installations and for some usage environments, the performance difference might be significant.
Otherwise, your choice between storing projects as subdirectories in a single depot or using multiple top-level depots to store them is primarily a matter of preference.
Put each project on its own Perforce Server (multiple servers)
In general, you only want to host different projects on separate Perforce Servers if the projects are unrelated and there is no collaboration between projects, or you have special security considerations. Using multiple servers (whether on one or multiple host machines) obviously entails additional overhead for backup and maintenance. Among multiple servers, the same considerations for single versus multiple depots above apply.