Chromium Chronicle #22: Know Thy (Depot) 도구

에피소드 22: 캘리포니아주 샌프란시스코의 Edward Lesmes 제공 (2021년 6월)
이전 에피소드

Depot 도구는 Chromium 코드베이스 및 관련 프로젝트에 기여하는 개발자의 워크플로를 간소화하기 위해 Git을 기반으로 빌드된 도구 모음입니다. 여기에는 코드를 가져오고, 변경사항을 업로드하여 검토하며, 결제를 최신 상태로 유지하는 등의 도구가 포함되어 있습니다.

코드 가져오기

빈 디렉터리에서 fetch chromium를 실행합니다. fetch 명령어를 사용하여 v8 또는 webrtc와 같은 다른 저장소의 코드를 가져올 수도 있습니다. 전체 목록은 fetch help를 참고하세요.

검토를 위해 변경사항 업로드

각 CL은 git의 단일 브랜치에 상응하므로 git new-branch <branch_name>를 실행하여 새 브랜치를 만듭니다. 이 브랜치에 원하는 만큼 변경사항을 커밋하고 검토할 준비가 되면 git cl upload를 실행합니다.

git cl issue는 브랜치가 연결된 CL을 알려줍니다. git cl issue <issue>를 사용하여 변경하세요.

결제 최신 상태 유지

주기적으로 git rebase-update를 실행하여 로컬 브랜치를 업스트림과 동기화하고 gclient sync를 실행하여 third_party 저장소를 업데이트하고 사전 컴파일 후크를 실행합니다.

여러 CL 관리

  • git cl status는 로컬 브랜치와 연결된 CL 및 상태 (전송되지 않음, lgtm, 종료 등)를 표시합니다.
  • git freezegit thawgit stash처럼 작동하지만 저장된 변경사항과 관련된 브랜치를 추적합니다.
  • git map는 모든 브랜치 기록을 보여주고 git map-branches는 모든 브랜치 간의 업스트림 관계를 보여줍니다.
  • git new-branch --upstream_current <branch_name>는 기존 브랜치 위에 새 브랜치를 만듭니다. 기본 브랜치를 변경한 후 종속 브랜치를 리베이스하려면 git rebase-update를 사용합니다.

다른 머신에서 기존 CL(CL)으로 계속 작업

git cl patch <issue_url>를 실행하여 현재 브랜치 위에 있는 기존 CL을 선택합니다. 현재 브랜치를 패치된 CL과 연결합니다. git cl patch <issue_url> --reapply를 사용하여 로컬 변경사항을 삭제하고 문제를 다시 적용합니다.

기타

Depot 도구 튜토리얼을 확인하고 각 명령어의 도움말 메시지를 살펴보고 멋진 기능을 모두 살펴보세요. 문제가 있으면 알려주세요.