SVN checkout problem


I try to setup TC and have some problems with it.
I have a repo TRUNK, and I have project inside it TRUNK/Project1, but I want to use revision number of whole repository, so I have a CVS root for TRUNK, and some checkout rules:
+:Project1 => .
which allows me to checkout only Project1, but use revision number of TRUNK. For checkout I have a custom directory and before every checkout it cleans.

So, there is a problem, when build is triggered there is a very strange checkout performs. It checkouts all I need, but last changes looks like last modifications.

For example ProgrammerA made changes in file FileA and commited it. After that build triggerder and checkout performed and my build process failes due to local modifications.

When I try to do a commit on my Project1 directory, TortoiseSVN asks me to commit changes in FileA, which were made by ProgrammerA.

How can I solve this problem?

Thank you and sorry for my English.

Comment actions Permalink

Hi Igor

I'm sorry for late reply.

Could you please post a build log with corresponding TeamCity error messages.

As a general rule we do not recommend to specify custom checkout directory.
Do your build scripts contain hardcoded file paths, so cannot be started from any other directory?


Comment actions Permalink

Hi Michael

That is not a TC fault. My utility fails -  it checks for local modifications and if some exists - fails, and as I wrote there is a local modifications there. It's very important to run this utility.
The problem solves by changing VCS checkout mode from "Automatically on server" to "Automatically on agent" (both of them is one computer), but it's much slower and sometimes SVN checkout fails while long waiting (I have cleanup before each build and 146Mb of sourcers transferes each time),  but when checkout successfull - everything works fine.

Also is a very interesting thing: if I manually do an update on that directory - it merges all changes and everything is normal (if I run build - there is no local modifications after checkout), but right after next commit all changes from that commit becomes uncommited changes after chackout on TC.

And yes, my build scripts uses harcoded pathes and I can't remove them =(

Comment actions Permalink

We solved problem by adding new build step which manually calls SVN and do:
svn update . - to update last changes from SVN. After this all files successfully merged, but new files added in last commit now in tree conflicts
svn revert -R . - reverting all conflicts with new files.

Comment actions Permalink

It seems you are trying to checkout sources twice - first time by TeamCity, and then by your custom commands and tools within the build.
This looks rather complex. Even if it works today, I would suggest to review the scenario and try to simplify it.

For each build TeamCity Web UI displays a change set for code sources, and corresponding build results - log, tests, statistics.
If sources are modified within the build, the data in UI becomes wrong and may confuse people.

Also, look at File Cleaner feature, it may help to avoid clean checkout in each build.



Please sign in to leave a comment.