2016-12-29 99 views
0

我們的代碼坐在一個TFS項目,我們有一個包含數據的多個其他項目:TFS 2015年門控簽入失敗,原因是缺少映射

$/ 
- $/Code 
- $/Data1 
- $/Data2 

我們已經定義了門控檢查在建運行在每次簽到$ /代碼。我們不關心每個單個項目的數據,因爲我們只想構建共享的$/Code項目。

問題是,當用戶簽入代碼更改和數據更改(即更改$/Code和$/Data1)時,構建失敗,因爲我們沒有在構建中映射$/Data1定義:「$/Data1/file.txt不存在適當的映射」。

這可以通過理論上的每一個映射$/DataN中得到解決,但它的內容映射很多,我希望有一個簡單的解決方案。我能以某種方式告訴TFS忽略擱置中的未映射文件嗎?也許像this

回答

2

正如你可能已經聚集,這是不可能在此刻。你可以指導你的開發人員在$/Code獨立於任何$/DataN檢查。你甚至可以設置一個檢查策略來警告開發者這個問題。

如果你真的只在代碼中的建築感興趣,那麼我會選擇這樣的解決方案。

至於它爲什麼會這樣工作...構建代理取消擱置分配給您的用戶的擱板架,將其再次擱置在其自己的名稱下,以確保正在構建的數據恰好是在構建結束。如果不是所有數據都存在於當前工作空間中,這將失敗。最後,構建會檢查在其名稱下創建的shelveset。

由於這些細節,我不希望此功能很快就會被添加,如果構建無法驗證它要檢入的代碼是否真的是代碼,那麼就有可能產生令人討厭的不一致它剛剛建成。審計師將有一個健康的:)。

+0

你是對的,但數據的項目不被用於構建。他們只是在運行時。 – liorda

+0

隱藏所有數據項目如何?甚至掩蓋根目錄並將$/Source標記爲活動映射?我從來沒有使用僞裝,它好像你知道這東西... – liorda

+0

沒有掩飾也將防止unshelved的文件,從而導致同樣的問題。 – jessehouwing