Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Server Side Checkout vs Agent Side Checkout

Tags:

teamcity

I've been reading through the TeamCity 4.x documentation, and I am confused what the difference between a server side checkout and an agent side checkout is, as mentioned in this snippet from their help section:

Exclude checkout rules will only speed up server-side checkouts. Agent-side checkouts emulate the exclude checkout rules by checking out all the root directories mentioned as include rules and deleting the excluded directories. So, exclude checkout rules should generally be avoided for the agent-side checkout.

What is the difference between a server-side checkout and an agent-side checkout?

like image 481
Andrew Garrison Avatar asked Nov 25 '09 19:11

Andrew Garrison


People also ask

What is VCS checkout?

The VCS Checkout mode is a setting that affects how project sources reach an agent. This mode affects only sources checkout. The current revision and changes data retrieving logic is executed by the TeamCity server, and thus TeamCity server needs to access the VCS server in any mode.

What is checkout directory in TeamCity?

The build checkout directory is a directory on the TeamCity agent machine where all the sources of all builds are checked out into. If you use the agent-side checkout mode, the build agent checks out the sources into this directory before the build.


1 Answers

Ok, here is the answer from Pavel Sher (a JB guy) :

The main reason why server side checkout exists - is to simplify administration overhead.

With server side checkout you need to install VCS client software on the server only (applicable to Perforce, Mercurial, TFS, Clearcase, VSS). Network access to VCS repository can also be opened to the server only. So if you want to control who has access to your sources repositories it is probably better to use server side checkout.

As a side effect in some cases server side checkout can lower load produced on VCS repositories especially if clean checkout is performed often. This is because clean patches are cached by server. However this is environment specific, probably in some cases agent side checkout will work better.

Exclude rules also are better processed with server side checkout because usually agent side checkout is just an update and with most VCSes there is no way to exclude some directories during update operation.

From the other hand because agent side checkout is just an update or checkout it creates necessary administration directories (like .svn, CVS), so it allows you to communicate with repository from the build: commit changes and so on. With server side checkout such directories won't be created.

like image 191
Gilles Philippart Avatar answered Oct 14 '22 22:10

Gilles Philippart