repo init은 repo를 현재 폴더에 설치하는 명령어. .repo폴더를 만들어서 안에 Git의 저장소를 넣게 된다. 또한 manifest.xml을 포함하게 되어서 이 .repo/manifests에 심볼릭 링크로 연결되어 있다.
option-u : manifest repository의 url을 지정한다.
-m: 저장소에서 manifest file을 선택할 수 있다. 어떤 manifest 이름도 선택되지 않으면 default.xml을 선택하게 된다.
-b: revision을 선택하게 된다. 예를 들어서 특정 manifest-branch를 선택하게 된다.
option-u : manifest repository의 url을 지정한다.
-m: 저장소에서 manifest file을 선택할 수 있다. 어떤 manifest 이름도 선택되지 않으면 default.xml을 선택하게 된다.
-b: revision을 선택하게 된다. 예를 들어서 특정 manifest-branch를 선택하게 된다.
repo sync 사용법 및 option
repo sync -c -j4
c : 현재 manifest에 설정된 branch 의 소스만을 sync함
j : job number (쓰레드를 몇 개 사용)
repo sync -c -j4
c : 현재 manifest에 설정된 branch 의 소스만을 sync함
j : job number (쓰레드를 몇 개 사용)
d : 지정된 프로젝트를 manifest revision으로 변경한다. 만약 프로젝트가 현재 topic branch인데, 임시로 manifest revision이 필요할 경우에 유용하다.
s: 현재 manifest에 있는 manifest-server element를 통해서 지정된 가장 좋은 빌드와 동기화 한다.
f : 프로젝트가 fail 하더라도 다른 프로젝트들과 동기화를 계속 이어간다.
f : 프로젝트가 fail 하더라도 다른 프로젝트들과 동기화를 계속 이어간다.
repo sync는 변화되었거나 업데이트 된 파일들을 내 환경에 다운로드 한다. 어떤 인자도 포함하지 않고 실행하게 된다면, 모든 프로젝트에 대한 파일들을 받게 된다.
repo sync 실행 시 동작하는 것은 아래와 같다.
프로젝트가 처음 동기화 되는 것이라면, repo sync는 git clone 과 동일하게 동작하게 된다. 모든 branch 들이 local 프로젝트 디렉토리에 카피 되게 된다.
이미 한번 동기화가 동작했었다면 repo sync는 git remote update와 gir rebase origin/BRANCH를 실행한 것과 동일하게 동작한다고 생각하면 된다.
만약 git rebase operation의 결과가 merge 를 하면서 충돌로 나타난다면, Git commands를 통해서 충돌 문제를 해결해야 한다.
repo sync가 성공적으로 마무리되면 최신의 코드가 저장되게 된다.
출처
https://source.android.com/source/using-repo.html
https://bluelight.tistory.com/221
https://sincenwhile.tistory.com/entry/repo-init-sync-%EC%98%B5%EC%85%98%EB%93%A4
https://bluelight.tistory.com/221
https://sincenwhile.tistory.com/entry/repo-init-sync-%EC%98%B5%EC%85%98%EB%93%A4