안드로이드는 수많은 git 프로젝트를 묶어서 하나의 프로젝트로 관리하고 있다. 이를 위해서 구글에서 python 기반의 새로운 관리 툴을 하나 선보였는데, 이것이 repo 이다.
repo 를 받고 설치하는 법등은 인터넷을 잘 찾아보면 내용이 있으니, 여기서 다루지는 않겠다. 여기서는 간단하게 여러개의 프로젝트를 하나의 repo 로 관리하는 법을 알아보려고 한다.
참고로 python 을 모르기 때문에 repo 가 어떻게 동작하는지를 분석하지는 않는다. 다만 단순하게 사용하는 입장에서 기술할 것이다.
더 상세한 manifest format 을 보려면 다음을 참고한다. repo Manifest Format
1. git 프로젝트 등록
git 프로젝트를 등록하는 방법도 인터넷을 검색하면 설명이 잘 된 사이트를 찾을 수 있을 것이다. 간단하게 절차를 기록해보면 다음과 같다.
# mkdir <my_project>
# cd <my_project>
# git init
< add files into my_project >
# git add .
# git commit -a --allow-empty -m "Initial Code Commit"
이 상태로 생성된 git proejct 를 --bare 형태로 복사하고 공개 git 이라는 것을 알려준다.
# cd ..
# git clone --bare <my_project> <my_project>.git
# touch <my_project>.git/git-daemon-export-ok
다음의 명령은 git 을 http 프로토콜을 사용해서 clone 이 가능하도록 제공해주는 것이다.
# cd <my_project>.git
# git --bare update-server-info
# mv hooks/post-update.sample hooks/post-update
# chmod 755 hooks/post-update
==> git clone http://yourserver.com/~you/proj.git 으로 가능함
(물론 이때 웹서버가 사용자별 웹페이지에 접근 할 수 있도록 설정되어 있어야 한다. 그렇지 않다면, 기본 웹서버 위치에 git 프로젝트를 cloning 시켜야 한다)
아래 사이트를 참고하도록 한다.
참고 :
http://khmirage.tistory.com/309
http://wiki.kldp.org/Translations/html/Git-User-Manual/
2. manifest git 만들기
우선 repo 프로젝트를 만들기 위해서 manifest.xml 이라는 파일을 만들어야 한다. repo 는 manifest.xml 파일을 갖는 git 프로젝트가 있는지를 확인하기 때문이다. 우선 default.xml 파일을 가지는 manifest 라는 프로젝트를 만들도록 한다.
# mkdir manifest
# cd manifest
# git init
# touch default.xml
# git add .
# git commit -a --allow-empty -m "Initial Code Commit"
default.xml 파일 내용은 다음과 같은 형식으로 구성한다. 추가하고 싶은 프로젝트를 <project> 태그 사이에 아래와 같은 형식으로 추가한다.
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote name="origin" : 원격 저장소 이름
fetch=".."
review="git://yourserver.com/" /> : 저장소 주소 --> repo upload 에 의해서 review 시스템에 upload 할 gerrit 의 호스트네임 입니다.
<default revision="master" : 브랜치명
remote="origin" />
<project path="your/path" name="your/path" />: path : 로컬에 저장될 path, name: git 저장소 이름
<project path="your/path2" name="your/path2" />
......
</manifest>
여기서는 기본적인 내용만 기록한 것이고, 좀더 고급 사용을 원한다면 manifest format 페이지를 참고한다.
3. repo 를 사용하기 전에 git daemon 을 설정해준다. 간단하게 git daemon 명령을 실행해도 되고, 데몬 실행 스크립트에 추가하여 자동으로 실행하게 하도록 해도 된다.
# git daemon --verbose --export-all --base-path=/your/base_path --enable=receive-pack &
--export-all : 이 옵션이 없는 경우 git-daemon-export-ok 파일이 있는 git 프로젝트에 한해서 git 프로토콜을 지원해준다.
--enable=receive-pack : 이 옵션이 없는 경우, 외부에서 push 가 불가능하다.
4. repo init
위와 같이 manifest git 프로젝트가 만들어지면, repo 를 사용해서 초기화 할 수 있다.
# repo init -u git://yourserver.com/your_manifest_path/manifest
# repo sync
이제 부터 repo 를 사용하 프로젝트 관리가 가능해졌다. 필요한 프로젝트를 manifest 에 추가하면 repo 에서 관리가 가능해진다.
'IT 기술 > 개발환경_유틸 관련 팁' 카테고리의 다른 글
flashbench 사용법 (0) | 2013.01.11 |
---|---|
git clone 의 두가지 옵션 --bare / --mirror 의 차이점 (0) | 2012.12.03 |
[Make] PHONY / FORCE (0) | 2012.11.12 |
[gcc] floating point ABI 에 대해서 (0) | 2012.11.06 |
[git] git checkout 에서 '--' 의 의미 (0) | 2012.11.06 |