repo是一個將多個git tree進行系統管理的工具,repo自己不是一個源代碼版本管理系統,它只是聯合manifest.git中project list xml的多個工程,統一管理。在運行repo sync的狀況下,xml文件中指定的工程都統一被sync下來。html
下面用最簡單的實例證實如何建議一個repo服務。android
1. 進入home目錄,建立repo-server子目錄,如/home/lihacker/repo-servergit
2. 在該目錄中新建一個manifest.git目錄,初始化爲一個git tree服務器
即運行git initssh
3. 在/home/lihacker/repo-server/manifest.git目錄中添加一個default.xml文件,內容以下:ide
git add default.xml並commit。工具
其中的remote行指定repo服務器的地址,default行指定默認的版本以及remote服務器,這個須要根據實際狀況指定。咱們這裏底層git是用最簡單的文件拷貝,實際中多是git,git+ssh或者http。fetch
接下來的2行指定project list,有2個工程,分別位於服務器/home/lihacker/repo-server/external/example1和/home /lihacker/repo-server/external/example2目錄,而客戶repo sync後,將位於當前目錄下的external/example1和external/example2目錄。spa
所以,服務器端須要再初始化/home/lihacker/repo-server/external/example1和/home/lihacker/repo-server/external/example2這2個git tree。.net
4.客戶端sync代碼
創建~/repo-client目錄,並運行:
以後運行repo sync,你會發現~/repo-client多出了external/example1和external/example2的目錄,另外~/repo-client下還有一個隱藏的.repo目錄。