2010-02-09 38 views
12

目前我正在使用TFS作爲源代碼控制的項目。我正在實施一項功能,但由於需要由外部資源完成的工作而受阻。由於功能尚未完整,因此我無法在不破壞構建的情況下檢查更改。所以我不想在阻塞工作完成的前幾天等待一些缺陷。擱置和TFS中的工作空間

要做到這一點與我的其他變化分開進行,我正在處理我剛剛創建的第二個工作區中的缺陷。

在使用第二個工作區隔離我的更改後,一位同事問我爲什麼不只是擱置我的更改。在擱置一些書籍之後,看起來這是像我這樣的情況的首選解決方案。 我的問題是,如果有的話,你會創建多個工作區,以及應該使用擱置的情況?有一些關於shelving的帖子,但我在工作區的主題上看不出太多內容。

順便說一句,我得到了創建第二個工作區here的想法。

回答

11

新的分支可能是最好的方式。但是,爲了回答您的問題,擱置和僅使用不同工作區之間的一個主要區別是,當您擱置時,將代碼重新推送到TFS,以便備份。無論你的工作區是什麼,只是你的機器上有什麼 - 如果你失去它,它就消失了。

我們在我的店鋪中使用了很多分支,因此我沒有看到擱架的許多用途。

但是,我發現它對我來說非常有用: 我經常在兩臺不同的開發機器(一個在辦公室,一個在家,通過VPN連接)之間跳動。如果我正在處理某些事情,而且我想將它從家中轉移到工作中,反之亦然,我經常使用擱置。我可以將它從一臺機器上卸下,並從另一臺機器上卸下。當我處於變更中時,我會這樣做,並且檢入會破壞構建或以其他方式中斷其他開發人員。

+0

啊,所以我應該至少擱置我在原始工作空間上的更改以備份更改。另外,關於使用擱置來移動PC之間的變化的好處。我可以看到這非常有用。 – JChristian 2010-02-09 21:00:24

1

擱架是理想的選擇。 Shelving允許您在常規構建之外的TFS中進行大量更改,並在以後按名稱檢索它們。多個工作空間不是你正在做的事情的解決方案。如果您維護某個產品的不同版本並需要對其進行處理,那麼多個工作區是很好的。假設您有4.0和5.0產品,並且需要對兩個版本應用安全修復程序。如果您想進行更改但不立即提交,則擱置非常棒。

+0

是不是分支用於多個版本的工作?或者,每個分支會有一個單獨的工作區? – JChristian 2010-02-09 19:16:54

+0

是的,但你會使用不同的工作空間去到每個分支。 – 2010-02-09 19:43:23

3

你在這裏談論兩個完全不同的概念。當你擱置代碼時,你將它保存到TFS,但不檢查它到任何特定的分支。創建一個不同的工作區只需在開發機器上設置一個新的本地文件夾,並將文件保存在分支中。當你辦理登機手續時,你仍然可能會發生衝突。

爲什麼不創建一個新的代碼分支。您可以在該分支上工作並簽入而無需執行其他人的更改,因爲您正在簽入自己的代碼分支。然後,當您完成更改並且其他人已完成主分支上的更改時,可以將更改合併到主分支中。

+0

我沒有想過創建另一個分支。你是否建議我應該爲我正在處理的阻塞功能創建第二個分支,然後使用主分支來處理缺陷? – JChristian 2010-02-09 19:22:42

+1

@JChristian--我不是說你應該擁有。但另一種選擇是創建一個分支,供您進行工作,或者爲外部資源開展工作,然後在完成時將它們合併在一起。在開發應用程序的下一個版本時,我會經常這樣做,如果我對當前版本所做的更改很重要,我想單獨對它們進行處理。 – 2010-02-09 19:30:48

相關問題