一、安裝
建立目錄和修改環境變數
$ mkdir ~/bin
$ path=~/bin:$path
$ curl > ~/bin/repo
$ chmod a+x ~/bin/repo
二、幫助repo help
查詢具體命令的幫助
repo help
repo 倉庫狀態
repo help init
狀態
repo status .
三、初始化$ repo init -u
示例
$ mkdir working_directory
$ cd working_directory
repo init -u
/manifest
這個命令會在當前資料夾建立乙個.repo
資料夾,它包含
repo/: 其實是乙個repo的python原始碼
manifest.xml: 工作樹的主配置檔案,不要編輯這個檔案
projects/: 每個git工程的 .git結構
local_manifest.xml: 這個檔案不是repo建立的,你可以建立這個檔案來代替主配置檔案,也就是臨時測試用用
選項:-u: 指定manifest倉庫位址
-m: 選擇倉庫中某個manifest檔案,如果沒有設定,就使用default.xml
-b: 指定乙個分支或修正版本
四、拉**
repo sync
repo sync project0 project1 project2 ...
五、修改repo
如果你想修改repo的結構,應該在.repo/manifests
資料夾裡面修改,然後用git命令提交
manifest.xml
檔案結構:
<?xml version="1.0" encoding="utf-8"?>
name="shift"
fetch="git:" />
revision="kk-shift"
remote="shift"
sync-j="1" />
path="packages/shift/videoplayer"
name="platform/packages/shift/videoplayer" />
name="another_manifest.xml" />
manifest>
manifest
這個是配置的頂層元素,即根標誌
remote
name:在每乙個.git/config檔案的remote項中用到這個name,即表示每個git的遠端伺服器的名字(這個名字很關鍵,如果多個remote屬性的話,default屬性中需要指定default remote)。git pull、get fetch的時候會用到這個remote name。
alias :可以覆蓋之前定義的remote name,name必須是固定的,但是alias可以不同,可以用來指向不同的remote url
fetch :所有git url真正路徑的字首,所有git 的project name加上這個字首,就是git url的真正路徑
review :指定gerrit的伺服器名,用於repo upload操作。如果沒有指定,則repo upload沒有效果
default
設定所有projects的預設屬性值,如果在project元素裡沒有指定乙個屬性,則使用default元素的屬性值。
remote :遠端伺服器的名字(上面remote屬性中提到過,多個remote的時候需要指定default remote,就是這裡設定了)
revision :所有git的預設branch,後面project沒有特殊指出revision的話,就用這個branch
sync_j : 在repo sync中預設並行的數目
sync_c :如果設定為true,則只同步指定的分支(revision 屬性指定),而不是所有的ref內容
sync_s : 如果設定為true,則會同步git的子專案
include
通過name屬性可以引入另外乙個manifest檔案(路徑相對與當前的manifest.xml 的路徑)
name :另乙個需要匯入的manifest檔案名字
可以在當前的路徑下新增乙個another_manifest.xml,這樣可以在另乙個xml中新增或刪除project
remove-project
從內部的manifest表中刪除指定的project。經常用於本地的manifest檔案,使用者可以替換乙個project的定義
六、建立快照
你可以根據當前.repo
的狀態來建立乙個配置檔案
repo
manifest
-osnapshot
.xml
-r
這個檔案可以用來儲存當前的工作狀態
恢復乙個快照,可以用下面的命令
cp snapshot.xml .repo/manifests/
repo init -m snapshot.xml
repo sync -d
注意:沒有commit的修改不會恢復,已經commit的但是沒有push的是可以恢復的,但只能從本地恢復。
七、切換分支
repo start branch_name project_name
檢視分支
repo branches
提交
repo upload
安全刪除不需要的分支
repo prune
八、基本工作流程
repo start
開始乙個新的工作分支use to start a new topic branch.
git commit
提交修改use git add to stage changes.
repo upload
上傳修改
九、一些問題
如果repo長時間沒有響應,可以試試殺掉python程序
killall python
如果想要repo執行時的更多資訊,可以加上--trace
選 repo使用小結
可能出現的錯誤 fatal cannot get 如果出現這個錯誤 則unset下http 和https的 使用下面命令,具體版本號參考前面網頁中顯示的最新版本號。curl bin repo 修改執行許可權 chmod a x bin repo 本地建立乙個工程目錄,並進去 repo init u ...
repo的基本命令
或者 curl 用repo sync 在抓去 android source code 的時候,會經常出現一些錯誤導致 repo sync 中斷,每次都要手動開始。可以用如下的命令,來自動重複 1 while ne 0 do repo sync done repo help command 顯示com...
Repo 的使用小結
一 安裝 建立目錄和修改環境變數 mkdir bin path bin path curl bin repo chmod a x bin repo 二 幫助 repo help查詢具體命令的幫助 repo helprepo 倉庫狀態 repo help init狀態 repo status 三 初始...