2012-02-01 99 views
2

我只是想取消擱置已經在前幾天添加的shelveset。與此同時,其他人已成功檢查了shelveset中包含的新版本文件。由於我的文件在最新版本和shelveset之間存在衝突(因爲它有另一個基本變更集),我想將我的代碼庫恢復爲由shelveset使用的特定版本。如何在TFS中支持較舊的Shelf集時獲取正確的版本?

我現在該如何確定,shelveset的哪個基礎版本已被使用?不幸的是,在「細節」中沒有關於這方面的信息 - 擱置信息。

回答

5

您可以在擱置詳細信息對話框中查看擱置更改的版本 - 如果右鍵單擊某個文件,可以選擇「屬性」,它會顯示擱置的版本和最新版本。

但是,unshelve不會將最新版本的新更改掛起 - 它會根據擱置的版本進行檢查。試想一下這種情況:

您在版本5上對$/A進行了更改。您創建了一個擱置集foo並撤消了您的本地待定更改。

另一位用戶檢入$/A的新版本。你得到最新的,而現在如果你要那麼取消擱置foo,因爲擱置掛起的變化是第5版,你將現在5版有掛起的變化。如果你得到最新的$/A更新到版本6

,您將遇到版本衝突,並能夠解決衝突,以便將未完成的更改提升到版本6.

0

我不認爲這是可能的。
即使你使用TFS-SDK獲得Shelveset使用VersionControlServer.QueryShelvesets,在那個方向上沒有任何東西。

這實際上是有意義的,因爲Shelveset可能包含來自多個分支,文件夾甚至團隊項目的項目 - 因此變更集之間並不總是一個「一對一」的關係。

在你的地方,我只是簡單地在評論中添加信息(手工:醜,但它會工作)