I have a question about the way that SVN updates work within TeamCity, but just to give you a bit of context to my question...
- We have TeamCity Enterprise 7.1.5 (build 24400) environment. We have a quite a large number of mainly .Net based Builds.
- All VCS Roots, which is SVN based, are configured to be checked out Automatically on server.
- Some of the TeamCity Build Configs take quite a large amount of time to complete. The ‘build’ part is generally quite quick, it’s updating the VCS source that takes up time, sometimes 15 minutes out of a total of about 20 minutes, so its disproportionately high. In order to be sure that the build is clean, we have set the Clean all files before build: ON. Of course this results in the poor performance that I have described above. So I am trying to optimise the Build Configs and reduce the amount of time TeamCity spends refreshing the VCS roots.
Some of the areas I am looking at is....:
- I have installed the Swabra plugin and configured it as follows:
o Files cleanup: After build finish
o Clean Checkout : False
o Lock Processes: Report
o Paths to monitor: <Empty>
o Verbose output: True
- When I run it, I can see that the build generates a number of files (Dll, Exe, MSI, etc) and Swabra successfully detects and deletes them at the end of the build. So far I have not seen any Tracked files get deleted by any build. However there are a few tracked files that get modified. From my understanding, Swabra itself cannot recover the modified files. Also because the checkout takes place on the Server and not the Agent, the ‘svn revert’ option would not work.
So to come back to my original question: How does svn update work in TeamCity when dealing with tracked files that been modified locally and the checkout is taking place on the TeamCity Server rather than the Agent. If the modified file gets updated in svn, will that be correctly updated in the TeamCity Build Config or will it leave the modified file.
Many Thanks in advance for any help,