在TeamCity构build步骤中使用git命令

我的一个TeamCity v7.0构build项目依赖于使用当前开发分支和主分支之间的差异来确定需要运行的东西。 我写了一个小脚本,使用类似于:

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

不幸的是,构build日志表明, git diff不起作用。 当我进入这个项目的buildAgent / work目录时,我发现没有.git文件夹,所以无法执行所需的git操作。

我已经在TW-15873提到的buildAgent.properties文件中放置了teamcity.git.use.local.mirrors=true ,但这似乎没有任何帮助。

有什么我可以做的,以获得我的构build步骤脚本中的两个分支之间更改的文件列表?

尝试将VCS签出模式更改为“始终在代理上签出文件”,如此处所述 。 这应该使构build脚本访问.git文件夹。

@Mike Two的答案是正确的,需要将VCS根configuration为在代理上自动使用“签出”模式 – 不在服务器上。 技术委员会文件没有提到这个必需的设置默认隐藏为“高级”。 所以这里是一个寻找什么的图片。

高级设置

仅供参考,我的具体VS2013解决scheme步骤错误来自MSBuild,如下所示。 我正在使用最新的TeamCity Enterprise 9.0 EAP(构build31963)。 [PreBuildEvent] Exec [14:21:55][Exec] git rev-parse --short=9 HEAD > "C:\TeamCity\buildAgent\work\e5e910561e800525\MYPROJECT\bin\Debug\version.txt" [14:21:55][Exec] fatal: Not a git repository (or any of the parent directories): .git [14:21:55][Exec] C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets(1131, 5): error MSB3073: The command "git rev-parse --short=9 HEAD > "C:\TeamCity\buildAgent\work\e5e910561e800525\Higgens\bin\Debug\version.txt"" exited with code 128. [14:21:55]

//编辑; 我不知道如何将其添加到评论。