git服務端程序比較

引子

最近試用了幾個git服務端程序,把當前試用的感受和比較列舉一下。
當然,理論上說,git是不需要服務端程序的,安裝完git之後,可以使用ssh來登錄,使用主機的用戶管理來做用戶權限管理,但是對於windows用戶似乎有點難,操作有點複雜。所以纔有了一衆在git之上開發的服務端程序。這些程序各有各的優點,可以根據自身的需要選擇。
目前試用了gitlab,gerrit,gogs,還有一個gitolite沒試用,但是也從文檔中0瞭解了一些,也一併列舉。
下面從功能,權限控制粒度,用戶管理方式,軟件依賴,安裝難易程序,使用難易程度,資源消耗等方面進行比較

功能

總體來說,gitlab是功能最全的,包含了用戶管理,代碼管理,issue管理,持續集成等功能,使用pull request的方式,可以做到代碼審查的功能。
gerrit配合openLDAP可以做到用戶管理,它的代碼審查功能是它的亮點。
gogs可以認爲是簡化版的gitlab,也包含了用戶管理,代碼管理,issue管理,也可以使用pull request的方式做到代碼審查。
gitolite從文檔中看,似乎只做到了用戶管理。

權限控制粒度

gitlab和gogs可以以庫爲單位來設置權限,可以設置爲只讀和可讀寫。
gerrit也可以以庫爲單位進行權限設置。但是可以對用戶設置更多的權限,可以賦給審覈權限,提交權限,直接push權限等等。
這三個軟件是否可以以分支爲單位進行權限控制還不太瞭解。
gitolite從文檔看,可以做到分支級的權限控制。

用戶管理方式

gitlab和gogs都可以直接使用web端來直接創建用戶,非常方便。
gerrit使用的是openLDAP來管理用戶,也可以配合phpldapadmin來使用web端來管理用戶。
gitolite從文檔看,是通過修改文件來進行管理的

軟件依賴

gitlab和gogs都依賴於數據庫,gogs支持sqllite,所以用起來也不是很複雜。
gerrit本身只關注代碼審查,需要依賴openLDAP來管理用戶。
gerrit和gitolite都是通過配置文件來管理配置,可以直接使用git來管理,做到了自舉。

安裝難易程度

從使用docker安裝來說,gerrit安裝時由於依賴於openLDAP,是遇到坑最多的。但是最終安裝完成後,回頭看,有好多問題是由於使用了win7安裝導致。
gitlab使用了docker安裝和在ubuntu虛擬機下安裝,都還算比較順序。除了內存分配了2G,導致502錯誤之外。
gogs是安裝最簡單的。雖然只試用了docker安裝,但是從文檔中看到安裝方式還是挺多的。

使用難易程度

gitlab和gogs使用起來對於有github基礎的人來說,是挺簡單的,與github很像。其中gogs由於提供的功能也沒那麼多,摸索起來還是挺快的。
gerrit的摸索還是費了一些時間的,特別是change的處理,還有強大的權限管理功能。
gitolite從文檔看,需要配置文件,有點嚇到了。

資源消耗

gitlab的資源消耗是值得注意的,2G的內存不夠,需要分配至少3G的內存,查看監視,也是使用了2.16G的內存。
gogs和gerrit用起來沒有發現會影響主機操作。所以可能資源消耗是比較少的。
gitolite從文檔看,消耗也是很少的。

中文支持

gitlab可以設置爲中文,gogs天然支持中文
gerrit和gitolite不支持中文。

總結

總結一下各個軟件的亮點和缺點

軟件名 亮點 缺點
gitlab 功能強大,可以管理大型項目 資源消耗大
gogs 中文支持好,使用簡單
gerrit 強大的代碼審查功能 安裝配置比較複雜
gitolite 可以做到分支級別的權限管理,資源消耗低 配置使用文件完成
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章