2010-02-24 19 views
45

下面是我得到的部分:當您在TFS中擱置時,它會使更改的服務器副本不會丟失,但不會將它們檢入您正在處理的源代碼中繼/分支中。在TFS中不存在:這是什麼意思?

問題:在什麼情況下你會使用「unshelve」功能?這是否意味着它會從TFS服務器中刪除shelveset?你可以做一個擱置嗎?或者它實際上只是shelveset和「真實」源代碼之間的差異描述?

回答

51

Unshelving是如何將機架恢復到您的機器,以便您可以繼續使用它。它不會更改服務器上的shelveset(要做到這一點,您需要再次擱置所有內容並使用相同的shelveset名稱)。

我如何使用它的一個例子是在我處理它們時在機器之間移動變化。我會將其擱置在臺式機上,然後在筆記本電腦上卸下它,然後繼續在筆記本電腦上工作。

您也可以使用它來與某人共享更改(用於代碼評論或其他原因)。你擱置你的改變,然後另一個人可以去取消它,看看你做了什麼。

Unshelving實際上並不會改變服務器上的shelveset或其他任何東西。這只是一個獲得操作。

+1

一位同事給我發了一篇評論,我沒有保留他的修改來運行它們並檢查它們。一旦我完成併發回他的評論。我如何擺脫他的變化?換句話說,我該如何解除擱置的問題?我必須右鍵單擊並撤消每個他更改的文件嗎? – Ciwan 2016-04-07 07:51:48

+0

@Ciwan,你需要在擱置你的代碼之前擱置你的代碼。然後當你完成他的時候,取消你的代碼。 – David 2018-02-06 01:21:03

30

愛馬仕是現貨。閱讀他的答案。

一個重要的警告:如果自從創建shelveset以來您已經完成了Get,則Unshelve將僅回滾擱置集中包含的文件的本地版本。因此,很可能你會有一個不一致的工作區。

一個不錯的做法是,總是重新運行得到你之後獲得Unshelve。這可以確保您不會浪費時間在虛幻構建錯誤上,這些錯誤實際上只是處於半新/半舊狀態的副作用。它還會要求您主動解決擱置內容與最新服務器修訂版之間的任何衝突,而不是僅僅發現它們@檢查時間。

4

我使用擱架來備份正在進行的代碼,只是在我的硬盤驅動器崩潰或不在的情況下。我甚至不必擔心代碼構建問題,也不必介意工作,因爲我的團隊中的任何其他開發人員都不會看到這些工作(除非他們正在尋找它)。

Unshelve將更改返回到您的工作區。從服務器上刪除擱架是一個刪除。

繼理查德伯格說,電動工具的unshelve版本實際上包括一個得到和解決。

+1

不幸的是,'tfpt unshelve'在我的經驗中非常麻煩。 – 2010-03-16 04:08:47

+0

我不經常使用它自己。事後獲得樂趣比較容易。我將在一種情況下使用它 - 如果我需要將未簽入的代碼移到不同的(但非常相似的)分支。 – stannius 2010-03-16 14:39:53

+0

它不是越野車。它是一個過程。我們不能指望TFS保持準確的代碼。但是,我認爲tfs在它擱置時將完成接近95%-100%的工作。 – Kurkula 2015-02-27 21:01:01