TeamCity 6.5 + SVN: Always fetches all sources

Hi,

We just setup a fresh TeamCity 6.5 Professional build server in our company. Everything is just fine except one small but annoying problem. We use SVN as our source control repository. Until yesterday the system was recognizing changes correctly, incrementally fetching updates and displaying them in UI in "Changes" column for every build. Since then we were tuning our source control configuration and came to the situation when even with changes reverted back the system gets all sources from SVN for every build which is problematic because it takes a while to fetch them. Also what is interesting is that no changes displayed in "Change" column in History, while I can see everything in Change Log. The TeamCity configuration is provided below. Can anyone help me? I just want the system to work as it worked a day ago.

teamcity01.png
teamcity02.png
General Settings

Name: CI
Description: none
Build number format: 0.8.{0}.%build.vcs.number%, next build number: #0.8.22.%build.vcs.number%

DeployPackages/**/Application/webpackage.zip

Artifact paths:
Fail build if:
process exit code is not zero: ON
at least one test failed: ON
an error message is logged by build runner: OFF
it runs longer than: no limit
out of memory or crash is detected: ON

Build options:
hanging builds detection: ON
status widget: OFF
maximum number of simultaneously running builds: unlimited

Version Control Settings

VCS checkout mode: Automatically on server
Checkout directory: default
Clean all files before build: OFF
VCS labeling: disabled
Attached VCS roots:
Name Checkout rules Set label
svn: https://knoema.jira.com/svn/KN trunk=>./ YES




Build Triggering

Build configuration is active (triggering enabled).
Build triggers:
Build Trigger Parameters Description
VCS Trigger Triggers build after a VCS change is detected



Attachment(s):
teamcity02.png
teamcity01.png
11 comments
Comment actions Permalink

Could you please attach here build log? Also it would be helpful to see your VCS root settings.

0
Comment actions Permalink

Type of VCS: Subversion
VCR root name: svn: https://knoema.jira.com/svn/KN
URL: https://knoema.jira.com/svn/KN
User name: ******
Password: ******
Default config directory: use default config directory
Externals support: Checkout, but ignore changes
SSH settings: all fields are empty
Working copy format: 1.5
Revert before update: not checked
Labeling rules: trunk=>tags
Labeling message: KN-482 %system.build.number%
Checking interval: use global server settings (60 seconds)
Make this VCS root available to all of the project: unchecked



Attachment(s):
Knoema_CI_0.8.23.1743.log.zip
0
Comment actions Permalink

Do you have externals in your repository? In case if option "Externals support: Checkout, but ignore changes" is selected TeamCity have to always build clean patch (full checkout) because it does not know the state of externals - whether there were changes or not. If you do not have externals, you should select "Ignore externals" option.

0
Comment actions Permalink

Pavel,

We do not use externals. I set Externals support to Ignore externals, but it doesnt help. It still gets all sources. Also I'm wondering why we do not see anything in "Changes" column of build history when definitely builds are triggerred by changes in SVN.

[08:58:51]: Checking for changes
[08:59:02]: Clearing temporary directory: C:\Users\Public\TeamCity\buildAgent\temp\buildTmp
[08:59:02]: Checkout directory: C:\Users\Public\TeamCity\buildAgent\work\4fb1b13c6bad127
[08:59:02]: Updating sources: agent side checkout...
[08:59:02]: [Updating sources: agent side checkout...] Will perform clean checkout. Reason: Agent doesn't have any version of the project sources[08:59:02]: [Updating sources: agent side checkout...] Cleaning C:\Users\Public\TeamCity\buildAgent\work\4fb1b13c6bad127
[08:59:02]: [Updating sources: agent side checkout...] VCS Root: svn: https://knoema.jira.com/svn/KN
[08:59:02]: [VCS Root: svn: https://knoema.jira.com/svn/KN] checkout rules: trunk=>; revision: 1770_2011/06/09 08:44:10 +0100
[08:59:02]: [VCS Root: svn: https://knoema.jira.com/svn/KN] Will use fast SVN update

0
Comment actions Permalink

Have you tried to run one more build on this agent? When you change VCS settings the first build on the agent will take all of the sources. Subsequent builds should take sources incrementally. As for changes, could you please make a change in SVN, wait for a build to be triggered and then attach here teamcity-vcs.log?

0
Comment actions Permalink

Also we found another issue with SVN integration in TeamCity while investigating build. Somehow TeamCity doesnt retrieve the latest sources. The latest revision we have in SVN now is 1777 and when running build TeamCity gets 1770 which leads to errors? Can you brief me on how TeamCity determines the latest revision and gets sources from SVN? I want to exclude any issues on SVN side.

0
Comment actions Permalink

There is something insane happening. Take a look at the screenshot below. We have 4 consecutive builds triggered by SVN with the same VCS revision number. For this configuration we have the following build number format: 0.8.{0}.%build.vcs.number%. Sources on the disc are having 1793 revision, they are the same for all builds. BUT. On the right side you can see that TeamCity properly fetched last revision number as 1794, 1795, 1796. This problem becomes critical for us. Any ideas? If it will not be solved by the end of Friday we will be forced to drop TeamCity as build server and move to the other solution.

teamcity03.png

0
Comment actions Permalink

Finally we found the problem. In our configuration we had the following checkout rule specified: "trunk=./". The entire problem was fixed by removing slash to make it "trunk=>."
Now we can see changes correctly and sources are updated incrementally. There is definitely a bug in VCS implementation

0
Comment actions Permalink

Hi, Vladimir.
in one of your post i see

[08:59:02]: Updating sources: agent side checkout...


Teamcity "Checkout modes" documentation states what you should use server side checkout to avoid full blown update. Althoug i see you found a soloution and that's great, but for me something definetely wrong and there should not be such output for the stated in the first post "server side checkout". Probably solution is just to make sever side checkout work.
0
Comment actions Permalink

Hi!

Does somebody know if it ever be fixed?

It's very annoing thing that TeamCity Agent performs check-out *every* build.

As I can see, this issue is actual for more than half a year...

P.S. I use default checkout rules.

Best regards,
Ilia

0

Please sign in to leave a comment.