git 저장소 규칙

@bazel_tools//tools/build_defs/repo:git.bzl에서 다음 함수를 로드할 수 있습니다.

git_저장소

git_repository(name, branch, build_file, build_file_content, commit, init_submodules, patch_args,
               patch_cmds, patch_cmds_win, patch_tool, patches, recursive_init_submodules, remote,
               shallow_since, strip_prefix, tag, verbose, workspace_file, workspace_file_content)

외부 Git 저장소를 클론합니다.

Git 저장소를 클론하고 지정된 태그 또는 커밋을 체크아웃한 후 바인딩에 사용할 수 있게 만듭니다. 또한 실제로 체크아웃된 커밋의 ID와 날짜를 확인하고 이 규칙의 재현 가능한 버전 (태그가 반드시 있을 필요는 없음)을 제공하는 매개변수가 있는 dict를 반환합니다.

Bazel은 먼저 지정된 커밋에 대한 부분 가져오기를 실행합니다. 서버 지원 누락으로 인해 실패하면 저장소 전체 가져오기로 대체됩니다.

git_repository보다 http_archive를 선호합니다. 이유는 다음과 같습니다.

  • Git 저장소 규칙은 시스템 git(1)에 종속되지만 HTTP 다운로더는 Bazel에 내장되어 있으며 시스템 종속 항목이 없습니다.
  • http_archiveurls 목록을 미러로 지원하고 git_repository는 단일 remote만 지원합니다.
  • http_archive저장소 캐시에서 작동하지만 git_repository에서는 작동하지 않습니다. 자세한 내용은 #5116을 참고하세요.

속성

name 이름. 필수 항목입니다.

이 저장소의 고유한 이름입니다.

branch 문자열, 선택사항

브랜치를 원격 저장소에서 선택하세요 브랜치, 태그 또는 커밋 중 하나를 지정해야 합니다.

build_file 라벨, 선택사항

이 저장소의 BUILD 파일로 사용할 파일입니다.이 속성은 절대 라벨입니다 (기본 저장소에 '@//' 사용). 파일 이름을 BUILD로 지정할 필요는 없지만, 이름을 지정할 수는 있습니다 (예: BUILD.new-repo-name과 같은 파일을 저장소의 실제 BUILD 파일과 구분하는 데 효과적일 수 있음).

build_file_content 문자열, 선택사항

이 저장소에 대한 BUILD 파일의 콘텐츠입니다.

commit 문자열, 선택사항

특정 커밋을 확인합니다. 브랜치, 태그 또는 커밋 중 하나를 지정해야 합니다.

init_submodules 불리언, 선택사항

저장소에서 하위 모듈을 클론할지 여부입니다.

patch_args 문자열 목록(선택사항)

패치 도구에 지정된 인수입니다. 기본값은 -p0이지만 일반적으로 git에서 생성된 패치에는 -p1이 필요합니다. -p 인수가 여러 개 지정된 경우 마지막 인수가 적용됩니다. -p 이외의 인수가 지정된 경우 Bazel은 Bazel 기반 패치 구현 대신 패치 명령줄 도구를 사용하도록 대체합니다. 패치 명령줄 도구로 대체하고 patch_tool 속성이 지정되지 않은 경우 `patch` 가 사용됩니다.

patch_cmds 문자열 목록(선택사항)

패치를 적용한 후 Linux/Mac에 적용할 Bash 명령어 시퀀스

patch_cmds_win 문자열 목록(선택사항)

패치가 적용된 후 Windows에서 적용될 Powershell 명령어의 시퀀스 이 속성이 설정되지 않으면 Windows에서 patch_cmds가 실행되며, Bash 바이너리가 있어야 합니다.

patch_tool 문자열, 선택사항

사용할 패치(1) 유틸리티입니다. 이 플래그를 지정하면 Bazel이 Bazel 기반 패치 구현 대신 지정된 패치 도구를 사용합니다.

