如何识别TFS Build 2015期间已更改的文件

时间:2016-03-01 18:06:13

标签: tfs tfsbuild

我需要将更改从一个分支合并到一个发布分支,并且只将这些更改的文件部署到生产环境中。这些文件是Maestro和SQL文件,因此没有“构建”,只需要移动的单个文件。此过程全部是手动的,我希望使用TFS 2015 CI版本和/或版本管理vNext 2015 Update2自动执行此过程。

我的主要问题是如何识别更改的文件。使用构建代理工作空​​间不可靠,因为在执行getlatest时设置了文件上的时间戳。

我认为识别已更改文件的最可靠方法是查看合并变更集并获取该文件列表并编写自定义程序包以移至生产。

有没有其他人解决过这个问题,如果是,你是怎么做到的?

THX

2 个答案:

答案 0 :(得分:0)

人们不需要/想要使用文件日期戳来获取此类信息,正如您所说的那样,它将是不可靠的。

<强> 1。 TF FolderDiff 可以容纳您的场景的第一个(差异)部分: https://msdn.microsoft.com/en-us/library/bb385992(v=vs.140).aspx

<强> 2。 TF Merge 可以容纳场景的第二个(合并)部分。 https://msdn.microsoft.com/en-us/library/bd6dxhfy.aspx

第3。它很可能需要将它包装在一个控制脚本(也许是PowerShell)中并从构建过程中调用

以下是在PowerShell中包装TF命令的一些常规示例:

Expand output of TF.exe results from PowerShell

外部:

http://www.tomsitpro.com/articles/how-to-commit-code-tfs-powershell,2-990.html

https://github.com/adbertram/Random-PowerShell-Work/blob/master/TFS/TFSClientFunctions.ps1

答案 1 :(得分:-1)

我建议您在每个部署中部署整个应用程序,但是您可以采取一些操作,以最大限度地减少运行部署所需的时间。

如果要部署SQL,请考虑使用编号为scripted的文件夹,并记录数据库中的最后一个运行编号。 ReadyRoll和SSW SQL Deploy等工具可以帮助实现自动化,但最终可以轻松解决。

对于图像和其他二进制文件等资产文件,您需要进行日期戳比较。