1

我很抱歉這篇文章的長度,但我需要包含大量的信息以獲得正確的答案。我希望這不會阻止迴應...TFS和one-up的發佈

我們的商店歷史上編碼的網站使用經典ASP與一些較新的ASP.NET網站配置爲網站。衆所周知,這意味着源文件(* .asp,* .aspx, * .aspx.vb(或* .aspx.cs))文件按原樣部署到開發和生產服務器。

配置管理過程是(現在仍然是)完全手工幷包含有以下步驟:(要求):

  • 以修改過的文件的副本,並在「釋放」的文件夾存儲它們用於存檔。
  • 取出將被替換的生產文件的副本並將它們存儲在「存檔」文件夾中以便於回滾。
  • 在診斷髮布後問題時,生成源代碼文件之前和之後的代碼審閱或一般參考的差異報告。
  • 對變更進行編碼的開發人員不是執行生產版本的人員。原始開發人員需要將源文件文件交給其他開發人員進行一些額外的測試和生產部署。

爲了讓情況更加困難(不是上述情況,而是我在下面討論的內容),我們不遵循正式的發佈計劃。由於個人錯誤或增強功能已完成,因此已發佈。這意味着我們可以很容易地每週向一個網站發佈多個版本。甚至有可能某個網站在同一天獲得兩個不同版本個人頁!

自從我加入這個團隊後,我一直在嘗試將團隊轉移到像ASP.NET Web應用程序和ASP.NET MVC這樣的新技術。 (我們還承擔了用於非web進程的獨立應用程序和控制檯實用程序的責任...所以我的困境仍然適用。)

這些技術與傳統技術的區別在於預編譯。而不是部署代碼隱藏文件(* .aspx.vb(或* .aspx.cs)),部署dll或exe文件。這種類型的部署包提出了幾個問題(問題??)。

  • 編譯源代碼時生成差異報告。雖然新修改的源文件位於開發人員系統上,但生產副本是一個編譯副本。
  • 確保特定版本中未包含與其他錯誤或增強相關的更改。這將適用於原始開發人員和執行發佈的人員。
  • 允許原始開發人員將更改後的文件傳遞給另一位開發人員進行構建,測試和部署。

到現在爲止我是在球隊上面,其中不存在提到的這些類型的網站和應用程序,使矛盾和問題的工作開發。 (我跳過了差異報告步驟,我做了自己的部署)。但是,我試圖推動團隊的其他成員接受這一點,並允許更好地分發錯誤和增強任務。

我們正在使用VSS,但我正在推動(並且很可能成功)讓我們轉移到TFS。我有一些想法是

  • 設置一個單獨的構建系統供開發人員使用來進行部署。這將解決兩個問題 - (1)開發人員之間的Visual Studio和其他庫的不同版本/補丁程序;(2)執行發佈的人已經在本地檢出文件以進行其他更改的情況。 (當然這並不能保證構建系統和原始開發人員之間的差異,但至少這意味着發佈版本是來自一致的配置。

  • 使用標籤來標記修改過的文件我的問題是,雖然我可以識別修改過的文件(並下載構建)修改後的文件,我如何識別需要包含在內部的文件,但是而不是已被修改。同樣,這個想法不包括檢入與un有關的文件 - 發佈的更改

  • 使用標籤標記發佈的所有文件(修改的文件和未更改的文件)。我的問題與上一個類似...我如何確保文件C由另一位開發人員(假設他們去度假)加入了一個不相關的更改,但未被標記幷包含在此版本中。

  • 使用標籤我可能會寫一個腳本來爲標籤版本和以前標籤的版本生成差異報告。如果該過程正常工作,那麼應該產生確切什麼變化包括在特定的版本..?

任何其他想法,關注點,興趣點?雖然我確實具有某些流程的靈活性,但某些要求(如差異報告或某種方式可輕鬆查看差異並擁有單獨的開發人員/部署人員)很可能不可觸及。

非常感謝您爲此提供的任何幫助。

回答

0

爲了跟蹤代碼的不同版本,並幫助您管理非常快速的發佈週期(日常)與長期增強功能,您可以在TFS中使用分支。

有很多關於分支的信息,但總的來說我喜歡儘量保持簡單。例如,有一個分支稱爲「釋放」,另一個分支稱爲「發展」。每個人都在開發分支上工作,但是要部署到生產環境的代碼在發佈之前合併到發佈分支中。

本博客文章描述的過程:

http://team-foundation-server.blogspot.com/2008/01/how-we-branch-our-code-in-tfs.html

+0

我們只需要保持兩個開發人員不同時合併發佈的紀律。 (除非我們**希望**同時推送兩個更改。)正確嗎? – Jason

+0

正確。溝通是關鍵:) –

+0

讓我在閱讀你的鏈接和更多關於分支概念之前,先給我答案。雖然我知道分支(儘管從來沒有使用過),但我沒有想到我的困境。你是否預見標籤仍然扮演着一個角色?也許只是爲了識別變更集(正確的術語?),還是SP與bug和任務的整合覆蓋了這些?我的理解是,我可以配置環境以要求將檢出(或檢入)與指定的錯誤或任務相關聯。 – Jason

0

那麼,根據我對VS2003 VS VS2010的經驗,例如項目結構不同,並且允許VS進行轉換通常會導致需要大量重構或無法使用的解決方案。話說回來;如果您可以將所有內容都轉換爲TFS2010,那麼處理它的一種方法是爲每個解決方案設置不同的項目,並使用針對不同版本的內置版本處理內置的TFS。您還可以設置構建服務器並安排每晚構建。如果構建成功,那麼你可以推動這個版本進入測試並最終生產。您應該真正閱讀TFS,因爲它與VSS完全不同,而且絕對是一次巨大的升級,可以讓您進行以團隊爲中心的開發。

P.S. TFS有一個很好的Sharepoint集成,這將幫助你和你的團隊跟蹤所有的錯誤和任務。

+0

呀。我們目前使用斷開連接(來自源代碼管理)SharePoint列表來管理我們的錯誤,增強功能和列表,但我已閱讀了SP集成。將源代碼管理簽入綁定到特定的一個或多個任務的想法肯定會有所幫助。 – Jason

+0

我想我不明白TFS版本足以說明如何/如果這將有所幫助。我曾考慮過每晚做一些建設,從長遠來看,實際上可能會更穩定,而不是日內發佈。需要閱讀更多內容。 – Jason

+0

是的,每晚構建確保人們只將工作代碼簽入TFS。此外,您可以將特定的錯誤/任務分配給特定的用戶。當他們檢查他們的代碼時,他們可以將代碼與代碼尋址的任何數量的錯誤修復/任務相關聯。通過這種方式,您可以運行報告以查看個人的表現以及他們完成的任務類型。直接從馬的嘴裏檢查一下這些信息:http://social.msdn.microsoft.com/Forums/en-US/tfsadmin/thread/4acefd21-725d-4107-ba9c-bdfa8fe54012/ – evasilchenko