Visual Studio Team Foundation 版本控制:單人兩機版控實驗

這一篇最主要是再實驗之前的異機還原是否可以工作正常。情境一樣,假定你在公司有一台機器(黑色VS畫面),家裡有一台機器(白色VS畫面),這兩台機器都已經設定好TFS伺服器連線以及工作區了,並且都已經從TFS下載最新(最後一個版本)的程式碼了。

單人兩機之TFS版本控制實驗

Step 1. 在Program.cs上面點選右鍵,選擇「簽出以編輯」。

Step 2. 選擇鎖定類型。

Step 3. 隨便補一行程式碼。

Step 4. 直接在這個檔案點右鍵選「簽入」。

Step 5. VS會自動跳到暫止的變更頁面,請好好的輸入這次的註解吧!

Step 6. 到另外一台機器(白色VS畫面),我們對這個檔案點選右鍵選「取得最新的版本」,當然啦,你也可以選擇全專案的遞迴式更新全部檔案。

Step 7. 點選簽出打開Program.cs後,我們就可以看到黑色VS畫面的機器中之前輸入的程式碼,我們將它改成「HELLO-Test-2」後,簽入回TFS上。

Step 8. 回到黑色VS畫面的機器中,點選「取得最新的版本」,你就可以發現「HELLO-Test-2」出現在你的程式碼中了,成功!(這邊我就不再貼出圖片了。)

使用伺服器端工作區設定

Step 9. 使用伺服器端工作區域的設定,可以讓你啟用點兩下開啟檔案後,「開始編輯時」會「自動下載最新版本並簽出」,如此一來可以避免「寫了一大堆程式碼卻忘記去下載最新版本」的糗事。如下圖所示,請打開工具>選項>Visual Studio Team Foundation,找到「在伺服器工作區簽出時取得最新的版本」,並將他打勾。

Step 10. 回到管理工作區,點選進階,將位置由「本機」工作區,修改為「伺服器」工作區。

嚴重警告! 就算透過伺服器工作區的設定,可以讓你在簽出時自動的更新程式碼最新版本,但仍然需要雙端同時維持良好的「簽入」習慣。如果A電腦沒有將寫到一半的程式碼簽入回TFS,那麼B電腦簽出時TFS仍然會回應上一個(無論是誰)簽入的版本給B,而B電腦會認為自己已經拿到最新的程式碼版本,進而開始簽出作業。
當A電腦與B電腦都在寫完程式碼後,開始進行簽入作業,這時候就會出現合併時期的碰撞衝突了!A說自己是最新版,B也說自己是最新版,那TFS要相信誰?因此,一般來說我們會盡量避免這個衝突(因為要花沒必要的時間解決),所以請維持良好的「簽入」習慣。

VisualStudioTeamFoundationVersionControl VisualStudioOnline VSTFVC TFVC