patches 라벨 목록, 선택사항

보관 파일을 추출한 후 패치로 적용할 파일 목록입니다. 기본적으로 퍼지 일치 및 바이너리 패치를 지원하지 않는 Bazel 기반 패치 구현을 사용하지만 'patch_tool' 속성이 지정되거나 'patch_args' 속성에 '-p' 이외의 인수가 있는 경우 Bazel은 패치 명령줄 도구를 대신 사용합니다.

recursive_init_submodules 불리언, 선택사항

저장소에서 하위 모듈을 재귀적으로 클론할지 여부입니다.

remote 문자열, 필수

원격 Git 저장소의 URI

shallow_since 문자열, 선택사항

지정된 커밋 이후가 아닌 선택적 날짜입니다. 태그나 브랜치가 지정되면 항상 인수가 허용되지 않습니다 (항상 --depth=1로 복제할 수 있음). 이러한 날짜를 지정된 커밋에 가깝게 설정하면 서버가 임의 커밋의 얕은 가져오기를 지원하지 않더라도 저장소의 부분 클론을 허용할 수 있습니다. git의 --shallow-since 구현에서 발생하는 버그로 인해 이 속성을 사용하지 않는 것이 좋습니다. 가져오기에 실패할 수 있기 때문입니다.

strip_prefix 문자열, 선택사항

추출된 파일에서 제거할 디렉터리 접두어입니다.

tag 문자열, 선택사항

태그를 사용하세요. 브랜치, 태그 또는 커밋 중 하나를 지정해야 합니다.

verbose 불리언, 선택사항
workspace_file 라벨, 선택사항

이 저장소의 `WORKSPACE` 파일로 사용할 파일입니다. `workspace_file` 또는 `workspace_file_content` 를 지정하거나 둘 다 지정할 수 없습니다.

workspace_file_content 문자열, 선택사항

이 저장소에 대한 WORKSPACE 파일의 콘텐츠 `workspace_file` 또는 `workspace_file_content` 를 지정하거나 둘 다 지정할 수 없습니다.

새_git_repository

new_git_repository(name, branch, build_file, build_file_content, commit, init_submodules,
                   patch_args, patch_cmds, patch_cmds_win, patch_tool, patches,
                   recursive_init_submodules, remote, shallow_since, strip_prefix, tag, verbose,
                   workspace_file, workspace_file_content)

외부 Git 저장소를 클론합니다.

Git 저장소를 클론하고 지정된 태그 또는 커밋을 체크아웃한 후 바인딩에 사용할 수 있게 만듭니다. 또한 실제로 체크아웃된 커밋의 ID와 날짜를 확인하고 이 규칙의 재현 가능한 버전 (태그가 반드시 있을 필요는 없음)을 제공하는 매개변수가 있는 dict를 반환합니다.

Bazel은 먼저 지정된 커밋에 대한 부분 가져오기를 실행합니다. 서버 지원 누락으로 인해 실패하면 저장소 전체 가져오기로 대체됩니다.

git_repository보다 http_archive를 선호합니다. 이유는 다음과 같습니다.

  • Git 저장소 규칙은 시스템 git(1)에 종속되지만 HTTP 다운로더는 Bazel에 내장되어 있으며 시스템 종속 항목이 없습니다.
  • http_archiveurls 목록을 미러로 지원하고 git_repository는 단일 remote만 지원합니다.
  • http_archive저장소 캐시에서 작동하지만 git_repository에서는 작동하지 않습니다. 자세한 내용은 #5116을 참고하세요.

속성

name 이름. 필수 항목입니다.

이 저장소의 고유한 이름입니다.

branch 문자열, 선택사항

브랜치를 원격 저장소에서 선택하세요 브랜치, 태그 또는 커밋 중 하나를 지정해야 합니다.

build_file 라벨, 선택사항

