将git提交时间作为TeamCity的修改时间

将git提交时间作为TeamCity的修改时间,git,teamcity,Git,Teamcity,我们正试图使用TeamCity仅将更改的文件从git部署到web服务器。为此,我们需要修改文件的时间戳,使其成为中央repo中的最后一次提交时间 每当我们在TeamCity中执行干净构建(干净签出目录)时,文件的修改时间就是构建运行的时间。我们需要它是最后一次提交,所以它是可靠的 我们在这里使用了提交钩子: 我的个人回购协议中有挂钩,但在TeamCity中实施时似乎不起作用 我们如何让TeamCity使用上次提交时间作为文件的修改时间?经过多次努力,我终于让它工作了 使用以下脚本添加签出后和接收

我们正试图使用TeamCity仅将更改的文件从git部署到web服务器。为此,我们需要修改文件的时间戳,使其成为中央repo中的最后一次提交时间

每当我们在TeamCity中执行干净构建(干净签出目录)时,文件的修改时间就是构建运行的时间。我们需要它是最后一次提交,所以它是可靠的

我们在这里使用了提交钩子: 我的个人回购协议中有挂钩,但在TeamCity中实施时似乎不起作用


我们如何让TeamCity使用上次提交时间作为文件的修改时间?

经过多次努力,我终于让它工作了

  • 使用以下脚本添加签出后接收后git挂钩:
  • 将钩子放在生成代理上的
    C:\ProgramFiles(x86)\Git\share\Git core\templates\hooks\
  • 将TeamCity构建配置为使用代理端VCS签出(编辑构建配置>VCS>将VCS签出模式设置为自动在代理上)。注意,这可能会导致第一个构建非常慢,因为它会拉取所有提交
  • 我们还使用了构建之间的工件依赖关系。为了保留时间戳,我们必须压缩文件并将压缩文件存储为工件。看