2016-03-01 42 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這樣的工具可以幫助實現這一點,但最終這很容易解決。

資產文件,如圖像和其他二進制文件,你需要做一個日期戳進行比較。