bencher run을 사용한 브랜치 선택
브랜치는 git
참조(즉, 브랜치 이름 또는 태그)입니다.
bencher run
CLI 서브커맨드를 사용할 때,
--branch
옵션이나 BENCHER_BRANCH
환경변수를 통해 브랜치를 선택하세요.
기본적으로 모든 프로젝트는 main
브랜치로 시작하며,
지정하지 않으면 기본적으로 main
이 사용됩니다.
지속적인 벤치마킹, 즉 CI에서의 벤치마킹을 할 때,
존재하는 브랜치에 branch
를 생성하거나 리베이스하는 것이 자주 필요합니다.
이를 브랜치 시작 지점이라고 합니다.
시작 지점은 특정 버전(그리고 가능하다면 git
해시)에서의 다른 브랜치입니다.
bencher run
CLI 서브커맨드를 사용할 때,
--branch-start-point
옵션으로 시작 지점을 선택하세요.
또한, --branch-start-point-hash
옵션을 사용하여 시작 지점에 대한 특정 git
해시를 지정하세요.
시작 지점부터 모든 데이터와 임계값이 복사됩니다.
--branch <BRANCH>
분기를 선택하려면, --branch
옵션 또는 BENCHER_BRANCH
환경 변수에 분기의 이름, 슬러그 또는 UUID를 설정하세요.
지정된 값이 이름 또는 슬러그이고 분기가 아직 존재하지 않는 경우, 분기가 생성됩니다.
그러나, 지정된 값이 UUID인 경우 해당 분기가 이미 존재해야 합니다.
둘 다 지정된 경우, --branch
옵션은 BENCHER_BRANCH
환경 변수보다 우선합니다.
지정되지 않은 경우 Bencher CLI는 현재 git
브랜치를 찾으려고 시도합니다.
현재 작업 디렉토리에서 git
저장소를 찾기 시작합니다.
실패하면 부모 디렉토리로 이동하여 루트 디렉토리까지 모두 다시 시도합니다.
git
저장소를 찾으면 현재 짧은 브랜치 이름이 사용됩니다.
그러나 git
저장소를 찾지 못하면 기본 브랜치로 main
이 사용됩니다.
--branch-start-point <BRANCH>
지정된 브랜치 이름, 슬러그, 또는 UUID를 branch
옵션의 시작 지점으로 사용하십시오.
GitHub의 경우, 주로 풀 리퀘스트를 위한 base
브랜치가 되며,
GitLab의 경우는 주로 머지 리퀘스트를 위한 target
브랜치가 됩니다.
--branch-start-point
의 주요 사용 사례는 통계적 지속 벤치마킹입니다.
- 지정된 시작 지점이 빈 문자열인 경우 이 옵션은 무시됩니다.
branch
가 존재하지 않는 경우, 이 시작 지점을 사용하여 생성됩니다.branch
가 존재하고 시작 지점이 같은 경우, 이 옵션은 무시됩니다.branch
가 존재하고 시작 지점이 다른 경우, 기존의branch
는 이름이 변경되고 이 새로운 시작 지점을 사용하여 새로운branch
가 생성됩니다.
시작 지점을 가진 새로운 branch
가 생성되면,
지정된 시작 지점에서 모든 데이터와 임계값이 복사됩니다.
예를 들어, feature_branch
가 아직 존재하지 않지만 main
은 존재하고 이력 데이터가 있는 경우,
--branch feature_branch --branch-start-point main
을 사용하면:
feature_branch
라는 새 브랜치를 생성합니다main
에서 모든 데이터와 임계값을feature_branch
로 복사합니다bencher run
은feature_branch
를 사용하여 진행됩니다
🐰 참고: 환경 변수를 사용할 때는 반드시 이중 인용 부호로 감싸주어야 합니다(예:
--branch-start-point "$MY_BRANCH_ENV_VAR"
), 만약MY_BRANCH_ENV_VAR
이 정의되어 있지 않을 때bencher run
이 오류를 내지 않기를 원한다면.
--branch-start-point-hash <HASH>
branch
옵션을 위한 시작점으로 지정된 전체 Git 해쉬를 사용하십시오.
이 옵션은 --branch-start-point
옵션이 설정되어야 합니다.
branch
가 존재하지 않는 경우, 지정된 해쉬에서branch-start-point
를 기반으로 생성됩니다.branch
가 이미 존재하고branch-start-point
와 지정된 해쉬가 동일한 경우, 이 옵션은 무시됩니다.branch
가 이미 존재하고branch-start-point
나 지정된 해쉬 중 하나라도 다른 경우, 이전 버전의branch
는 이름이 변경되고 지정된 해쉬에서branch-start-point
를 기반으로 새로운branch
가 생성됩니다.
새로운 branch
가 시작점으로 생성된 경우,
지정된 해쉬에서 branch-start-point
의 모든 데이터와 임계값이 복사됩니다.
예를 들어, feature_branch
가 main
Branch의 시작점이 되는 해쉬 32aea434d751648726097ed3ac760b57107edd8b
와 함께 존재한다면
--branch feature_branch --branch-start-point main --branch-start-point-hash 68b12758509ca5e2b1e3983525625e532eb5f562
을 사용하면:
- 이전
feature_branch
의 이름을feature_branch@main/hash/32aea434d751648726097ed3ac760b57107edd8b
로 변경합니다. feature_branch
라는 새 Branch를 생성합니다.- 해쉬
68b12758509ca5e2b1e3983525625e532eb5f562
에서main
의 모든 데이터와 임계값을 새feature_branch
로 복사합니다. bencher 실행
은 새로운feature_branch
를 사용하여 진행됩니다.
--branch-reset
지정된 branch
를 리셋합니다.
--branch-reset
의 주요 사용 사례는 [상대 연속 벤치마킹][relative continuous benchmarking]입니다.
이 플래그는 --branch-start-point
옵션과 충돌합니다.
branch
가 존재하지 않는 경우 생성됩니다.branch
가 이미 존재하는 경우, 기존의branch
는 이름이 변경되고 새로운branch
가 생성됩니다.
새로운 branch
가 생성되면 이전 데이터나 임계값이 없을 것입니다.
예를 들어, 시작점 없이 feature_branch
가 존재하는 경우
--branch feature_branch --branch-reset
을 사용하면:
- 기존의
feature_branch
는feature_branch@detached
로 이름이 바뀝니다 feature_branch
라는 이름의 새로운 Branch가 생성됩니다bencher run
은 새로운feature_branch
를 사용하여 진행됩니다
🐰 축하합니다! 브랜치 선택에 대해 모두 배웠습니다! 🎉