Android에 기반한 project를 repo로 mirror로 만들때는 –mirror option을 주어서 bare git을 만든다(지난 posting 참조). 만약 이렇게 만들어진 bare repository로 부터 일반적인 형태의 source repository를 생성하려 한다면 어떻게 해야 할까? 이 posting에서는 git-daemon등을 설치 하지 않고 local에 있는 bare git으로 부터 source 구조를 만들어 내는 방법을 설명한다.
Repo Init
$ repo init help Usage: repo init -u url [options]
repo init 명령을 수행할 때 -u 뒤에 url을 적어준다. 일반적으로 이 부분에 ‘git://’이나 ‘ssh://’ protocol로 시작하는 주소를 적지만 우리가 하려는 것은 file 복사 이므로 ‘file://’을 적어서 repo init을 수행한다.
$ repo init -u file://PATH_TO_MIRROR -b BRANCH -m MANIFEST_XML
놀랍게도(!) init이 수행되면서 .repo directory가 생성된다.
Fetch Address 수정
.repo/manifests에서 fetch address를 가지고 있는 xml file을 찾아서 접근 address를 file경로로 수정한다.
<!-- <remote name="REMOTE_NAME" fetch="ssh://SERVER_IP" review="REVIEW_ADDRESS:8080"/> --> <remote name="REMOTE_NAME" fetch="file://<path_to_mirror>/" review="REVIEW_ADDRESS:8080"/>
init이 완료 되고 난 후에는 일반적인 것과 같이 repo sync 명령어를 수행하면 된다. file://로 수정한 xml file들을 원래 상태로 되돌리는 건 다들 아실테고 … 😉