Some option not to update VCS? Checking changes, updating is slow!

As far as I understand, TeamCity runs a build this way:

- check for changes in VCS
- update VCS roots
- run build.

We have a project in 15 not-so-fast SVN repos, and the "pre-build" stage takes a lot of time, even if a chage happened only in one repository.

I wonder, why teamcity updates all repositories? I guess it should have detected in what repository there was a change, and run "svn up" only on changed repositories...
In ideal world, "svn up" on unchanged repo should be fast, but in real world it may run 15-30 seconds and update nothing... times 15, and the build is slowed down for a few minutes...

Another straightforward optimization: even though there may be many VCS roots in a project, many of them (in my case) belong to the same physical repository. I guess it's possible to find out that programmatically. That is, the changelist # in svn would be the same for these VCS roots, and it's enough to check it for one VCS root only. If the change counter has incremented, there was a change...

That would give tremendous performance boost for slow repositories. In my project, it takes 4-5 minutes to detect and update one-file change!

1 comment

Igor,

Please check that your VCS settings have externals support disabled (enable them only if you actually use them). Externals support is pretty slow and previously it was enabled by default.

Hope this helps,
KIR

0

Please sign in to leave a comment.