建立最簡單的repo伺服器例項講解

2021-08-17 20:06:21 字數 2390 閱讀 2535

repo是乙個將多個git tree進行系統管理的工具,repo本身不是乙個源**版本管理系統,它只是聯合manifest.git中project list xml的多個工程,統一管理。在執行repo sync的情況下,xml檔案中指定的工程都統一被sync下來。

下面用最簡單的例項證明如何建議乙個repo服務。

1. 進入home目錄,建立repo-server子目錄,如/home/lihacker/repo-server

2. 在該目錄中新建乙個manifest.git目錄,初始化為乙個git tree

即執行git init

3. 在/home/lihacker/repo-server/manifest.git目錄中新增乙個default.xml檔案,內容如下:

[html]

view plain

copy

xmlversion

="1.0"

encoding

="utf-8"

?>

<

manifest

>

<

remote

name

="repo-server"

fetch

="/home/lihacker/repo-server"

review

="review.source.android.com"

/>

<

default

revision

="master"

remote

="repo-server"

/>

<

project

name

="external/example1"

path

="external/example1"

/>

<

project

name

="external/example2"

path

="external/example2"

/>

manifest

>

git add default.xml並commit。

其中的remote行指定repo伺服器的位址,default行指定預設的版本以及remote伺服器,這個需要根據實際情況指定。我們這裡底層git是用最簡單的檔案拷貝,實際中可能是git,git+ssh或者http。

接下來的2行指定project list,有2個工程,分別位於伺服器/home/lihacker/repo-server/external/example1和/home/lihacker/repo-server/external/example2目錄,而客戶repo sync後,將位於當前目錄下的external/example1和external/example2目錄。

因此,伺服器端需要再初始化/home/lihacker/repo-server/external/example1和/home/lihacker/repo-server/external/example2這2個git tree。

[plain]

view plain

copy

lihacker@lihacker-laptop:~/repo-server/external/example1$ pwd  

/home/lihacker/repo-server/external/example1  

lihacker@lihacker-laptop:~/repo-server/external/example1$ git init  

4.客戶端sync**

建立~/repo-client目錄,並執行:

[plain]

view plain

copy

repo init -u ~/repo-server/manifest.git/  

之後執行repo sync,你會發現~/repo-client多出了external/example1和external/example2的目錄,另外~/repo-client下還有乙個隱藏的.repo目錄。

[plain]

view plain

copy

lihacker@lihacker-laptop:~/repo-client$ ls -a  

.  ..  external  .repo  

[plain]

view plain

copy

lihacker@lihacker-laptop:~/repo-client$ tree  

.  `-- external  

|-- example1  

|   `-- 1  

`-- example2  

`-- 2  

3 directories, 2 files  

建立最簡單的repo伺服器例項講解

建立最簡單的repo伺服器例項講解 2012 06 18 11 50 21 我來說兩句 收藏 repo是乙個將多個git tree進行系統管理的工具,repo本身不是乙個源 版本管理系統,它只是聯合manifest.git中project list xml的多個工程,統一管理。在執行repo syn...

建立最簡單的repo伺服器例項講解

repo是乙個將多個git tree進行系統管理的工具,repo本身不是乙個源 版本管理系統,它只是聯合manifest.git中project list xml的多個工程,統一管理。在執行repo sync的情況下,xml檔案中指定的工程都統一被sync下來。下面用最簡單的例項證明如何建議乙個re...

建立最簡單的repo伺服器例項講解

repo是乙個將多個git tree進行系統管理的工具,repo本身不是乙個源 版本管理系統,它只是聯合manifest.git中project list xml的多個工程,統一管理。在執行repo sync的情況下,xml檔案中指定的工程都統一被sync下來。下面用最簡單的例項證明如何建議乙個re...