C07. 변경사항 게시(push)하기
- 로컬상태 체크하기
프로그램을 개발할 때 자신의 코드나 사용하고 있는 일부 라이브러리를 수정하게 되는 경우가 있다. mico status를 실행하면 재귀적인 방식으로 프로젝트(저장소)와 관계하는 컴포넌트들의 현재상태와 함께 저장소에서 아직 커밋(commit)되지 않은 모든 변경사항들을 확인할 수 있다. 변경사항들은 커밋(commit)하거나 버릴 수 있다.
$ mico status [mico] Status for “helloworld”: M helloworld/helloworld.c [mico] Status for “mico-os”: M platform/MCU/STM32F4xx/platform_init.c
|
- 원격저장소에 게시(Push)하기
로컬저장소(프로젝트)의 변경사항을 원격저장소에 적용하려면 mico publish을 사용한다. 게시(publish) 동작은 재귀적으로
수행되며 리프(leaf) 의존성을 먼저 게시한다. 다음으로 상위 종속성디스크립터를 업데이트한 후 상위레이어를 게시한다.
예를 들어, mico ls를 사용해 확인한 프로젝트의 의존성이 다음과 같다고 하자.
$ mico ls my-mico-os-example (a5ac4bf2e468) |- mico-os (5fea6e69ec1a) `- my-libs (e39199afa2da) |- my-libs/iot-client (571cfef17dd0) `- my-libs/test-framework (cd18b5a50df4) |
게시과정의 예: iot-client 컴포넌트가 수정되었다고 가정하고,
Step1. 리프(leaf) 종속성 iot-client를 검출하고 변경사항을 커밋할 것인지를 물어본다.
Step2. 부모 my-libs가 iot-client에 의존한다는 것을 감지하고
Stpe3. my-libs 종속성 디스크립션 파일인 iot-client.component를 업데이트하고, 디스크립션 파일에서 링크어드레스는 최신 iot-client 버전으로 업데이트한다.
.
Step4. my-libs 변경사항을 커밋할 것인지 다시 물어본다.
Step5. 최종으로 my-mico-os-example 프로젝트를 검사한 후, 의존성 디스크립션 파일을 업데이트하고 커밋한다.