PHP內部投票:多數人支持遷移到 Git

openkk 14年前發布 | 11K 次閱讀 PHP

來自 PHP 內部消息

PHP 內部在進行去集中化的版本控制系統討論,經過兩周的內部投票和討論,現結果已出來:

    52 票選擇 Git
    15 票選擇 Mercurial
     1 票選擇 bazaar
    13 票繼續使用 SVN

這個投票結果顯示選擇 Git 是壓倒性的。而具體的遷移工作估計要到今年12月才開始。


Git是一個開源的分布式版本控制系統,用以有效、高速的處理從很小到非常大的項目版本管理。

Git 是 Linux Torvalds 為了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟件。

Torvalds 開始著手開發 Git 是為了作為一種過渡方案來替代 BitKeeper,后者之前一直是 Linux 內核開發人員在全球使用的主要源代碼工具。開放源碼社區中的有些人覺得 BitKeeper 的許可證并不適合開放源碼社區的工作,因此 Torvalds 決定著手研究許可證更為靈活的版本控制系統。盡管最初 Git 的開發是為了輔助 Linux 內核開發的過程,但是我們已經發現在很多其他自由軟件項目中也使用了 Git。例如,X.org 最近就遷移到 Git 上來了,很多 Freedesktop.org 的項目也遷移到了 Git 上。

Git與CVS的區別

  • 分支更快、更容易。
  • 支持離線工作;本地提交可以稍后提交到服務器上。
  • Git 提交都是原子的,且是整個項目范圍的,而不像 CVS 中一樣是對每個文件的。
  • Git 中的每個工作樹都包含一個具有完整項目歷史的倉庫。
  • 沒有哪一個 Git 倉庫會天生比其他倉庫更重要。

Mercurial 是一種輕量級分布式版本控制系統,采用 Python 語言實現,易于學習和使用,擴展性強。相對于傳統的版本控制,具有如下優點:

  • 更輕松的管理。
    傳統的版本控制系統使用集中式的 repository,一些和 repository相關的管理就只能由管理員一個人進行。由于采用了分布式的模型,Mercurial 中就沒有這樣的困擾,每個用戶管理自己的 repository,管理員只需協調同步這些repository。
  • 更健壯的系統。
    分布式系統比集中式的單服務器系統更健壯,單服務器系統一旦服務器出現問題整個系統就不能運行了,分布式系統通常不會因為一兩個節點而受到影響。
  • 對網絡的依賴性更低。
    由于同步可以放在任意時刻進行,Mercurial 甚至可以離線進行管理,只需在有網絡連接時同步。

Bazaar 是一個分布式的版本控制系統,它發布在 GPL 許可協議之下,并可用于 Windows、GNU/Linux、UNIX 以及 Mac OS 系統。Bazaar 由 Canonical 公司贊助,目前已服務于 Samba、Drupal 等知名的開源項目。

Bazaar 當前已經包含許多有用的功能,這些功能使之具有如下鮮明的特點:

  • 容易使用
  • 穩定可靠
  • 使用靈活
Bazaar 也包括智能合并、支持插件、可與第三方工具整合、文檔支持等其他特性。

Subversion是一個版本控制系統,相對于的RCS、CVS,采用了分支管理系統,它的設計目標就是取代CVS。互聯網上免費的版本控制服務多基于Subversion。

優于CVS之處

  • 原子提交。一次提交不管是單個還是多個文件,都是作為一個整體提交的。在這當中發生的意外例如傳輸中斷,不會引起數據庫的不完整和數據損壞。
  • 重命名、復制、刪除文件等動作都保存在版本歷史記錄當中。
  • 對于二進制文件,使用了節省空間的保存方法。(簡單的理解,就是只保存和上一版本不同之處)
  • 目錄也有版本歷史。整個目錄樹可以被移動或者復制,操作很簡單,而且能夠保留全部版本記錄。
  • 分支的開銷非常小。
  • 優化過的數據庫訪問,使得一些操作不必訪問數據庫就可以做到。這樣減少了很多不必要的和數據庫主機之間的網絡流量。

使用情況

雖然在 2006年 時 Subversion 的使用族群仍然遠少于傳統的 CVS,但已經有許多開放原碼團體決定將 CVS 轉換為 Subversion。已經轉換使用 Subversion 的包括了 FreeBSD、Apache Software Foundation、KDE、GNOME、GCC、Python、Samba、Mono 以及許多團體。有許多的團隊換用 Subversion 是因為 Trac 所提供的專案管理環境。除此之外,一些自由軟件開發的協作網如SourceForge除了提供 CVS 外,現在也提供專案開發者使用 Subversion 作為原碼管理系統, JavaForge、Google Code以及 BountySource 則以 Subversion 作為官方的原碼管理系統。


 本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!