SCM大車拼

去年初的時候也寫過一篇 CMS 大車拼,今年換寫 SCM。

最近在看 git 的資料時,順便查了一下和其他 Version Control System 的比較,主要是因為要查 MS 提供的 Visual Source Safe,雖然沒必要我是不會去用它的,不過瞭解一下它和 Subversion 及 git 的差異倒沒問題。

找到在 Version control systems comparison 提供了常見 SCM 工具的功能比較表。這裡比較了我知道認識的人有再用的幾套,包括 ClearCase, CVS, Git, Subversion, Visual Source Safe。

Atomic Commit

指的是帶入 transcation 的觀念,一次的提交(commit)的內容可能會包含多個檔案的修改,這會被視為一個整體的操作,避免在 commit 的過程中發生錯誤,導致版本內容不一致。以 CVS 為例,假如我加了一個功能,需要修改10的檔案,就會一次 commit 10個檔案,如果在中途發生錯誤,會導致有些檔案是新版的,有些是舊版,有 Atomic Commit 可以避免這個問題。

Intelligent Merging after Moves or Renames

以 Subversion 為例,它的 rename 等於是把原檔案刪除,再加入一個新的檔案(內容不變),系統本身不維護更名這動作的資訊,所以要作 merge 到一個已被更名的檔案就會有麻煩,基本上這還是要透過人工的方式處理,而其他幾套也都不支援這樣的動作。

File and Directories Copies

Subversion有,可是 Git 沒有..再研究看看會有什麼影響..

其他的部份

在幾個比較項目上,Subversion 還需要透過其他 plug-in 或程式來達成,而 VSS 本身只支援 Windows 平台

比較的項目太多了,暫時先不一一註記,不過如果要打槍 VSS 的話,在 Wikipedia 上反而有個不錯的理由:
Visual SourceSafe

VSS雖然是微軟公司的產品,但微軟內部卻很少使用它。微軟內部使用一個名為SLM的版本控制系統,直至1999年。之後,微軟內部改以使用修改自Perforce的SourceDepot。

連自己都不用的產品,應該也沒什麼前途……

其他教學文件

Leave a Reply