이 저장소의 BUILD 파일로 사용할 파일입니다.이 속성은 절대 라벨입니다 (기본 저장소에 '@//' 사용). 파일 이름을 BUILD로 지정할 필요는 없지만, 이름을 지정할 수는 있습니다 (예: BUILD.new-repo-name과 같은 파일을 저장소의 실제 BUILD 파일과 구분하는 데 효과적일 수 있음).

build_file_content 문자열, 선택사항

이 저장소에 대한 BUILD 파일의 콘텐츠입니다.

commit 문자열, 선택사항

특정 커밋을 확인합니다. 브랜치, 태그 또는 커밋 중 하나를 지정해야 합니다.

init_submodules 불리언, 선택사항

저장소에서 하위 모듈을 클론할지 여부입니다.

patch_args 문자열 목록(선택사항)

패치 도구에 지정된 인수입니다. 기본값은 -p0이지만 일반적으로 git에서 생성된 패치에는 -p1이 필요합니다. -p 인수가 여러 개 지정된 경우 마지막 인수가 적용됩니다. -p 이외의 인수가 지정된 경우 Bazel은 Bazel 기반 패치 구현 대신 패치 명령줄 도구를 사용하도록 대체합니다. 패치 명령줄 도구로 대체하고 patch_tool 속성이 지정되지 않은 경우 `patch` 가 사용됩니다.

patch_cmds 문자열 목록(선택사항)

패치를 적용한 후 Linux/Mac에 적용할 Bash 명령어 시퀀스

patch_cmds_win 문자열 목록(선택사항)

패치가 적용된 후 Windows에서 적용될 Powershell 명령어의 시퀀스 이 속성이 설정되지 않으면 Windows에서 patch_cmds가 실행되며, Bash 바이너리가 있어야 합니다.

patch_tool 문자열, 선택사항

사용할 패치(1) 유틸리티입니다. 이 플래그를 지정하면 Bazel이 Bazel 기반 패치 구현 대신 지정된 패치 도구를 사용합니다.

patches 라벨 목록, 선택사항

보관 파일을 추출한 후 패치로 적용할 파일 목록입니다. 기본적으로 퍼지 일치 및 바이너리 패치를 지원하지 않는 Bazel 기반 패치 구현을 사용하지만 'patch_tool' 속성이 지정되거나 'patch_args' 속성에 '-p' 이외의 인수가 있는 경우 Bazel은 패치 명령줄 도구를 대신 사용합니다.

recursive_init_submodules 불리언, 선택사항

저장소에서 하위 모듈을 재귀적으로 클론할지 여부입니다.

remote 문자열, 필수

원격 Git 저장소의 URI

shallow_since 문자열, 선택사항

지정된 커밋 이후가 아닌 선택적 날짜입니다. 태그나 브랜치가 지정되면 항상 인수가 허용되지 않습니다 (항상 --depth=1로 복제할 수 있음). 이러한 날짜를 지정된 커밋에 가깝게 설정하면 서버가 임의 커밋의 얕은 가져오기를 지원하지 않더라도 저장소의 부분 클론을 허용할 수 있습니다. git의 --shallow-since 구현에서 발생하는 버그로 인해 이 속성을 사용하지 않는 것이 좋습니다. 가져오기에 실패할 수 있기 때문입니다.

strip_prefix 문자열, 선택사항

추출된 파일에서 제거할 디렉터리 접두어입니다.

tag 문자열, 선택사항

태그를 사용하세요. 브랜치, 태그 또는 커밋 중 하나를 지정해야 합니다.

verbose 불리언, 선택사항
workspace_file 라벨, 선택사항

이 저장소의 `WORKSPACE` 파일로 사용할 파일입니다. `workspace_file` 또는 `workspace_file_content` 를 지정하거나 둘 다 지정할 수 없습니다.

workspace_file_content 문자열, 선택사항

이 저장소에 대한 WORKSPACE 파일의 콘텐츠 `workspace_file` 또는 `workspace_file_content` 를 지정하거나 둘 다 지정할 수 없습니다.