โหลดฟังก์ชันต่อไปนี้ได้จาก
@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 |
สตริง ไม่บังคับ
ในที่เก็บระยะไกลเพื่อตรวจสอบ ต้องระบุสาขา แท็ก หรือคอมมิตอย่างใดอย่างหนึ่งเท่านั้น |
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 จะเปลี่ยนไปใช้เครื่องมือบรรทัดคำสั่งการปะติดปะต่อแทนการใช้การปะติดปะต่อแบบเนทีฟของ Bazel เมื่อใช้เครื่องมือบรรทัดคำสั่งการปะติดปะต่อสำรองและไม่ระบุแอตทริบิวต์ patch_tool ระบบจะใช้ "patch" |
patch_cmds |
รายการสตริง (ไม่บังคับ)
ลำดับคำสั่ง Bash ที่จะใช้ใน Linux/Macos หลังจากติดตั้งแพตช์แล้ว |
patch_cmds_win |
รายการสตริง (ไม่บังคับ)
ลำดับคำสั่ง PowerShell ที่จะใช้ใน Windows หลังจากติดตั้งแพตช์แล้ว หากไม่ได้ตั้งค่าแอตทริบิวต์นี้ ระบบจะเรียกใช้ patch_cmds ใน Windows ซึ่งต้องมีไฟล์ Bash อยู่ |
patch_tool |
สตริง ไม่บังคับ
ยูทิลิตีการแก้ไข(1) ที่จะใช้ หากระบุค่านี้ Bazel จะใช้เครื่องมือแพตช์ที่ระบุแทนการใช้แพตช์แบบเนทีฟของ Bazel |
patches |
รายการป้ายกำกับ (ไม่บังคับ)
รายการไฟล์ที่จะใช้เป็นแพตช์หลังจากแตกไฟล์เก็บถาวร โดยค่าเริ่มต้นจะใช้การติดตั้งใช้งานการปะติดปะต่อแบบดั้งเดิมของ Bazel ซึ่งไม่รองรับการจับคู่แบบไม่เจาะจงและแพตช์แบบไบนารี แต่ Bazel จะเปลี่ยนไปใช้เครื่องมือบรรทัดคำสั่งการปะติดปะต่อหากระบุแอตทริบิวต์ `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 อย่างก็ได้ |
workspace_file_content |
สตริง ไม่บังคับ
เนื้อหาสำหรับไฟล์ WORKSPACE ของที่เก็บข้อมูลนี้ คุณสามารถระบุ "workspace_file" หรือ "workspace_file_content" อย่างใดอย่างหนึ่ง หรือจะระบุทั้ง 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 |
สตริง ไม่บังคับ
ในที่เก็บระยะไกลเพื่อตรวจสอบ ต้องระบุสาขา แท็ก หรือคอมมิตอย่างใดอย่างหนึ่งเท่านั้น |
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 จะเปลี่ยนไปใช้เครื่องมือบรรทัดคำสั่งการปะติดปะต่อแทนการใช้การปะติดปะต่อแบบเนทีฟของ Bazel เมื่อใช้เครื่องมือบรรทัดคำสั่งการปะติดปะต่อสำรองและไม่ระบุแอตทริบิวต์ patch_tool ระบบจะใช้ "patch" |
patch_cmds |
รายการสตริง (ไม่บังคับ)
ลำดับคำสั่ง Bash ที่จะใช้ใน Linux/Macos หลังจากติดตั้งแพตช์แล้ว |
patch_cmds_win |
รายการสตริง (ไม่บังคับ)
ลำดับคำสั่ง PowerShell ที่จะใช้ใน Windows หลังจากติดตั้งแพตช์แล้ว หากไม่ได้ตั้งค่าแอตทริบิวต์นี้ ระบบจะเรียกใช้ patch_cmds ใน Windows ซึ่งต้องมีไฟล์ Bash อยู่ |
patch_tool |
สตริง ไม่บังคับ
ยูทิลิตีการแก้ไข(1) ที่จะใช้ หากระบุค่านี้ Bazel จะใช้เครื่องมือแพตช์ที่ระบุแทนการใช้แพตช์แบบเนทีฟของ Bazel |
patches |
รายการป้ายกำกับ (ไม่บังคับ)
รายการไฟล์ที่จะใช้เป็นแพตช์หลังจากแตกไฟล์เก็บถาวร โดยค่าเริ่มต้นจะใช้การติดตั้งใช้งานการปะติดปะต่อแบบดั้งเดิมของ Bazel ซึ่งไม่รองรับการจับคู่แบบไม่เจาะจงและแพตช์แบบไบนารี แต่ Bazel จะเปลี่ยนไปใช้เครื่องมือบรรทัดคำสั่งการปะติดปะต่อหากระบุแอตทริบิวต์ `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 อย่างก็ได้ |
workspace_file_content |
สตริง ไม่บังคับ
เนื้อหาสำหรับไฟล์ WORKSPACE ของที่เก็บข้อมูลนี้ คุณสามารถระบุ "workspace_file" หรือ "workspace_file_content" อย่างใดอย่างหนึ่ง หรือจะระบุทั้ง 2 อย่างก็ได้ |