TeamCity not picking up changes from svn:externals

Hello,

We've been testing out TeamCity Professional Edition for our build process and can't seem to get it to reliably pickup changes for SVN repositories with svn:externals.

We are using Subversion for our repositories and have that working well. Using a client like Tortoise SVN we can update/commit with no problems.
We have say around 12 repositories. Some are utilities, tools and documentation that get incorporated into other repositories as svn:externals.

Here a simplified model of what our repository looks like
[Repository 'OurProduct_Trunk']
VS2010 Solution

[Repository 'OurProduct_Docs']
Our Documentation Project

[Repository 'OurProduct_Build']    <- This build does not pick up changes in any of the externals
-> svn:external: 'OurProduct_Trunk'
-> svn:external: 'OurProduct_Docs'
OurBuildScript.ps1             <- This is our build script which compiles everything together from multiple externals into one final set of deliverables, works fine

So the 'OurProduct_Build' repository is what puts the whole product together software, documentation, etc... and therefor contains some build scripts and externals to 5 or 6 other repositories that include our tools/utilities, documentation, and product trunk source. The build scripts will end up using resources from each of these externals when producing the build artifacts. The build process works great and all externals are used correctly; however, any changes committed to one of these externals do not reliably get picked up by TeamCity prompting a pending build. So we don't see the "Pending" changes on the main "overview" page of TeamCity for this build. However, the changes are reflected for projects pointing directly to 'OurProduct_Trunk' which of course has no externals.

Am I doing something fundamentally wrong with the VCS setup here, or is this a bug in TeamCity not checking externals?

Our Repository is set for 'Default config Directory = true' and 'Externals Support = Full Support'. The build VCS config is set to checkout "automatically on server".
Any help or tips are appreciated!
Thanks,
Ben

8 comments

Hello Ben,

   When using externals with TeamCity, you have to synchronize time of the repository and time on the TeamCity server.
   If this is not the case, some changes may be missing. The related issue is http://youtrack.jetbrains.net/issue/TW-2946

   This requirement is valid only if you svn external points to another SVN repository root.

   Is it your case?
   KIR

0

Hi,

I had identical problem in the previous project. Build scripts (not repo root) kept in repository A were linked with source code in repository B via svn:externals. VCS were set to repo B and TeamCity was not able to detect changes in repo A occasionally. When it happened, I had to commit a new, non-siginicant change in repo A. In most cases it helped TC to detect the change. It was not perfect and I found it rather frustrating but it worked :).

Regards!

0

I have both servers (repository and teamcity) sync'ing with NTP using the same timezone. I then committed my days work yesterday evening and it wasn't picked up. I left it overnight incase a timezone difference was affecting it somehow and still not picked up. I'm skeptical about the timezone differences as that should at worst cause a delay in picking up changes but should never make it entirely non-functional or inconsistently functional.

0

Hello,

   Could you please let me know, which version of TeamCity do you use?
   There were some known bugs when changes were not collected in externals in some older versions of TeamCity.

   Thanks,
   KIR

0

I guess I have same problem

Our main project is hosted on the Subversion VCS. Main project has svn:externals points to some libraries/frameworks/etc that are hosted on GitHub
Build failed after three attempts
I got this error

[16:15:16]Updating sources: server side checkout (22s)
[16:15:16][Updating sources] Will perform clean checkout. Reason: Agent doesn't have any version of the project sources
[16:15:16][Updating sources] Building clean patch for VCS root: The Project
[16:15:38][Updating sources] Failed  to build patch for build #1 {build id=3}, VCS root: svn:  https://subversion.xxxxxxxx.com/svn/xxxxxxxxxx/ {instance id=3, parent  id=1}, due to error: Cannot request SVN dated revision: svn: E175002:  Processing REPORT request response failed: Premature end of file.  (/lexand/yii.git/!svn/vcc/default)  svn: E175002: REPORT request failed on  '/lexand/yii.git/!svn/vcc/default' SVN server: https://github.com/lexand/yii.git/trunk/framework Used rev: 28 вер 2012 16:15:11 Rev text:480_2012/09/28 16:15:11 +0300

[16:15:38][Updating sources] Repository sources transferred: 25.44Mb total
[16:15:38]Will repeat attempt when server will be available, number of attempts left: 2
0

Hello Alexandr,

   Could you please try setting a fixed revision for the external ( with -r ) - would it work?
   I suppose there may be some incompatibilities with svn:externals support on GitHub.

   Regards,
   KIR

0

Yes, I can confirm that an external reference against github works with a fixed set revision.


regards,
Robin

0

Hello Robin,

  Thanks for the follow-up. I've created an issue regarding the problem with collecting changes from GitHub repositories: http://youtrack.jetbrains.com/issue/TW-27269

  Regards,
  KIR

0

Please sign in to leave a comment.