Perfoce setup with large source tree


I am trying to setup TeamCity 3.1.1 (build 6828) for my project. The project has huge source and software repository, which take hours to check out.

To make this work I need to have these folders initially checked out into the sandbox. Each build would just do "p4 sync" to get the updates before executing the build. I had that setup in cruise control and a few hours, yet I was unable to do the same in TC.

However this does not happen. When I execute the build I find in the Process Explorer that TC runs this command:

p4 -P password -c TeamCity-AGENT2008 -u pesochiv -p p4host:7124 -G print //myproject/main/...@1534213

p4 help shows this:

"The -G flag causes all output (and batch input for form commands
with -i) to be formatted as marshalled Python dictionary objects."

The p4 command seems to run forever filling c:/TeamCity/temp/p4_16718temp file.

Could you please suggest how to set this up? Thanks.

- Vadim.

Comment actions Permalink

Well it does work at the end. It takes a few hours for this dumping of the perforce after which the build proceeds to check out and build. You really need some patient customers to finish setting it up with perforce.

Comment actions Permalink

When build is starting on an agent for the first time TeamCity performs full checkout. This is true for every agent because a working copy should be created on every agent. The checkout is performed on the server side and then special patch file is created from the sources. This patch is transferred to the agent. Subsequent builds on this agent work mush faster because TeamCity builds patch from changed files only and transfers this delta to the agent.

As I said before TeamCity needs to transfer patch with full source code each time when build starts for the first time on an agent. However TeamCity maintains cache of checked out files and does not perform full checkout from the Perforce when build starts on a second, third or any other agent, instead the cached patch is transferred to this agent.

So if your project is huge (BTW what is the actual size of your project?) you may experience slowdown for the first builds. But then builds should work much faster.

Pavel Sher


Please sign in to leave a comment.