Using git commands in a TeamCity Build Step

Jake Stevenson picture Jake Stevenson · Jul 24, 2012 · Viewed 22.9k times · Source

One of my TeamCity v7.0 build projects relies on using a diff between the current development branch and the master branch to determine what needs to be run. I've written a small script that uses something like:

git diff origin/master..origin/QA --name-only --diff-filter=AM | DoSomethingWithThoseFiles

Unfortunately, the build log indicates that git diff is not working. When I go into the buildAgent/work directory for this project, I see that there is no .git folder, so it cannot perform the git operations required.

I've put teamcity.git.use.local.mirrors=true in the buildAgent.properties file as mentioned at TW-15873, but that does not seem to help in any way.

Is there anything I can do to get the list of files changed between two branches in a script for my build step?

Answer

Mike Two picture Mike Two · Jul 27, 2012

Try changing the VCS checkout mode to "Always checkout files on agent" as documented here. That should give the build script access to the .git folder.