กฎที่เก็บ Git

รายงานปัญหา ดูแหล่งที่มา Nightly · 8.4 · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

คุณโหลดฟังก์ชันต่อไปนี้ได้จาก @bazel_tools//tools/build_defs/repo:git.bzl

git_repository

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 ตรวจสอบแท็กหรือคอมมิตที่ระบุ และ ทำให้เป้าหมายพร้อมสำหรับการเชื่อมโยง นอกจากนี้ ให้ระบุรหัสของ คอมมิตที่เช็คเอาต์จริงและวันที่ของคอมมิตนั้น แล้วส่งคืนพจนานุกรมที่มีพารามิเตอร์ ซึ่งระบุเวอร์ชันที่ทำซ้ำได้ของกฎนี้ (ซึ่งแท็กไม่จำเป็นต้อง เป็นเช่นนั้น)

Bazel จะพยายามดึงข้อมูลแบบตื้นเฉพาะคอมมิตที่ระบุก่อน หากไม่สำเร็จ (มักเกิดจากการที่เซิร์ฟเวอร์ไม่รองรับ) ระบบจะกลับไปใช้ การดึงข้อมูลที่เก็บแบบเต็ม

Attributes

name ชื่อ (ต้องระบุ)

ชื่อที่ไม่ซ้ำกันสำหรับที่เก็บนี้

branch สตริง ไม่บังคับ

Branch ในที่เก็บระยะไกลที่จะเช็คเอาต์ ต้องระบุสาขา แท็ก หรือคอมมิตอย่างใดอย่างหนึ่งที่แน่นอน

build_file ป้ายกำกับ (ไม่บังคับ)

