Embedded : : Linux/: : Linux

repo 명령어 정리

Jay.P Morgan 2024. 11. 12. 01:41

 

  repo 명령어 정리

 

  1.  REPO  INIT

$ repo init -u [URL] [OPTIONS]

현재 디렉터리에 .repo 디렉터리를 생성하고 그 안에 URL로부터 다운 받은 manifest.xml을 두고 이 파일이 실제 .repo/manifest/ 디렉터리에 있는 manifest file을 symbolic link로 지정한다.

 

 

  2.  REPO  SYNC

$ repo sync [PROJECT_LIST]

project_list를 넣지 않으면 모든 repository를 sync한다.

첫 repo sync시에는 $git remote update와 같은 동작을 하고 ,

그 후의 repo sync 시에는 $git rebase origin/BRANCH와 같은 동작을 한다.

 

[OPTION]

  -d : topic branch에 있을 경우 특정 revision으로 switch되도록 해준다.

  -f : 다른 프로젝트에서 sync fail이 발생해도 계속 sync를 진행한다.

  -c : 현재 지정된 branch의 내용만을 sync한다.

 

 

  3.  REPO  DIFF

$ repo diff [PROJECT_LIST]

git diff를 이용해서 PROJECT_LIST의 working tree변경 내용을 보여준다.

git diff는 HEAD commit부터 변경사항을 보여준다.

 

  4.  REPO  UPLOAD

$ repo upload [PROJECT_LIST]

project_list의 local 변경 부분을 remote로 update한다.

각 branch의 review를 위한 upload를 할 수 있도록 prompt를 띄운다.

이 명령어를 사용하여 전체 project의 push를 한꺼번에 할 수 있다.

 

  5.  REPO  DOWNLOAD

$ repo download [TARGET] [CHANGE]

Gerrit과 같은 review system의 23823의 변경내용을 platform/build에 download하는 경우

예 )

$ repo download platform/build 23823

 

  6.  REPO  FORALL

$ repo forall [PROJECT_LIST] -c COMMAND

모든 git repository에 COMMAND를 실행하도록 해준다.

repo forall -c git checkout test_branch라고 실행할 경우 모든 repository가 test_branch로 이동하게 해준다.

[OPTION]

-c : 실행할 command와 argument를 보여준다.

-p : page단위로 output을 보여준다.

-v : command실행 massage를 stderr로 보여준다.

 

 

  7.  REPO  PRUNE

$ repo prune [PROJECT_LSIT]

이미 merge된 topics를 삭제하는 기능을 수행한다.

  8.  REPO  START

$ repo strart [PROJECT_LIST]

해당 project repository에서 git status를 실행하는 것과 동일하다.

project_list에 지정해주지 않을 경우 repo forall -c git status와 같다.

  9.  REPO  STATUS

$ repo status [PROJECT_LIST]

해당 project repository에서 git status를 실행하는 것과 동일하다.

PROJECT_LIST를 지정해주지 않을 경우

repo forall -c git status와 동일하게 동작한다.

출처https://inforgather.tistory.com/m/347