版本管理系統的戰國時代

revision control system (RCS),也又稱 versioning control system (VCS)

想當年在資工系大一的時候,在擔任maple BBS的實習生時,就開始接觸subversion(svn)

如今,已經有一大堆版本管理系統了,堪稱The war of revision control system

雖然我沒碰過更古老更有名的始祖CVS

但選擇少或許是件好事,現在我們有許多選擇… 大概寫一下目前的研究心得,裡面分析的優缺點也都是個人意見…

Svn : 以前用過得版本管理系統,是一種集中式(centralized)的VCS,在windows上的介面是個可愛的烏龜。優缺點如下:

  • pros: 容易學習(強大的線上說明書: 中文 / 英文),指令列好用
  • cons: 效能比一些VCS差
  • 建議使用情境: 單人專案、小型多人專案(沒有太多分支)

Git : 由鼎鼎大名的Linus Torvalds與開源社群共同開發,他們好像是因為不太爽svn所以才去開發這個。是一個分散式(distributed)的VCS。用到現在,個人覺得的優缺點如下

  • pros: 高效能(不管是儲存還是運作)、功能強
  • cons: 指令列介面設計不佳 (Reference)
  • 建議使用情境: 大型開源專案、多分支專案

Bzr : 全名Bazaar,由著名的Canonical公司與開源社群共同開發,開發的動機不曉得…不過有個工具叫做etckeeper來著的預設使用這個VCS,優缺點如下:

  • pros: 指令列好用
  • cons: 分支處理效能不佳
  • 建議使用情境: 大型開源專案

Hg : 全名Mercurial,沒錯就是叫做”水銀”,還沒用過,只知道google code有使用這個VCS,然後是用python寫的(所以應該對python蠻有利的)

另外值得一提的是,其實有些雲端儲存服務也有提供版本控制,例如Dropbox,曾經有一次在GPGPU課上實驗多人開發專案的版本控制,其實效果還不錯XD,不過還是有優缺點可以說:

  • pros: 更直覺…圖形化版本的VCS…
  • cons: 一定要網路才可以版本控制,功能不像其他VCS這麼完整
  • 建議使用情境: 單人專案、小型多人專案(沒有太多分支)

其實會讓人納悶為什麼會有這麼多版本管理系統,在現今這種全球化的世界,說不定就是因為每個系統各自有其缺點,所以才會雨後春筍的一直冒出來吧…

當然這篇主要是給自己紀錄一下,除此之外也有蠻多文章可以看的:

http://www.smashingmagazine.com/2008/09/18/the-top-7-open-source-version-control-systems/

http://www.techtatva.com/2010/09/git-mercurial-and-bazaar-a-comparison/

http://stackoverflow.com/questions/995636/popularity-of-git-mercurial-bazaar-vs-which-to-recommend

http://zh-tw.whygitisbetterthanx.com/

http://blog.assembla.com/assemblablog/tabid/12618/bid/7437/Why-Subversion-does-not-suck.aspx

Advertisements
This entry was posted in All. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s