bencher run을 사용한 브랜치 선택


A Branch는 git 참조(즉, 브랜치 이름 또는 태그)입니다. bencher run CLI 하위 명령어를 사용할 때 --branch 옵션 또는 BENCHER_BRANCH 환경 변수를 선택하여 브랜치를 선택하십시오. 기본적으로 모든 프로젝트는 main 브랜치로 시작하며, 지정되지 않은 경우 기본적으로 main이 사용됩니다.

지속적 벤치마킹, 즉 CI에서 벤치마킹할 때는 이미 존재하는 브랜치에서 branch를 생성하거나 리베이스하고 싶을 때가 많습니다. 이것을 브랜치 시작 지점이라고 합니다. 시작 지점은 특정 버전(및 사용 가능한 경우 git 해시)의 다른 브랜치입니다. bencher run CLI 하위 명령어를 사용할 때 --start-point 옵션을 사용하여 시작 지점을 선택하세요. 또한, 특정 시작 지점을 설정하기 위해 --start-point-hash 옵션을 사용하여 특정 git 해시를 지정할 수 있습니다. 시작 지점에서 복사되는 데이터의 양은 --start-point-max-versions 옵션으로 제어됩니다. 마찬가지로 임계값--start-point-clone-thresholds 플래그를 사용하여 시작 지점에서 복사할 수 있습니다. 드리프트를 방지하기 위해 항상 브랜치를 시작 지점으로 재설정하려면 --start-point-reset 플래그를 사용하세요.

--branch <BRANCH>


브랜치를 선택하려면, --branch 옵션이나 BENCHER_BRANCH 환경 변수를 브랜치의 이름, 슬러그, 또는 UUID로 설정하세요. 지정된 값이 이름이나 슬러그인 경우, 브랜치가 이미 존재하지 않으면 생성됩니다. 그러나, 지정된 값이 UUID인 경우, 해당 브랜치는 이미 존재해야 합니다. 둘 다 지정된 경우, --branch 옵션이 BENCHER_BRANCH 환경 변수보다 우선권을 가집니다.

둘 다 지정되지 않은 경우, Bencher CLI는 현재 git 브랜치를 찾으려고 합니다. 먼저 현재 작업 디렉토리에서 git 저장소를 찾습니다. 실패하면, 부모 디렉토리로 이동하여 루트 디렉토리까지 반복합니다. git 저장소가 발견되면, 현재의 짧은 브랜치 이름이 사용됩니다. 하지만, git 저장소가 발견되지 않으면 기본 브랜치로 main이 사용됩니다.

--start-point <BRANCH>


지정된 브랜치 이름, 슬러그 또는 UUID를 시작점으로 사용하여 branch 옵션을 설정하십시오. GitHub의 경우, 이는 보통 풀 리퀘스트의 base 브랜치이며, GitLab의 경우, 보통 머지 요청의 target 브랜치입니다. --start-point의 주요 용도는 통계적 지속 벤치마킹입니다.

  • 지정된 시작점이 빈 문자열인 경우, 이 옵션은 무시됩니다.
  • branch가 존재하지 않으면, 이 시작점을 사용하여 생성됩니다.
  • branch가 존재하고 시작점이 동일하면, 이 옵션은 무시됩니다.
  • branch가 존재하고 시작점이 다르면, 이 업데이트된 시작점을 사용하여 새로운 branch Head가 생성됩니다.
  • branch가 존재하지 않고 시작점도 존재하지 않으면, branch는 어떠한 과거 데이터 없이 생성됩니다.
  • branch가 존재하고 시작점이 존재하지 않으면, 이 옵션은 무시됩니다.

시작점으로 새로운 branch가 생성되면, 지정된 시작점의 최신 데이터와 선택적으로 임계값이 복사됩니다. 자세한 내용은 --start-point-max-versions 옵션--start-point-clone-thresholds 옵션을 참조하십시오.

예를 들어, feature_branch가 아직 존재하지 않지만 main이 존재하고 역사적 데이터를 가지고 있을 때, --branch feature_branch --start-point main을 사용하면:

  1. feature_branch라는 새로운 브랜치를 생성합니다.
  2. main에서 가장 최근의 데이터를 feature_branch로 복사합니다.
  3. bencher runfeature_branch를 사용하여 진행됩니다.

🐰 참고: 환경 변수를 사용할 때는 항상 큰따옴표로 감싸야 합니다 (예: --start-point "$MY_BRANCH_ENV_VAR"). MY_BRANCH_ENV_VAR이 정의되지 않은 경우, bencher run에서 오류가 발생하지 않도록 할 수 있습니다.

--start-point-hash <HASH>


지정된 전체 Git 해시를 branch 옵션의 시작 지점으로 사용합니다. 이 옵션은 ‘—start-point’ 옵션이 설정되어야 합니다.

  • branch가 존재하지 않는 경우, 지정된 해시의 start-point에서 생성됩니다.
  • branch가 존재하고 start-point와 지정된 해시가 모두 동일하면, 이 옵션은 무시됩니다.
  • branch가 존재하고 start-point 또는 지정된 해시가 다르면, 지정된 해시의 start-point에서 새로운 branch 헤드가 생성됩니다.
  • branch가 존재하지 않고 지정된 해시의 start-point가 존재하지 않으면, branch는 아무런 기록 데이터 없이 생성됩니다.
  • branch가 존재하고 지정된 해시에 start-point가 존재하지 않으면, 이 옵션은 무시됩니다.

