2016-03-01 31 views
2

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

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

我相信确定更改的文件的最可靠的方法是看合并变更和获取文件和脚本进行自定义程序包的那个列表中移动到生产。

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

THX

回答

0

人们不会需要/想用文件日戳来获得这种信息的,就像你说这将是不可靠的。

1. TF FolderDiff可容纳您的方案的第一(差异)部分: https://msdn.microsoft.com/en-us/library/bb385992(v=vs.140).aspx

2. TF合并可容纳您的方案的第二个(合并的)部分。 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

使用TF命令的问题是我没有任何东西来比较它。一旦更改已移至生产分支并且构建启动后,就不会有可以与之进行比较的服务器或本地文件夹。 我最终编写了一个控制台应用程序,该应用程序利用Microsoft.TeamFoundation.Client.WebApi库并在BuildId中传递,这使得我可以获取关联的变更集。然后我找到了每个变更集中的所有更改,并确定了需要复制的文件。 –

0

我会建议您部署在每个部署整个应用程序,但也有,你可以采取过于尽量减少运行部署所用的时间行动。

如果要部署那么SQL考虑使用编号为带有脚本文件夹,并记录在数据库中的最后一次运行数量。有像ReadyRoll和SSW SQL Deploy这样的工具可以帮助实现这一点,但最终这很容易解决。

资产文件,如图像和其他二进制文件,你需要做一个日期戳进行比较。

相关问题