星期五, 6月 18, 2010

我不喜歡 M$ 的 TFS!!!

Visual Studio TFS 是個神奇的東西

你說他不像是 SCM 嘛?
他有版本控管,舉凡 branch/tags/trunk 基本上該有的功能都有
也可以做 compare/view history 等等功能,現在在 VS2010 他還結合了不少東西
像是 Check in Policy (這應該在 2008 就有了)、Test Lab 等

你說他像是 SCM 嘛?
基本上,每個檔案都是唯讀,必須要有 Checkin/CheckOut 的動作才能做編輯以及同步
這個動作理論上不需要你自己去做,只要你做檔案的編輯,VS 2010 『會自動幫你做』

不過,當我在 Java 開發已經開始厭惡 SVN 這種中央集權管理的 SCM ,開始改用像是 Mercurial、Git 這樣的 DSCM 的時候
到了 .Net 開發卻又遇到這樣的窘境

因為 TFS 遇到網路環境不好的時候,對我來說是個噩夢!!!
  1. 如果你只是想改個註解或小程式,你得等待 Check out 出來
    如果你的網路慢,就表示你的耐心要好,不然光等待 Check Out 就會令人抓狂
  2. 這個檔案在你的本機端會是唯讀的 (這點承襲 Source Safe 令現在的我相當不習慣)
    所以你不能用文字檔編輯器,要用的話,要自己改掉檔案屬性,很麻煩
    這也表示你不用去想大量的文字取代了~~~,除非你把整個目錄的檔案都變成可讀寫,不過下次 Check in 的時候你就知道了
  3. 你如果沒有連上線,我是指保持與 TFS Server 一直連線,你就會收到很多訊息
    如果你專案開啟就沒上線,頂多是說專案變成 Offline 狀態~ 之後的編輯會在下次 Online 的時候檢查
    但是如果你是專案開啟時上線,但是之後離線的話,你就會發現寫程式真的很不愉快!!!因為要不是唯讀屬性沒開,就是你必須要等到 Check out Timeout 的訊息出來
    在這段時間,你就是等等等......
  4. 由於所有的檔案都受到管理,包含專案檔 (sln) 所以,不管是你 Add Item or Delete Item
    你都得 CheckOut sln 檔案,這表示.......你很難管~~~
慢慢的一點一點時間被吞噬的感覺,實在不好
累積起來,真的無言....

老實說,VS2010 新增的幾項功能,的確是讓人驚豔
而原本 TFS 有的功能,也的確讓人覺得是個不錯的 idea
不過,那些 SCM 基本的功能,卻不見有改進的地方,我到覺得那才是一個 SCM 應該要注意的事情
因為 TFS 基本上還是 SCM 阿!!!你外掛了很多功能,卻並不改善 Coding 人員的開發,這讓我覺得真是本末倒置

沒有留言:

張貼留言

Powered By Blogger