คุณโหลดฟังก์ชันต่อไปนี้ได้จาก @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 ในที่เก็บระยะไกลที่จะเช็กเอาต์ ต้องระบุ branch, tag หรือ commit อย่างใดอย่างหนึ่ง |
build_file |
ป้ายกำกับ; ไม่บังคับ
ไฟล์ที่จะใช้เป็นไฟล์ BUILD สำหรับที่เก็บนี้ แอตทริบิวต์นี้เป็นป้ายกำกับแบบสัมบูรณ์ (ใช้ "@//" สำหรับที่เก็บหลัก) ไฟล์ไม่จำเป็นต้องชื่อ BUILD แต่สามารถตั้งชื่ออื่นได้ (เช่น BUILD.new-repo-name อาจเหมาะสำหรับการแยกความแตกต่างจากไฟล์ BUILD จริงของที่เก็บ) ต้องระบุ build_file หรือ build_file_content อย่างใดอย่างหนึ่ง |
build_file_content |
สตริง; ไม่บังคับ
เนื้อหาสำหรับไฟล์ BUILD สำหรับที่เก็บนี้ ต้องระบุ build_file หรือ build_file_content อย่างใดอย่างหนึ่ง |
commit |
สตริง; ไม่บังคับ
คอมมิตที่เฉพาะเจาะจงที่จะเช็กเอาต์ ต้องระบุ branch, tag หรือ commit อย่างใดอย่างหนึ่ง |
init_submodules |
บูลีน; ไม่บังคับ
ระบุว่าจะโคลนโมดูลย่อยในที่เก็บหรือไม่ |
patch_args |
รายการสตริง; ไม่บังคับ
อาร์กิวเมนต์ที่ส่งไปยังเครื่องมือแพตช์ ค่าเริ่มต้นคือ -p0 แต่โดยปกติแล้วจะต้องใช้ -p1 สำหรับแพตช์ที่สร้างโดย Git หากระบุอาร์กิวเมนต์ -p หลายรายการ อาร์กิวเมนต์สุดท้ายจะมีผล หากระบุอาร์กิวเมนต์อื่นที่ไม่ใช่ -p Bazel จะกลับไปใช้เครื่องมือบรรทัดคำสั่งแพตช์แทนการติดตั้งใช้งานแพตช์แบบเนทีฟของ Bazel เมื่อกลับไปใช้เครื่องมือบรรทัดคำสั่งแพตช์และไม่ได้ระบุแอตทริบิวต์ 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_tool` หรือมีอาร์กิวเมนต์อื่นที่ไม่ใช่ `-p` ในแอตทริบิวต์ `patch_args` |
recursive_init_submodules |
บูลีน; ไม่บังคับ
ระบุว่าจะโคลนโมดูลย่อยแบบเรียกซ้ำในที่เก็บหรือไม่ |
remote |
สตริง; ต้องระบุ
URI ของที่เก็บ Git ระยะไกล |
shallow_since |
สตริง; ไม่บังคับ
วันที่ที่ไม่บังคับและไม่หลังจากคอมมิตที่ระบุ ระบบจะไม่อนุญาตให้อาร์กิวเมนต์นี้หากมีการระบุแท็กหรือ branch (ซึ่งโคลนได้เสมอด้วย --depth=1) การตั้งค่าวันที่ดังกล่าวใกล้กับคอมมิตที่ระบุอาจอนุญาตให้โคลนที่เก็บแบบตื้นได้ แม้ว่าเซิร์ฟเวอร์จะไม่รองรับการดึงข้อมูลแบบตื้นของคอมมิตที่กำหนด เนื่องจากข้อบกพร่องในการติดตั้งใช้งาน --shallow-since ของ Git เราจึงไม่แนะนำให้ใช้แอตทริบิวต์นี้ เนื่องจากอาจทำให้การดึงข้อมูลล้มเหลว |
strip_prefix |
สตริง; ไม่บังคับ
คำนำหน้าไดเรกทอรีที่จะนำออกจากไฟล์ที่แยก |
tag |
สตริง; ไม่บังคับ
แท็กในที่เก็บระยะไกลที่จะเช็กเอาต์ ต้องระบุ branch, tag หรือ commit อย่างใดอย่างหนึ่ง |
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 ในที่เก็บระยะไกลที่จะเช็กเอาต์ ต้องระบุ branch, tag หรือ commit อย่างใดอย่างหนึ่ง |
build_file |
ป้ายกำกับ; ไม่บังคับ
ไฟล์ที่จะใช้เป็นไฟล์ BUILD สำหรับที่เก็บนี้ แอตทริบิวต์นี้เป็นป้ายกำกับแบบสัมบูรณ์ (ใช้ "@//" สำหรับที่เก็บหลัก) ไฟล์ไม่จำเป็นต้องชื่อ BUILD แต่สามารถตั้งชื่ออื่นได้ (เช่น BUILD.new-repo-name อาจเหมาะสำหรับการแยกความแตกต่างจากไฟล์ BUILD จริงของที่เก็บ) ต้องระบุ build_file หรือ build_file_content อย่างใดอย่างหนึ่ง |
build_file_content |
สตริง; ไม่บังคับ
เนื้อหาสำหรับไฟล์ BUILD สำหรับที่เก็บนี้ ต้องระบุ build_file หรือ build_file_content อย่างใดอย่างหนึ่ง |
commit |
สตริง; ไม่บังคับ
คอมมิตที่เฉพาะเจาะจงที่จะเช็กเอาต์ ต้องระบุ branch, tag หรือ commit อย่างใดอย่างหนึ่ง |
init_submodules |
บูลีน; ไม่บังคับ
ระบุว่าจะโคลนโมดูลย่อยในที่เก็บหรือไม่ |
patch_args |
รายการสตริง; ไม่บังคับ
อาร์กิวเมนต์ที่ส่งไปยังเครื่องมือแพตช์ ค่าเริ่มต้นคือ -p0 แต่โดยปกติแล้วจะต้องใช้ -p1 สำหรับแพตช์ที่สร้างโดย Git หากระบุอาร์กิวเมนต์ -p หลายรายการ อาร์กิวเมนต์สุดท้ายจะมีผล หากระบุอาร์กิวเมนต์อื่นที่ไม่ใช่ -p Bazel จะกลับไปใช้เครื่องมือบรรทัดคำสั่งแพตช์แทนการติดตั้งใช้งานแพตช์แบบเนทีฟของ Bazel เมื่อกลับไปใช้เครื่องมือบรรทัดคำสั่งแพตช์และไม่ได้ระบุแอตทริบิวต์ 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_tool` หรือมีอาร์กิวเมนต์อื่นที่ไม่ใช่ `-p` ในแอตทริบิวต์ `patch_args` |
recursive_init_submodules |
บูลีน; ไม่บังคับ
ระบุว่าจะโคลนโมดูลย่อยแบบเรียกซ้ำในที่เก็บหรือไม่ |
remote |
สตริง; ต้องระบุ
URI ของที่เก็บ Git ระยะไกล |
shallow_since |
สตริง; ไม่บังคับ
วันที่ที่ไม่บังคับและไม่หลังจากคอมมิตที่ระบุ ระบบจะไม่อนุญาตให้อาร์กิวเมนต์นี้หากมีการระบุแท็กหรือ branch (ซึ่งโคลนได้เสมอด้วย --depth=1) การตั้งค่าวันที่ดังกล่าวใกล้กับคอมมิตที่ระบุอาจอนุญาตให้โคลนที่เก็บแบบตื้นได้ แม้ว่าเซิร์ฟเวอร์จะไม่รองรับการดึงข้อมูลแบบตื้นของคอมมิตที่กำหนด เนื่องจากข้อบกพร่องในการติดตั้งใช้งาน --shallow-since ของ Git เราจึงไม่แนะนำให้ใช้แอตทริบิวต์นี้ เนื่องจากอาจทำให้การดึงข้อมูลล้มเหลว |
strip_prefix |
สตริง; ไม่บังคับ
คำนำหน้าไดเรกทอรีที่จะนำออกจากไฟล์ที่แยก |
tag |
สตริง; ไม่บังคับ
แท็กในที่เก็บระยะไกลที่จะเช็กเอาต์ ต้องระบุ branch, tag หรือ commit อย่างใดอย่างหนึ่ง |
verbose |
บูลีน; ไม่บังคับ |
workspace_file |
ป้ายกำกับ; ไม่บังคับ
ไฟล์ที่จะใช้เป็นไฟล์ `WORKSPACE` สำหรับที่เก็บนี้ คุณระบุ `workspace_file` หรือ `workspace_file_content` อย่างใดอย่างหนึ่ง หรือไม่ระบุทั้ง 2 อย่างก็ได้ แต่จะระบุทั้ง 2 อย่างไม่ได้ |
workspace_file_content |
สตริง; ไม่บังคับ
เนื้อหาสำหรับไฟล์ WORKSPACE สำหรับที่เก็บนี้ คุณระบุ `workspace_file` หรือ `workspace_file_content` อย่างใดอย่างหนึ่ง หรือไม่ระบุทั้ง 2 อย่างก็ได้ แต่จะระบุทั้ง 2 อย่างไม่ได้ |