在創業公司,什麼東西都要自己搞定,除了開發android系統和研究核心,還要自己來搭建一個程式碼管理伺服器。
其實搭建一個伺服器非常簡單,尤其只需要在區域網內搭建,網上已經提供好了我們需要的一切。
伺服器的搭建
首先我們需要一個裝有linux系統的計算機充當伺服器,我這裡是一臺ubuntu12.04的系統。裡面預設安裝了perl和bash作為shell。
然後需要安裝git-core,openssh-server等必備軟體,在ubuntu 安裝這些軟體比較方便。
sudo apt-get install git-core openssh-server
建立一個叫做git的使用者。建立步驟和可能出現的問題可以參見這裡:http://lingavin.com/blog/2013/04/27/add-new-user/
gitolite3.0
安裝環境後,就可以使用gitlote來搭建一個伺服器了。首先是下載gitolite原始碼。網址是:https://github.com/sitaramc/gitolite
安裝這個軟體,首先要保證$HOME/bin
資料夾存在,然後準備好客戶機的xxx.pub
檔案。
這裡會涉及到一個問題,什麼是xxx.pub
和為什麼需要用這個檔案。xxx.pub
是客戶端用sshkeygen生成的公鑰。至於為什麼需要初始化的時候提供這個檔案,那是因為初始化後,這個提供公鑰的客戶機將成為gitolite的管理員,在客戶機裡管理各個版本庫,所以需要在初始化的時候提供。
版本庫的管理不會在伺服器上直接操作,而是在客戶端,通過管理一個特殊的倉庫來操作。
具體步驟就是:
git cloen git://github.com/sitaramc/gitolite
#下面這一步其實是在/home/git/bin做了一個軟連線
gitolite/install -ln
export PATH=/home/git/bin:$PATH
gitolite setup -pk xxx.pub
完成了這幾步,伺服器的設定就算完成了。
客戶端
客戶端需要保證的是能夠ping通伺服器端,然後就是下載gitolite-admin這個倉庫。命令如下:
#請把host_ip替換為伺服器的真實ip
git clone git@host_ip:gitloite-admin.git
可以發現clone下來的版本庫裡面有兩個資料夾,分別是conf
keydir
。
現在我們就通過新增一個開發者wang和新增一個倉庫android4_0_3.git來演示如何操作這兩個資料夾。
增加一個開發者
首先需要wang的公鑰,不會生成公鑰的話這裡有個參考:https://help.github.com/articles/generating-ssh-keys
把wang的公鑰改名為wang.pub放到keydir檔案中,然後git add
git commit
git push
收工。
增加一個倉庫
增加倉庫需要到conf目錄下,修改gitolite.conf
repo android4_0_3
RW+ = xxx
RW = wang
R = @all
加上上面內容,同樣是git add
git commit
git push
就可建立一個名叫android4_0_3的倉庫了。
其中這個版本庫賦予了不同人不同的許可權。例如xxx使用者有讀寫許可權和刪除等終極許可權。而wang有讀寫許可權和建立新分支的許可權,但不可以刪除遠端版本。其他所有人則有讀的許可權,也就是隻要你知道倉庫,就可以clone下來。
開發者可以做的事情
你可以通過ssh git@host_ip info
來檢視你可訪問的版本庫以及其地址。
最後
上面這些資訊都是通過http://gitolite.com/gitolite/master-toc.html來獲得的,其中還有很多內容和細節大家可以參考。