teamcity.build.changedFiles.file Format is different than expceted

I have been using the file from the teamcity.build.changedFiles.file property to get a list of files with certain extensions that have changed (These files need additional processing that TeamCity does not support).

According to the documentation (found here: http://confluence.jetbrains.net/display/TCD7/Risk+Tests+Reordering+in+Custom+Test+Runner), this file should have the following format: <relative file path>:<change type>:<revision>

This has worked flawlessly for all of my testing, but I ran into an issue today where it appears that the Full file path was used instead of the Relative file path.

Here's the basic setup:
I have a Visual SourceSafe VCS Root setup to the project $/Load Files.  This VCS Root has a Checkout rule, +:.=>Load_Files.  

In cases where this has worked, the teamcity.build.changedFiles.file

has had entries like this:


Load_Files/001_file.dwh:ADDED:1


When I got the error today, the teamcity.build.changedFiles.file had entries like this:
Load_Files/$/Load Files/007 - graph and view def.dwh:ADDED:1


Does anyone know why TeamCity used the Full path instead of the relative path?  I can "handle" this later on by throwing an error, but that will fail the build.  I would like to know why TeamCity used the full path to see if it's something I can prevent from happening at all.

As always, thanks for the help.
~Alex
1 comment
Comment actions Permalink

I have figured out what the issue was here.  The root cause was using a Variable in the Project field of the Edit VCS Root page for a type of Visual SourceSafe.

It appears that the Project field can handle spaces without issues, but the Variables need quotes around them to account for spaces.  Then with the quotes, the filesChanged file shows the whole VSS path instead of the relative one.

So effectively, the issue was that I changed the Project field from $/Load Files to "$/Load Files"

I do have another question then, based off of this.  Why isn't the Project field one of the accessable fields for use in other places?  i.e. Is there a reason %vcsroot.MyVSSRoot.projectPath% doesn't exist?

0

Please sign in to leave a comment.