This question is identical to this one, but related to Perforce instead of SVN. In Perforce we have these branches:
Development\ProjectA\Trunk
Development\ProjectA\Release1
Development\ProjectA\Release2
In TeamCity should there be 3 separate VCS roots or 1 with checkout rules specified for each build?
Following the advice of the accepted answer in the linked question I changed our setup to have a single VCS root contain everything. The performance is dire with an initial checkout taking 45 minutes.
The build configurations are set to checkout server side and have checkout rules such as:
-:.
+:Development/ProjectA/Trunk
I'm worried this setup isn't scalable. If with 3 branches it takes 45 minutes, a few more releases and the checkout time will be prohibitive. What is best practice for setting up Perforce VCS roots for large repositories in TeamCity?