我正在編寫一個工具來自動化文檔和我們網站的代碼部署,並且在測試時遇到了一個異常現象,並引發了我對變更集的理解。TFS Changeset只應該在解決方案中引用文件嗎?
我所看到的是一個參考文件實際上不是解決方案的一部分的變更集(儘管在某一點上它們是)。
是最好的,我能確定這是一連串的事件(除了最後一步發生之前,我加入公司,所以這是所有從源代碼控制歷史推斷):
- 的文件夾添加到一個包含大約十幾個txt文件的項目,這些文件充當電子郵件的模板,並且這些文件被簽入TFS
- 2周後,4個txt文件從項目中刪除但未被物理刪除
- 2年後開發人員需要更新電子郵件模板並更改文件夾中的所有txt文件,包括4這是不是「」項目,導致變更集X
當我看着變更集X及其變化的列表,它包括一個「編輯」到每個txt爲他改變
當我的代碼遍歷變更集中的所有更改時,它會嘗試將更改後的文件結合到它所屬的項目中,以便確定哪些文件需要作爲更改的結果進行部署 - 即如果它的.html或.jpg那麼它只是被複制,但如果它的源代碼,那麼我需要部署從文件編譯的關聯二進制文件)。所以當它發現這些文件並試圖找到他們屬於它的項目失敗時。
變更集應該引用這些刪除的文件,還是TFS中的錯誤?或者,當代碼從兩次更改之前的兩年的某個時間從TFS 2008遷移到TFS 2012時,會發生什麼?如果它不是bug,那麼在什麼情況下你會希望TFS跟蹤對不在項目中的文件的更改?
我試圖通過設置一個全新的項目並將其添加到源代碼控制,然後添加,刪除和編輯相關的文本文件,但我不能讓它以相同的方式行爲複製它。
嗯..我明白,但我不知道它回答我的問題。 –
好吧,我已經制定出你的意思了。重要的詞是「子集」。我猜想關鍵在於變更集只與源代碼管理相關,並且只與巧妙地與Visual Studio解決方案相關。根據我的個人經驗,我的團隊將所有相關文件添加到解決方案的項目中,因此存在1-2-1的相關性掩蓋了此問題。發生這種情況的原因是,將文件添加到源代碼管理下的項目會將其選定爲源代碼管理,但將其從項目中刪除並不會將其從版本控制中刪除,因此破壞了相關性。 –
這是放置它的好方法。 –