새로운 branch가 시작 지점과 함께 생성되면, 모든 최신 데이터와 선택적으로 지정 해시의 start-point에서의 THresholds가 복사됩니다. 자세한 내용은 --start-point-max-versions 옵션--start-point-clone-thresholds 옵션을 참조하세요.

예를 들어, feature_branchmain 브랜치에서 해시 32aea434d751648726097ed3ac760b57107edd8b로 시작 지점을 가지고 존재할 때, --branch feature_branch --start-point main --start-point-hash 68b12758509ca5e2b1e3983525625e532eb5f562를 사용하면 다음과 같은 일이 발생합니다:

  1. 기존의 feature_branch 헤드 제거
  2. 새로운 feature_branch 헤드 생성
  3. 해시 68b12758509ca5e2b1e3983525625e532eb5f562에서 main의 모든 최신 데이터 복사하여 새로운 feature_branch 헤드로 이동
  4. bencher run은 새로운 feature_branch 헤드를 사용하여 진행

--start-point-max-versions <COUNT>


지정된 최대 개수의 역사적 브랜치 버전을 branch 옵션의 시작 지점부터 포함합니다. 이 수를 초과하는 버전은 제외됩니다. 기본값은 255 버전입니다. 이 옵션을 사용하려면 --start-point 옵션을 설정해야 합니다.

예를 들어, feature_branch가 존재하고 그 시작 지점이 main 브랜치이며 main300 버전을 가지고 있을 경우, --branch feature_branch --start-point main --start-point-max-versions 100을 사용하면 main의 최신 100개 버전만 feature_branch에 포함됩니다.

--start-point-clone-thresholds


branch 옵션에 대해 시작 지점에서 모든 임계값을 복제합니다. 이 플래그는 --start-point 옵션이 설정되어야 합니다.

  • 임계값이 존재하지 않으면 start-point 임계값에서 생성됩니다.
  • 임계값이 존재하고, start-point 임계값과 동일하다면 해당 임계값은 무시됩니다.
  • 임계값이 존재하고, 그 모델이 start-point 임계값과 다르면, 오래된 모델은 start-point 임계값 모델로 교체됩니다.
  • 임계값이 존재하고, start-point 임계값이 존재하지 않으면, 임계값 모델이 제거됩니다.

예를 들어, feature_branch가 존재하고 그 시작 지점이 main 브랜치이며, main이 내장된 localhost 테스트베드와 latency 측정을 위한 임계값을 가지고 있다면, --branch feature_branch --start-point main --start-point-clone-thresholds를 사용하면 feature_branchlocalhost 테스트베드와 latency 측정을 위한 새 임계값이 생성됩니다.

--start-point-reset


지정된 branch를 재설정합니다. --start-point 옵션이 설정되면, branch는 지정된 시작 지점(Start Point)으로 재설정됩니다. 이는 통계적 연속 벤치마킹 데이터의 표류를 방지하는 데 유용합니다. 시작 지점을 지정하지 않고 --start-point-reset을 사용하는 주된 사용 사례는 상대적 연속 벤치마킹입니다.

  • branch가 존재하지 않고 시작 지점이 지정되지 않은 경우, branch는 어떠한 기록 데이터 없이 생성됩니다.
  • branch가 존재하고 시작 지점이 지정되지 않은 경우, 새로운 branch Head는 기록 데이터 없이 생성됩니다.
  • branch가 존재하지 않고 시작 지점이 지정된 경우, 시작 지점을 사용하여 branch가 생성됩니다.
  • branch가 존재하고 시작 지점이 지정된 경우, 시작 지점을 사용하여 새로운 branch Head가 생성됩니다.

시작 지점과 함께 새로운 branch가 생성되면, 지정된 해시의 모든 최신 데이터와 선택적으로 start-point의 임계값이 복사됩니다. 자세한 내용은 --start-point-max-versions 옵션--start-point-clone-thresholds 옵션을 참조하세요.

예를 들어, feature_branch가 시작 지점 없이 존재하는 경우, --branch feature_branch --start-point-reset를 사용하면:

  1. 기존 feature_branch Head를 제거합니다.
  2. 기록 데이터가 없는 새로운 feature_branch Head를 생성합니다.
  3. bencher run은 새로 생성된 feature_branch Head를 사용하여 진행됩니다.

🐰 축하합니다! 브랜치 선택에 대해 모두 배웠습니다! 🎉


계속 진행하세요: 임계값 & 알림 ➡

🤖 이 문서는 OpenAI GPT-4에 의해 자동으로 생성되었습니다. 정확하지 않을 수도 있고 오류가 있을 수도 있습니다. 오류를 발견하면 GitHub에서 문제를 열어주세요.


Published: Fri, October 27, 2023 at 8:40:00 AM UTC | Last Updated: Sun, October 13, 2024 at 12:36:00 PM UTC