1. 程式人生 > >gclient多原始碼管理工具 DEPS檔案

gclient多原始碼管理工具 DEPS檔案

gclient來管理原始碼的checkout, update等。 gclient是google專門為這種多源專案編寫的指令碼,它可以將多個原始碼管理系統中的程式碼放在一起管理。甚至包括將Git和svn程式碼放在一起。

 

重點說明下和gclient密切相關的兩類檔案.gclient和DEPS。

 

.gclient檔案是gclient的控制檔案,該檔案放在工作目錄的最上層。是主檔案, ".gclient"檔案是一個Python的指令碼

 

它指定以下變數

solutions:一組字典,用於指定要獲取的專案

此檔案在src目錄的同級目錄。

  • target_os:一個可選的(目標)作業系統陣列,用於獲取特定於作業系統的依賴項。

 

 

 

solutions陣列中描述的每個專案都可以包含一個可選的DEPS檔案。.gclient檔案是gclient config <url>手動生成的。

 

solutions下面又有下面這些值:

  • name: the path of the checkout.
  • url: the remote repository to fetch/clone.

 

 

 

 

  • url : 原始碼所在的目錄,gclient希望checkout出的原始碼中包括一個DEPS的檔案,這個檔案包含了必須checkout到工作目錄的原始碼的資訊;
  • deps_file 這是一個檔名(不包括路徑),指在工程目錄中包含依賴列表的檔案,該項為可選,預設值為"DEPS"
  • custom_deps 這是一個可選的字典物件,會覆蓋工程的"DEPS"檔案定義的條目。一般它用作本地目錄中,那些不用checkout的程式碼,如

 

  1. "custom_deps": {  
  2.   "src/content/test/data/layout_tests/LayoutTests": None,  
  3.   "src/chrome/tools/test/reference_build/chrome_win": None,  
  4.   "src/chrome_frame/tools/test/reference_build/chrome_win": None,  
  5.   "src/chrome/tools/test/reference_build/chrome_linux": None,  
  6.   "src/chrome/tools/test/reference_build/chrome_mac": None,  
  7.   "src/third_party/hunspell_dictionaries": None,  
  8. },  

 

         或者讓本地目錄從不同位置checkout一個新的程式碼出來,或者checkout不同的分支、版本等。也可以用於增加在DEPS中不存在的新的項 目

 

 

 

在每個checkout出的工程中,gclient期望發現一個DEPS檔案,它定義了工程不同部分都是如何checkout出來。

“DEPS”也是一個python指令碼,最簡單的,如下:

 

 

 

 

DEPS檔案指定專案的依賴項,它指定以下變數:

deps: a dictionary of child dependencies to fetch要獲取的子依賴項

 

  1. deps = {  
  2.   "src/outside" : "http://outside-server/[email protected]",  
  3.   "src/component" : "svn://svnserver/component/trunk/[email protected]",  
  4.   "src/relative" : "/trunk/[email protected]",  
  5. }  

deps的每個條目都包含一個key-value對,key是被checkout的本地目錄,而value就是對應的遠端URL。

如果路徑是以'/'開頭的,那麼它是一個相對URL,相對與.gclient中URL地址。

 

 

 

hooks: hooks to run after a sync.

 

  • Var(): replace this string with a variable defined in vars or overridden.

將此字串替換為在vars中定義或覆蓋的變數

 

 

 

 

http://blog.csdn.net/doon/article/details/9287693