天天看點

repo的小結

repo僅僅是google用Python腳本寫的調用git的一個腳本,主要是用來下載下傳、管理Android項目的軟體倉庫。

1. 下載下傳 repo 的位址: http://android.git.kernel.org/repo ,能夠用 wget http://android.git.kernel.org/repo 或者 curl http://android.git.kernel.org/repo >~/bin/repo 來下載下傳 repo , chmod a+x ~/bin/repo

2. 用repo sync 抓取 android source code 的時候,會常常出現一些錯誤導緻 repo sync 中斷,每次都要手動開始。

能夠在一個腳本裡寫例如以下的指令,來自己主動取反複:

repo sync

while [ $? -ne 0 ]

do

    repo sync

done

repo sync [project] 下載下傳最新本地工作檔案,同步 repository 中的代碼。 能夠指定須要更新的project , 假設不指定不論什麼參數,會同步整個全部的項目

假設是第一次執行 repo sync , 則這個指令相當于 git clone ,會把 repository 中的全部内容都複制到本地。

假設不是第一次執行 repo sync , 則相當于 更新 和 自己主動合并 動作;

repo sync 會更新 .repo 以下的檔案。 假設在merge 的過程中出現沖突, 這須要手動執行 git rebase --continue

3. repo help [ command ] , 顯示command 的具體的幫助資訊内容

如:能夠用指令: repo help init 來擷取 repo init 的其它使用方法

4. repo init -u URL , 在目前檔案夾安裝 repository ,會在目前檔案夾建立一個檔案夾 ".repo" , -u 參數指定一個URL, 從這個URL 中取得repository 的 manifest 檔案。

repo init -u git://android.git.kernel.org/platform/manifest.git ,能夠用 -m 參數來選擇 repository 中的某一個特定的 manifest 檔案,假設不詳細指定,那麼表示為預設的 manifest 檔案 (default.xml)

repo init -u git://android.git.kernel.org/platform/manifest.git -m dalvik-plus.xml , 能夠用 -b 參數來指定某個manifest 分支。

repo init -u git://android.git.kernel.org/platform/manifest.git -b release-1.0

5. repo upload[ project-list ] 上傳改動的代碼 ,假設你本地的代碼有所改動,那麼在執行 repo sync 的時候,會提示你上傳改動的代碼,全部改動的代碼分支會上傳到 Gerrit (基于web 的代碼review 系統), Gerrit 受到上傳的代碼,會轉換為一個個變更,進而能夠讓人們來review 改動的代碼。

6. repo diff [ project-list ] 顯示送出的代碼和目前工作檔案夾代碼之間的差異。

7. repo forall -c command,對全部項目運作一個command指令,這個指令 相當 好用;

8. repo start newbranchname 建立新的branch分支。 "." 代表目前工作的branch 分支。

9. repo prune [project list] 删除已經merge 的 project

10. repo status 顯示 project 的狀态