文章目錄
- 寫在前面的話
- 背景
- 編寫manifest文件
- 最終效果
寫在前面的話
前面有講過通過manifest清單導入項目到gitlab中,但是實際的操作是不同gitlab實例之間的操作,然而對于在不同gitlab實例的repo遷移而言,顯然direct transfer會更合適。
背景
客戶有這么一個需求,需要將coding中的代碼遷移到gitlab中,但是coding中的倉庫也比較多,而配置mirror的話,需要一個一個的配置;因此推薦客戶使用manifest批量導入到gitlab中。
編寫manifest文件
<?xml version="1.0" encoding="UTF-8"?>
<manifest><remote name="coding"fetch=".."review="https://username:password@e.coding.net/g-ouwd2814/repo1" /><default revision="master"remote="coding"sync-j="4" /><project path="docker-in-docker" name="docker-in-docker.git" groups="repo1" /><project path="test-1" name="test-1.git" groups="repo1" />
</manifest>
說明:
<remote> 標簽:name="coding": 定義了一個遠程倉庫的別名,這里叫 "coding"。fetch="..": 指定了從相對路徑 ".." 獲取遠程倉庫的默認基礎目錄。review="https://username:password@e.coding.net/g-ouwd2814/repo1": 遠端倉庫所在的群組的url,username為coding中項目的用戶名,password是coding中項目的token,這里也可以使用coding中的個人用戶名和密碼。<default> 標簽:revision="master": 設置了所有未單獨指定 revision 的項目的默認分支為 "master"。remote="coding": 指定了默認的遠程倉庫別名為 "coding",這里的 "coding" 應該與之前定義的某個 <remote> 的 name 屬性值匹配,即 "coding"。sync-j="4": 表示在同步過程中,可以并行執行的作業數為4,這可以加快多倉庫同步的速度。第一個 <project> 定義了一個項目,其 path="docker-in-docker" 表示在本地的工作目錄中,該項目會被放置在名為 "docker-in-docker" 的子目錄下;name="docker-in-docker" 指定該項目在遠程倉庫中的名稱,通常指向一個Git倉庫;groups="repo1" 指定項目所屬的組別或標簽。
第二個 <project> 類似,定義了另一個項目 "test-1",同樣指定了路徑、倉庫名以及所屬的組別。
最終效果