หน้านี้อธิบายขั้นตอนทั้งหมดในการส่งการเปลี่ยนแปลงโค้ดไปยัง โปรเจ็กต์โอเพนซอร์ส (AOSP) รวมถึงวิธีขอรับการตรวจสอบและติดตาม การเปลี่ยนแปลงของคุณ
AOSP ใช้ Gerrit ซึ่งเป็นระบบตรวจสอบโค้ดบนเว็บสำหรับโครงการที่ใช้ Git
ลงนามในข้อตกลงใบอนุญาตผู้สนับสนุน
คุณต้องอ่านก่อนที่จะมีส่วนร่วมในการเปลี่ยนแปลงโค้ดสําหรับ AOSP ข้อตกลงและส่วนหัวของใบอนุญาตผู้ให้ข้อมูลร่วมกัน และลงนามในข้อตกลงใดข้อตกลงหนึ่งต่อไปนี้
- ในฐานะผู้ให้ข้อมูลร่วมกันที่ร่วมให้ข้อมูลในนามของคุณเท่านั้น ให้ลงนาม เวลา ข้อตกลงใบอนุญาตผู้สนับสนุนส่วนบุคคล
- ในฐานะพนักงานของบริษัท ให้ตรวจสอบว่าบริษัทได้ลงนามใน ข้อตกลงใบอนุญาตผู้สนับสนุนของบริษัท ให้สิทธิ์แก่คุณในการร่วมให้ข้อมูลในนามขององค์กร
เริ่มต้นสาขา
สำหรับการเปลี่ยนแปลงโค้ดแต่ละรายการที่คุณตั้งใจจะทำ ให้ทำตามขั้นตอนต่อไปนี้:
เริ่มต้น Branch ใหม่ภายในที่เก็บ Git ที่เกี่ยวข้อง สาขาไม่ใช่สำเนา ไฟล์ต้นฉบับทั้งหมด เป็นตัวชี้ไปยังคอมมิตที่เฉพาะเจาะจง ซึ่งทำให้ สร้าง Branch ท้องถิ่นและสลับไปมาเป็นการดำเนินการที่ไม่ซับซ้อน โดย โดยใช้ Branch คุณจะระบุการเปลี่ยนแปลงของกันและกันได้ เรียกใช้คำสั่งนี้เพื่อ เริ่มต้นสาขา:
repo start BRANCH_NAME
คุณสามารถเริ่มต้น Branch ที่เป็นอิสระได้หลายรายการพร้อมกันใน ที่เก็บได้ สาขา BRANCH_NAME เป็นของ พื้นที่ทำงาน และไม่รวมอยู่ใน Gerrit หรือในโครงสร้างแหล่งที่มาสุดท้าย นอกจากนี้ สาขายังเป็นข้อมูลเฉพาะสําหรับโปรเจ็กต์ที่คุณอยู่ ดังนั้น หากคุณจำเป็นต้องเปลี่ยนแปลง ไฟล์อื่นๆ ในโปรเจ็กต์เดียวกันโดยเป็นส่วนหนึ่งของการเปลี่ยนแปลงเดียวกัน คุณจะต้องมี Branch ในแต่ละโปรเจ็กต์ที่คุณเปลี่ยนไฟล์
(ไม่บังคับ) ยืนยันว่าได้สร้างสาขาโดยทำดังนี้
repo status .
คุณควรเห็น Branch ที่สร้างขึ้นใหม่ เช่น
project frameworks/native/ branch mynewbranch
สร้างและทดสอบการเปลี่ยนแปลง
ทำตามขั้นตอนต่อไปนี้เพื่อสร้างและทดสอบการเปลี่ยนแปลง
ทำการซิงค์ ฐานของโค้ดทั้งหมด ได้แก่
repo sync
หากมีข้อขัดแย้งใดๆ ระหว่างการซิงค์ โปรดดูขั้นตอนที่ 2-4 ของ แก้ไขข้อขัดแย้งในการซิงค์
หารหัสที่จะเปลี่ยน หากต้องการค้นหาโค้ด ให้ลองใช้ Android Code Search คุณใช้ Android ได้ Code Search เพื่อดูซอร์สโค้ด AOSP ตามที่แสดงอยู่เมื่อคุณใช้ ได้ สำหรับข้อมูลเพิ่มเติม โปรดดู เริ่มต้นใช้งาน Code Search หากต้องการดูโค้ดทั้งหมดในสาขา
main
ภายในการค้นหาโค้ดของ Android นำทางไปที่https://cs.android.com/android/platform/superproject/main
แก้ไขหรือเพิ่มไฟล์ต้นฉบับ สำหรับการเปลี่ยนแปลงที่เกิดขึ้น
- ทำตามแนวทางปฏิบัติแนะนำใน รวมส่วนหัวของใบอนุญาต
สำหรับโค้ด Java ให้ทำตาม รูปแบบโค้ด Java สำหรับ AOSP สำหรับผู้ร่วมให้ข้อมูล
บางส่วนของ AOSP เขียนด้วยภาษา Kotlin (
.kt
) และคุณใช้ Kotlin ได้ใน ของแพลตฟอร์มที่ใช้ภาษา Kotlin อยู่แล้ว หากต้องการดูข้อมูลเพิ่มเติม เกี่ยวกับ Kotlin ใน Android ให้ดูนักพัฒนาแอป Android คู่มือแนะนำ Kotlin และ คู่มือการทำงานร่วมกันของ Kotlin-Java ดูคำแนะนำเกี่ยวกับ Kotlin โดยละเอียดได้ที่ เว็บไซต์ภาษา Kotlinเมื่อเขียน API ให้ทำตามหลักเกณฑ์ Android API ใช้หลักเกณฑ์เหล่านี้เพื่อดูบริบทเบื้องหลังการตัดสินใจเกี่ยวกับ API ของ Android การเพิ่มและการแก้ไขของ API แพลตฟอร์มได้รับการตรวจสอบโดย Metalava
เริ่มต้นแล้วทำตามสิ่งที่เปลี่ยนแปลง
คอมมิตคือหน่วยพื้นฐานของการควบคุมการแก้ไขใน Git และประกอบด้วยองค์ประกอบ สแนปชอตของโครงสร้างไดเรกทอรีและเนื้อหาไฟล์สำหรับทั้งโครงการ ทำตามขั้นตอนต่อไปนี้เพื่อยอมรับการเปลี่ยนแปลง
Git ลงทะเบียนโดยค่าเริ่มต้น แต่จะไม่ติดตามการเปลี่ยนแปลงที่คุณทำ ถึง สั่งให้ Git ติดตามการเปลี่ยนแปลง คุณต้องทำเครื่องหมายหรือทำให้การเปลี่ยนแปลงเหล่านั้นใช้งานได้ การรวมไว้ในคอมมิต เรียกใช้คำสั่งนี้เพื่อทำการเปลี่ยนแปลง
git add -A
คำสั่งนี้จะติดตามการเปลี่ยนแปลงที่คุณดำเนินการกับไฟล์ต่างๆ
นำไฟล์ในพื้นที่ทดลองใช้แล้วผูกหรือจัดเก็บไฟล์เหล่านั้นไว้ในเครื่องของคุณ ฐานข้อมูล:
git commit -s
โดยค่าเริ่มต้น เครื่องมือแก้ไขข้อความจะเปิดขึ้นและคุณจะได้รับแจ้งให้ระบุ ข้อความคอมมิต
ระบุข้อความคอมมิตในรูปแบบต่อไปนี้
บรรทัดที่ 1: บรรทัดแรก ระบุสรุปการเปลี่ยนแปลงหนึ่งบรรทัด (50 อักขระ สูงสุด) พิจารณาใช้คำนำหน้าเพื่ออธิบายพื้นที่ที่คุณเปลี่ยนแปลง แล้วตามด้วย ตามคำอธิบายการเปลี่ยนแปลงที่คุณทำในคอมมิตนี้ เช่น ตัวอย่างที่มีการเปลี่ยนแปลงอินเทอร์เฟซผู้ใช้:
ui: Removes deprecated widget
บรรทัดที่ 2: บรรทัดว่าง ให้บรรทัดว่างต่อท้ายบรรทัดแรก
บรรทัดที่ 3: เนื้อความ ให้คำอธิบายยาวๆ ที่ตัดเย็บอักขระได้ 72 ตัว สูงสุด อธิบายว่าการเปลี่ยนแปลงนี้ช่วยแก้ไขปัญหาใดและอย่างไร แม้ว่าร่างกายจะ ไม่บังคับ จะเป็นประโยชน์สำหรับบุคคลที่จำเป็นต้องย้อนกลับไปดูการเปลี่ยนแปลง อย่าลืมระบุสั้นๆ เกี่ยวกับสมมติฐานหรือข้อมูลความเป็นมา ที่อาจมีความสำคัญเมื่อผู้ร่วมให้ข้อมูลรายอื่นทำงานกับฟีเจอร์นี้
หากต้องการอ่านบล็อกเกี่ยวกับคำอธิบายคอมมิตที่ดี (พร้อมตัวอย่าง) โปรดดูที่ วิธีเขียนข้อความคอมมิต Git
บันทึกคอมมิต
รหัสการเปลี่ยนแปลงที่ไม่ซ้ำกัน รวมทั้งชื่อและอีเมลของคุณซึ่งก็คือ
ระบบจะเพิ่มที่ระบุไว้ในข้อความคอมมิตของคุณโดยอัตโนมัติระหว่าง repo init
อัปโหลดการเปลี่ยนแปลงเพื่อรับการตรวจสอบ
หลังจากที่คุณยืนยันการเปลี่ยนแปลงประวัติ Git ส่วนตัวแล้ว ให้อัปโหลดไปยัง Gerrit:
เรียกใช้คำสั่งต่อไปนี้เพื่ออัปโหลดคอมมิตทั้งหมดใน โปรเจ็กต์:
repo upload
การเปลี่ยนแปลงทั้งหมดในทุกโปรเจ็กต์จะรวมอยู่ในการอัปโหลด
คุณจะได้รับแจ้งให้เรียกใช้สคริปต์ฮุก
กด a แล้วกด Enter
ระบบจะแจ้งให้คุณอนุมัติการอัปโหลดดังนี้
Upload project frameworks/native/ to remote branch main: branch BRANCH_NAME ( 1 commit, Wed Aug 7 09:32:33 2019 -0700): ff46b36d android codelab change to https://android-review.googlesource.com/ (y/N)?
กด y แล้วกด Enter เพื่ออนุมัติการอัปโหลด
คุณควรได้รับข้อความที่คล้ายกับ remote: SUCCESS
ขอรับการตรวจสอบ
หลังจากอัปโหลดสำเร็จแล้ว Repo จะแสดงลิงก์ไปยังการเปลี่ยนแปลงใน เกอร์ริต คลิกลิงก์เพื่อดูการเปลี่ยนแปลงของคุณ ในเซิร์ฟเวอร์การตรวจสอบ เพิ่มความคิดเห็น หรือขอให้มีการตรวจสอบเฉพาะสำหรับการเปลี่ยนแปลงของคุณ การเปลี่ยนแปลงทั้งหมดในโค้ดจะต้อง ตรวจสอบโดยเจ้าของโค้ดที่เหมาะสม หากต้องการขอรับการตรวจสอบ ให้ทำดังนี้
ใน Gerrit คลิกเจ้าของที่แนะนำ
รูปที่ 1 แนะนำลิงก์เจ้าของใน Gerrit
กล่องโต้ตอบของผู้ตรวจสอบจะปรากฏขึ้น กล่องโต้ตอบนี้มีรายชื่อเจ้าของโค้ดที่ เพื่อตรวจสอบการเปลี่ยนแปลงได้
คลิกเจ้าของโค้ดเพื่อเพิ่มพวกเขาลงในรีวิว
ปุ่มส่งจะเปิดใช้งาน
(ไม่บังคับ) พิมพ์อีเมลของคนอื่นๆ ที่คุณต้องการให้ตรวจสอบ เปลี่ยน
(ไม่บังคับ) คลิก +1 ถัดจากส่งอัตโนมัติเพื่อส่งการเปลี่ยนแปลงโดยอัตโนมัติ หลังจากได้รับการอนุมัติแล้ว หากคุณไม่คลิกปุ่มนี้ พนักงานของ Google ต้องส่งการเปลี่ยนแปลงให้คุณ
คลิกส่งเพื่อส่งการเปลี่ยนแปลงเข้ารับการตรวจสอบ
เจ้าของโค้ดจะตรวจสอบการเปลี่ยนแปลงโค้ดของคุณ และแสดงความคิดเห็นเพื่อให้คุณ แก้ไขหรืออนุมัติการเปลี่ยนแปลง
กำหนดสถานะการเปลี่ยนแปลง
ในการดูสถานะของไฟล์ในการเปลี่ยนแปลง ให้ตรวจสอบ ไอคอนต่อไปนี้ถัดจากไฟล์ในการเปลี่ยนแปลง
- (เครื่องหมายถูก ไอคอน): อนุมัติโดยเจ้าของโค้ด
- (ไอคอนกากบาท): ไม่ได้รับอนุมัติโดยเจ้าของโค้ด
- (นาฬิกา ไอคอน): รอการอนุมัติโดยเจ้าของโค้ด
รูปต่อไปนี้แสดงไอคอนสถานะที่ใช้กับไฟล์ในการเปลี่ยนแปลง
รูปที่ 2 ตัวอย่างไฟล์ที่มีไอคอนแสดงการอนุมัติจากเจ้าของโค้ด
แก้ไขความคิดเห็นและอัปโหลดการเปลี่ยนแปลงแทนที่
หากผู้ตรวจสอบขอแก้ไขการอัปเดต สามารถแก้ไขคอมมิตภายใน Git ซึ่งส่งผลให้เกิดชุดแพตช์ใหม่ใน เปลี่ยน
วิธีแก้ไขความคิดเห็นและแก้ไขการเปลี่ยนแปลง
ทำตามขั้นตอนที่ 2-4 ในสร้างและทดสอบการเปลี่ยนแปลง
เรียกใช้คำสั่งต่อไปนี้เพื่อแก้ไขการเปลี่ยนแปลง
git add -A git commit --amend
เมื่อคุณอัปโหลดการเปลี่ยนแปลงที่มีการแก้ไข การเปลี่ยนแปลงดังกล่าวจะแทนที่การเปลี่ยนแปลงต้นฉบับทั้งใน Gerrit และในประวัติ Git ในเครื่อง
แก้ไขข้อขัดแย้งในการซิงค์
หากมีการส่งการเปลี่ยนแปลงอื่นๆ ไปยังแผนผังแหล่งที่มาที่ขัดแย้งกับ ของคุณ คุณได้รับข้อความว่าคุณมีข้อขัดแย้ง หากต้องการแก้ไขข้อขัดแย้ง ให้ทำดังนี้
ตรวจสอบให้แน่ใจว่าคุณกำลังทำงานกับรหัสล่าสุด:
repo sync .
คำสั่ง
repo sync
จะดึงข้อมูลการอัปเดตจากเซิร์ฟเวอร์ต้นทาง จากนั้น พยายามเปลี่ยนฐานHEAD
เป็นรีโมตเครื่องใหม่HEAD
โดยอัตโนมัติหากฐานะอัตโนมัติไม่สำเร็จ ให้ดำเนินการใหม่ด้วยตัวเองดังนี้
repo rebase .
แก้ไขความขัดแย้งในการรวม หากไม่มีวิธีแก้ไขที่ต้องการ ขัดแย้งกัน คุณสามารถ ใช้
git mergetool
เพื่อแก้ไขความขัดแย้งระหว่างไฟล์ด้วยตัวเองเมื่อคุณแก้ไขไฟล์ที่ขัดแย้งกันเรียบร้อยแล้ว ให้เรียกใช้คำสั่งนี้เพื่อ ใช้คอมมิตใหม่:
git rebase --continue
ส่งการเปลี่ยนแปลง
หลังจากที่ส่งข้อมูลผ่านกระบวนการตรวจสอบและยืนยันตัวตนแล้ว
ผู้ตรวจสอบของ Google จะต้องส่งรหัสให้คุณ อื่นๆ
ผู้ใช้เรียกใช้ repo sync
เพื่อดึงข้อมูลอัปเดตลงในเครื่องที่เกี่ยวข้องได้
ลูกค้า
หลังจากระบบผสานข้อมูลที่ส่งแล้ว คุณสามารถไปที่ การผสานรวม Android อย่างต่อเนื่อง เพื่อตรวจสอบว่าข้อมูลที่คุณส่งเข้ามารวมอยู่ในโครงสร้างเมื่อใด