ไฟล์ที่จะใช้เป็นไฟล์ BUILD สำหรับที่เก็บนี้ แอตทริบิวต์นี้คือป้ายกำกับที่แน่นอน (ใช้ "@//" สำหรับที่เก็บหลัก) ไฟล์ไม่จำเป็นต้องชื่อ BUILD แต่สามารถตั้งชื่อได้ (เช่น BUILD.new-repo-name อาจใช้ได้ดีในการแยกความแตกต่างจากไฟล์ BUILD จริงของที่เก็บ ต้องระบุ build_file หรือ build_file_content

build_file_content สตริง ไม่บังคับ

เนื้อหาสำหรับไฟล์ BUILD สำหรับที่เก็บนี้ ต้องระบุ build_file หรือ build_file_content

commit สตริง ไม่บังคับ

คอมมิตที่เฉพาะเจาะจงที่จะเช็คเอาต์ ต้องระบุสาขา แท็ก หรือคอมมิตอย่างใดอย่างหนึ่งที่แน่นอน

init_submodules บูลีน ไม่บังคับ

ว่าจะโคลนโมดูลย่อยในที่เก็บหรือไม่

patch_args รายการสตริง ไม่บังคับ

อาร์กิวเมนต์ที่ส่งไปยังเครื่องมือแพตช์ ค่าเริ่มต้นคือ -p0 แต่โดยปกติแล้วจะต้องใช้ -p1 สำหรับแพตช์ที่สร้างโดย Git หากระบุอาร์กิวเมนต์ -p หลายรายการ อาร์กิวเมนต์สุดท้ายจะมีผล หากระบุอาร์กิวเมนต์อื่นที่ไม่ใช่ -p Bazel จะกลับไปใช้เครื่องมือบรรทัดคำสั่ง patch แทนการติดตั้งใช้งานแพตช์แบบเนทีฟของ Bazel เมื่อเปลี่ยนไปใช้เครื่องมือบรรทัดคำสั่ง patch และไม่ได้ระบุแอตทริบิวต์ patch_tool ระบบจะใช้ `patch`

patch_cmds รายการสตริง ไม่บังคับ

ลำดับคำสั่ง Bash ที่จะใช้ใน Linux/Macos หลังจากใช้แพตช์แล้ว

patch_cmds_win รายการสตริง ไม่บังคับ

ลำดับคำสั่ง PowerShell ที่จะใช้ใน Windows หลังจากใช้แพตช์ หากไม่ได้ตั้งค่าแอตทริบิวต์นี้ ระบบจะเรียกใช้ patch_cmds ใน Windows ซึ่งต้องมีไบนารี Bash

patch_tool สตริง ไม่บังคับ

โปรแกรมอรรถประโยชน์ patch(1) ที่จะใช้ หากมีการระบุ Bazel จะใช้เครื่องมือแก้ไขที่ระบุแทนการติดตั้งใช้งานแพตช์ดั้งเดิมของ Bazel

patches รายการป้ายกำกับ (ไม่บังคับ)

รายการไฟล์ที่จะใช้เป็นแพตช์หลังจากแตกไฟล์ที่เก็บถาวร โดยค่าเริ่มต้น จะใช้การติดตั้งใช้งานแพตช์ดั้งเดิมของ Bazel ซึ่งไม่รองรับการจับคู่แบบคลุมเครือและแพตช์ไบนารี แต่ Bazel จะกลับไปใช้เครื่องมือบรรทัดคำสั่ง patch หากมีการระบุแอตทริบิวต์ `patch_tool` หรือมีอาร์กิวเมนต์อื่นนอกเหนือจาก `-p` ในแอตทริบิวต์ `patch_args`

recursive_init_submodules บูลีน ไม่บังคับ

ว่าจะโคลนโมดูลย่อยแบบเรียกซ้ำในที่เก็บหรือไม่

remote สตริง; ต้องระบุ

URI ของที่เก็บ Git ระยะไกล

shallow_since สตริง ไม่บังคับ

วันที่ที่ไม่บังคับ โดยต้องไม่ใช่วันที่หลังจากคอมมิตที่ระบุ ไม่อนุญาตให้ใช้อาร์กิวเมนต์หากมีการระบุแท็กหรือกิ่ง (ซึ่งโคลนได้เสมอด้วย --depth=1) การตั้งค่าวันที่ดังกล่าวใกล้กับคอมมิตที่ระบุอาจอนุญาตให้โคลนแบบตื้นของที่เก็บได้แม้ว่าเซิร์ฟเวอร์จะไม่รองรับการดึงข้อมูลแบบตื้นของคอมมิตที่กำหนดเองก็ตาม เนื่องจากมีข้อบกพร่องในการติดตั้งใช้งาน --shallow-since ของ Git เราจึงไม่แนะนำให้ใช้แอตทริบิวต์นี้เนื่องจากอาจทำให้การดึงข้อมูลล้มเหลว

strip_prefix สตริง ไม่บังคับ

คำนำหน้าไดเรกทอรีที่จะนำออกจากไฟล์ที่แยก

tag สตริง ไม่บังคับ

ในที่เก็บระยะไกลเพื่อเช็คเอาต์ ต้องระบุสาขา แท็ก หรือคอมมิตอย่างใดอย่างหนึ่งที่แน่นอน

verbose บูลีน ไม่บังคับ
workspace_file ป้ายกำกับ (ไม่บังคับ)

ไฟล์ที่จะใช้เป็นไฟล์ `WORKSPACE` สำหรับที่เก็บนี้ คุณระบุ `workspace_file` หรือ `workspace_file_content` อย่างใดอย่างหนึ่ง หรือไม่ระบุทั้ง 2 อย่างก็ได้ แต่จะระบุทั้ง 2 อย่างไม่ได้

workspace_file_content สตริง ไม่บังคับ

เนื้อหาสำหรับไฟล์ WORKSPACE ของที่เก็บนี้ คุณระบุ `workspace_file` หรือ `workspace_file_content` อย่างใดอย่างหนึ่ง หรือไม่ระบุทั้ง 2 อย่างก็ได้ แต่จะระบุทั้ง 2 อย่างไม่ได้

new_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 ตรวจสอบแท็กหรือคอมมิตที่ระบุ และ ทำให้เป้าหมายพร้อมสำหรับการเชื่อมโยง นอกจากนี้ ให้ระบุรหัสของ คอมมิตที่เช็คเอาต์จริงและวันที่ของคอมมิตนั้น แล้วส่งคืนพจนานุกรมที่มีพารามิเตอร์ ซึ่งระบุเวอร์ชันที่ทำซ้ำได้ของกฎนี้ (ซึ่งแท็กไม่จำเป็นต้อง เป็นเช่นนั้น)

Bazel จะพยายามดึงข้อมูลแบบตื้นเฉพาะคอมมิตที่ระบุก่อน หากไม่สำเร็จ (มักเกิดจากการที่เซิร์ฟเวอร์ไม่รองรับ) ระบบจะกลับไปใช้ การดึงข้อมูลที่เก็บแบบเต็ม

Attributes

name ชื่อ (ต้องระบุ)

ชื่อที่ไม่ซ้ำกันสำหรับที่เก็บนี้

branch สตริง ไม่บังคับ

Branch ในที่เก็บระยะไกลที่จะเช็คเอาต์ ต้องระบุสาขา แท็ก หรือคอมมิตอย่างใดอย่างหนึ่งที่แน่นอน

build_file ป้ายกำกับ (ไม่บังคับ)

ไฟล์ที่จะใช้เป็นไฟล์ BUILD สำหรับที่เก็บนี้ แอตทริบิวต์นี้คือป้ายกำกับที่แน่นอน (ใช้ "@//" สำหรับที่เก็บหลัก) ไฟล์ไม่จำเป็นต้องชื่อ BUILD แต่สามารถตั้งชื่อได้ (เช่น BUILD.new-repo-name อาจใช้ได้ดีในการแยกความแตกต่างจากไฟล์ BUILD จริงของที่เก็บ ต้องระบุ build_file หรือ build_file_content

build_file_content สตริง ไม่บังคับ

เนื้อหาสำหรับไฟล์ BUILD สำหรับที่เก็บนี้ ต้องระบุ build_file หรือ build_file_content

commit สตริง ไม่บังคับ

คอมมิตที่เฉพาะเจาะจงที่จะเช็คเอาต์ ต้องระบุสาขา แท็ก หรือคอมมิตอย่างใดอย่างหนึ่งที่แน่นอน

init_submodules บูลีน ไม่บังคับ

ว่าจะโคลนโมดูลย่อยในที่เก็บหรือไม่

patch_args รายการสตริง ไม่บังคับ

อาร์กิวเมนต์ที่ส่งไปยังเครื่องมือแพตช์ ค่าเริ่มต้นคือ -p0 แต่โดยปกติแล้วจะต้องใช้ -p1 สำหรับแพตช์ที่สร้างโดย Git หากระบุอาร์กิวเมนต์ -p หลายรายการ อาร์กิวเมนต์สุดท้ายจะมีผล หากระบุอาร์กิวเมนต์อื่นที่ไม่ใช่ -p Bazel จะกลับไปใช้เครื่องมือบรรทัดคำสั่ง patch แทนการติดตั้งใช้งานแพตช์แบบเนทีฟของ Bazel เมื่อเปลี่ยนไปใช้เครื่องมือบรรทัดคำสั่ง patch และไม่ได้ระบุแอตทริบิวต์ patch_tool ระบบจะใช้ `patch`

patch_cmds รายการสตริง ไม่บังคับ

ลำดับคำสั่ง Bash ที่จะใช้ใน Linux/Macos หลังจากใช้แพตช์แล้ว

patch_cmds_win รายการสตริง ไม่บังคับ

ลำดับคำสั่ง PowerShell ที่จะใช้ใน Windows หลังจากใช้แพตช์ หากไม่ได้ตั้งค่าแอตทริบิวต์นี้ ระบบจะเรียกใช้ patch_cmds ใน Windows ซึ่งต้องมีไบนารี Bash

patch_tool สตริง ไม่บังคับ

โปรแกรมอรรถประโยชน์ patch(1) ที่จะใช้ หากมีการระบุ Bazel จะใช้เครื่องมือแก้ไขที่ระบุแทนการติดตั้งใช้งานแพตช์ดั้งเดิมของ Bazel

patches รายการป้ายกำกับ (ไม่บังคับ)

รายการไฟล์ที่จะใช้เป็นแพตช์หลังจากแตกไฟล์ที่เก็บถาวร โดยค่าเริ่มต้น จะใช้การติดตั้งใช้งานแพตช์ดั้งเดิมของ Bazel ซึ่งไม่รองรับการจับคู่แบบคลุมเครือและแพตช์ไบนารี แต่ Bazel จะกลับไปใช้เครื่องมือบรรทัดคำสั่ง patch หากมีการระบุแอตทริบิวต์ `patch_tool` หรือมีอาร์กิวเมนต์อื่นนอกเหนือจาก `-p` ในแอตทริบิวต์ `patch_args`

recursive_init_submodules บูลีน ไม่บังคับ

ว่าจะโคลนโมดูลย่อยแบบเรียกซ้ำในที่เก็บหรือไม่

remote สตริง; ต้องระบุ

URI ของที่เก็บ Git ระยะไกล

shallow_since สตริง ไม่บังคับ

วันที่ที่ไม่บังคับ โดยต้องไม่ใช่วันที่หลังจากคอมมิตที่ระบุ ไม่อนุญาตให้ใช้อาร์กิวเมนต์หากมีการระบุแท็กหรือกิ่ง (ซึ่งโคลนได้เสมอด้วย --depth=1) การตั้งค่าวันที่ดังกล่าวใกล้กับคอมมิตที่ระบุอาจอนุญาตให้โคลนแบบตื้นของที่เก็บได้แม้ว่าเซิร์ฟเวอร์จะไม่รองรับการดึงข้อมูลแบบตื้นของคอมมิตที่กำหนดเองก็ตาม เนื่องจากมีข้อบกพร่องในการติดตั้งใช้งาน --shallow-since ของ Git เราจึงไม่แนะนำให้ใช้แอตทริบิวต์นี้เนื่องจากอาจทำให้การดึงข้อมูลล้มเหลว

strip_prefix สตริง ไม่บังคับ

คำนำหน้าไดเรกทอรีที่จะนำออกจากไฟล์ที่แยก

tag สตริง ไม่บังคับ

ในที่เก็บระยะไกลเพื่อเช็คเอาต์ ต้องระบุสาขา แท็ก หรือคอมมิตอย่างใดอย่างหนึ่งที่แน่นอน

verbose บูลีน ไม่บังคับ
workspace_file ป้ายกำกับ (ไม่บังคับ)

ไฟล์ที่จะใช้เป็นไฟล์ `WORKSPACE` สำหรับที่เก็บนี้ คุณระบุ `workspace_file` หรือ `workspace_file_content` อย่างใดอย่างหนึ่ง หรือไม่ระบุทั้ง 2 อย่างก็ได้ แต่จะระบุทั้ง 2 อย่างไม่ได้

workspace_file_content สตริง ไม่บังคับ

เนื้อหาสำหรับไฟล์ WORKSPACE ของที่เก็บนี้ คุณระบุ `workspace_file` หรือ `workspace_file_content` อย่างใดอย่างหนึ่ง หรือไม่ระบุทั้ง 2 อย่างก็ได้ แต่จะระบุทั้ง 2 อย่างไม่ได้