ส่งการเปลี่ยนแปลงโค้ด

หน้านี้อธิบายขั้นตอนทั้งหมดในการส่งการเปลี่ยนแปลงโค้ดไปยัง โปรเจ็กต์โอเพนซอร์ส (AOSP) รวมถึงวิธีขอรับการตรวจสอบและติดตาม การเปลี่ยนแปลงของคุณ

AOSP ใช้ Gerrit ซึ่งเป็นระบบตรวจสอบโค้ดบนเว็บสำหรับโครงการที่ใช้ Git

ลงนามในข้อตกลงใบอนุญาตผู้สนับสนุน

คุณต้องอ่านก่อนที่จะมีส่วนร่วมในการเปลี่ยนแปลงโค้ดสําหรับ AOSP ข้อตกลงและส่วนหัวของใบอนุญาตผู้ให้ข้อมูลร่วมกัน และลงนามในข้อตกลงใดข้อตกลงหนึ่งต่อไปนี้

เริ่มต้นสาขา

สำหรับการเปลี่ยนแปลงโค้ดแต่ละรายการที่คุณตั้งใจจะทำ ให้ทำตามขั้นตอนต่อไปนี้:

  1. เริ่มต้น Branch ใหม่ภายในที่เก็บ Git ที่เกี่ยวข้อง สาขาไม่ใช่สำเนา ไฟล์ต้นฉบับทั้งหมด เป็นตัวชี้ไปยังคอมมิตที่เฉพาะเจาะจง ซึ่งทำให้ สร้าง Branch ท้องถิ่นและสลับไปมาเป็นการดำเนินการที่ไม่ซับซ้อน โดย โดยใช้ Branch คุณจะระบุการเปลี่ยนแปลงของกันและกันได้ เรียกใช้คำสั่งนี้เพื่อ เริ่มต้นสาขา:

    repo start BRANCH_NAME
    

    คุณสามารถเริ่มต้น Branch ที่เป็นอิสระได้หลายรายการพร้อมกันใน ที่เก็บได้ สาขา BRANCH_NAME เป็นของ พื้นที่ทำงาน และไม่รวมอยู่ใน Gerrit หรือในโครงสร้างแหล่งที่มาสุดท้าย นอกจากนี้ สาขายังเป็นข้อมูลเฉพาะสําหรับโปรเจ็กต์ที่คุณอยู่ ดังนั้น หากคุณจำเป็นต้องเปลี่ยนแปลง ไฟล์อื่นๆ ในโปรเจ็กต์เดียวกันโดยเป็นส่วนหนึ่งของการเปลี่ยนแปลงเดียวกัน คุณจะต้องมี Branch ในแต่ละโปรเจ็กต์ที่คุณเปลี่ยนไฟล์

  2. (ไม่บังคับ) ยืนยันว่าได้สร้างสาขาโดยทำดังนี้

    repo status .
    

    คุณควรเห็น Branch ที่สร้างขึ้นใหม่ เช่น

    project frameworks/native/                      branch mynewbranch
    

สร้างและทดสอบการเปลี่ยนแปลง

ทำตามขั้นตอนต่อไปนี้เพื่อสร้างและทดสอบการเปลี่ยนแปลง

  1. ทำการซิงค์ ฐานของโค้ดทั้งหมด ได้แก่

    repo sync
    

    หากมีข้อขัดแย้งใดๆ ระหว่างการซิงค์ โปรดดูขั้นตอนที่ 2-4 ของ แก้ไขข้อขัดแย้งในการซิงค์

  2. หารหัสที่จะเปลี่ยน หากต้องการค้นหาโค้ด ให้ลองใช้ Android Code Search คุณใช้ Android ได้ Code Search เพื่อดูซอร์สโค้ด AOSP ตามที่แสดงอยู่เมื่อคุณใช้ ได้ สำหรับข้อมูลเพิ่มเติม โปรดดู เริ่มต้นใช้งาน Code Search หากต้องการดูโค้ดทั้งหมดในสาขา main ภายในการค้นหาโค้ดของ Android นำทางไปที่ https://cs.android.com/android/platform/superproject/main

  3. แก้ไขหรือเพิ่มไฟล์ต้นฉบับ สำหรับการเปลี่ยนแปลงที่เกิดขึ้น

  4. สร้าง Android

  5. ทดสอบบิลด์

เริ่มต้นแล้วทำตามสิ่งที่เปลี่ยนแปลง

คอมมิตคือหน่วยพื้นฐานของการควบคุมการแก้ไขใน Git และประกอบด้วยองค์ประกอบ สแนปชอตของโครงสร้างไดเรกทอรีและเนื้อหาไฟล์สำหรับทั้งโครงการ ทำตามขั้นตอนต่อไปนี้เพื่อยอมรับการเปลี่ยนแปลง

  1. Git ลงทะเบียนโดยค่าเริ่มต้น แต่จะไม่ติดตามการเปลี่ยนแปลงที่คุณทำ ถึง สั่งให้ Git ติดตามการเปลี่ยนแปลง คุณต้องทำเครื่องหมายหรือทำให้การเปลี่ยนแปลงเหล่านั้นใช้งานได้ การรวมไว้ในคอมมิต เรียกใช้คำสั่งนี้เพื่อทำการเปลี่ยนแปลง

    git add -A
    

    คำสั่งนี้จะติดตามการเปลี่ยนแปลงที่คุณดำเนินการกับไฟล์ต่างๆ

  2. นำไฟล์ในพื้นที่ทดลองใช้แล้วผูกหรือจัดเก็บไฟล์เหล่านั้นไว้ในเครื่องของคุณ ฐานข้อมูล:

    git commit -s
    

    โดยค่าเริ่มต้น เครื่องมือแก้ไขข้อความจะเปิดขึ้นและคุณจะได้รับแจ้งให้ระบุ ข้อความคอมมิต

  3. ระบุข้อความคอมมิตในรูปแบบต่อไปนี้

    • บรรทัดที่ 1: บรรทัดแรก ระบุสรุปการเปลี่ยนแปลงหนึ่งบรรทัด (50 อักขระ สูงสุด) พิจารณาใช้คำนำหน้าเพื่ออธิบายพื้นที่ที่คุณเปลี่ยนแปลง แล้วตามด้วย ตามคำอธิบายการเปลี่ยนแปลงที่คุณทำในคอมมิตนี้ เช่น ตัวอย่างที่มีการเปลี่ยนแปลงอินเทอร์เฟซผู้ใช้:

      ui: Removes deprecated widget
      
    • บรรทัดที่ 2: บรรทัดว่าง ให้บรรทัดว่างต่อท้ายบรรทัดแรก

    • บรรทัดที่ 3: เนื้อความ ให้คำอธิบายยาวๆ ที่ตัดเย็บอักขระได้ 72 ตัว สูงสุด อธิบายว่าการเปลี่ยนแปลงนี้ช่วยแก้ไขปัญหาใดและอย่างไร แม้ว่าร่างกายจะ ไม่บังคับ จะเป็นประโยชน์สำหรับบุคคลที่จำเป็นต้องย้อนกลับไปดูการเปลี่ยนแปลง อย่าลืมระบุสั้นๆ เกี่ยวกับสมมติฐานหรือข้อมูลความเป็นมา ที่อาจมีความสำคัญเมื่อผู้ร่วมให้ข้อมูลรายอื่นทำงานกับฟีเจอร์นี้

    หากต้องการอ่านบล็อกเกี่ยวกับคำอธิบายคอมมิตที่ดี (พร้อมตัวอย่าง) โปรดดูที่ วิธีเขียนข้อความคอมมิต Git

  4. บันทึกคอมมิต

รหัสการเปลี่ยนแปลงที่ไม่ซ้ำกัน รวมทั้งชื่อและอีเมลของคุณซึ่งก็คือ ระบบจะเพิ่มที่ระบุไว้ในข้อความคอมมิตของคุณโดยอัตโนมัติระหว่าง repo init

อัปโหลดการเปลี่ยนแปลงเพื่อรับการตรวจสอบ

หลังจากที่คุณยืนยันการเปลี่ยนแปลงประวัติ Git ส่วนตัวแล้ว ให้อัปโหลดไปยัง Gerrit:

  1. เรียกใช้คำสั่งต่อไปนี้เพื่ออัปโหลดคอมมิตทั้งหมดใน โปรเจ็กต์:

    repo upload
    

    การเปลี่ยนแปลงทั้งหมดในทุกโปรเจ็กต์จะรวมอยู่ในการอัปโหลด

    คุณจะได้รับแจ้งให้เรียกใช้สคริปต์ฮุก

  2. กด 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)?
    
  3. กด y แล้วกด Enter เพื่ออนุมัติการอัปโหลด

คุณควรได้รับข้อความที่คล้ายกับ remote: SUCCESS

ขอรับการตรวจสอบ

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

  1. ใน Gerrit คลิกเจ้าของที่แนะนำ

    แนะนำลิงก์เจ้าของใน Gerrit

    รูปที่ 1 แนะนำลิงก์เจ้าของใน Gerrit

    กล่องโต้ตอบของผู้ตรวจสอบจะปรากฏขึ้น กล่องโต้ตอบนี้มีรายชื่อเจ้าของโค้ดที่ เพื่อตรวจสอบการเปลี่ยนแปลงได้

  2. คลิกเจ้าของโค้ดเพื่อเพิ่มพวกเขาลงในรีวิว

    ปุ่มส่งจะเปิดใช้งาน

  3. (ไม่บังคับ) พิมพ์อีเมลของคนอื่นๆ ที่คุณต้องการให้ตรวจสอบ เปลี่ยน

  4. (ไม่บังคับ) คลิก +1 ถัดจากส่งอัตโนมัติเพื่อส่งการเปลี่ยนแปลงโดยอัตโนมัติ หลังจากได้รับการอนุมัติแล้ว หากคุณไม่คลิกปุ่มนี้ พนักงานของ Google ต้องส่งการเปลี่ยนแปลงให้คุณ

  5. คลิกส่งเพื่อส่งการเปลี่ยนแปลงเข้ารับการตรวจสอบ

เจ้าของโค้ดจะตรวจสอบการเปลี่ยนแปลงโค้ดของคุณ และแสดงความคิดเห็นเพื่อให้คุณ แก้ไขหรืออนุมัติการเปลี่ยนแปลง

กำหนดสถานะการเปลี่ยนแปลง

ในการดูสถานะของไฟล์ในการเปลี่ยนแปลง ให้ตรวจสอบ ไอคอนต่อไปนี้ถัดจากไฟล์ในการเปลี่ยนแปลง

  • (เครื่องหมายถูก ไอคอน): อนุมัติโดยเจ้าของโค้ด
  • (ไอคอนกากบาท): ไม่ได้รับอนุมัติโดยเจ้าของโค้ด
  • (นาฬิกา ไอคอน): รอการอนุมัติโดยเจ้าของโค้ด

รูปต่อไปนี้แสดงไอคอนสถานะที่ใช้กับไฟล์ในการเปลี่ยนแปลง

ตัวอย่างไฟล์ที่มีไอคอนแสดงการอนุมัติจากเจ้าของโค้ด

รูปที่ 2 ตัวอย่างไฟล์ที่มีไอคอนแสดงการอนุมัติจากเจ้าของโค้ด

แก้ไขความคิดเห็นและอัปโหลดการเปลี่ยนแปลงแทนที่

หากผู้ตรวจสอบขอแก้ไขการอัปเดต สามารถแก้ไขคอมมิตภายใน Git ซึ่งส่งผลให้เกิดชุดแพตช์ใหม่ใน เปลี่ยน

วิธีแก้ไขความคิดเห็นและแก้ไขการเปลี่ยนแปลง

  1. ทำตามขั้นตอนที่ 2-4 ในสร้างและทดสอบการเปลี่ยนแปลง

  2. เรียกใช้คำสั่งต่อไปนี้เพื่อแก้ไขการเปลี่ยนแปลง

    git add -A
    git commit --amend
    
  3. อัปโหลดการเปลี่ยนแปลง

เมื่อคุณอัปโหลดการเปลี่ยนแปลงที่มีการแก้ไข การเปลี่ยนแปลงดังกล่าวจะแทนที่การเปลี่ยนแปลงต้นฉบับทั้งใน Gerrit และในประวัติ Git ในเครื่อง

แก้ไขข้อขัดแย้งในการซิงค์

หากมีการส่งการเปลี่ยนแปลงอื่นๆ ไปยังแผนผังแหล่งที่มาที่ขัดแย้งกับ ของคุณ คุณได้รับข้อความว่าคุณมีข้อขัดแย้ง หากต้องการแก้ไขข้อขัดแย้ง ให้ทำดังนี้

  1. ตรวจสอบให้แน่ใจว่าคุณกำลังทำงานกับรหัสล่าสุด:

    repo sync .
    

    คำสั่ง repo sync จะดึงข้อมูลการอัปเดตจากเซิร์ฟเวอร์ต้นทาง จากนั้น พยายามเปลี่ยนฐาน HEAD เป็นรีโมตเครื่องใหม่ HEAD โดยอัตโนมัติ

  2. หากฐานะอัตโนมัติไม่สำเร็จ ให้ดำเนินการใหม่ด้วยตัวเองดังนี้

    repo rebase .
    
  3. แก้ไขความขัดแย้งในการรวม หากไม่มีวิธีแก้ไขที่ต้องการ ขัดแย้งกัน คุณสามารถ ใช้ git mergetool เพื่อแก้ไขความขัดแย้งระหว่างไฟล์ด้วยตัวเอง

  4. เมื่อคุณแก้ไขไฟล์ที่ขัดแย้งกันเรียบร้อยแล้ว ให้เรียกใช้คำสั่งนี้เพื่อ ใช้คอมมิตใหม่:

    git rebase --continue
    

ส่งการเปลี่ยนแปลง

หลังจากที่ส่งข้อมูลผ่านกระบวนการตรวจสอบและยืนยันตัวตนแล้ว ผู้ตรวจสอบของ Google จะต้องส่งรหัสให้คุณ อื่นๆ ผู้ใช้เรียกใช้ repo sync เพื่อดึงข้อมูลอัปเดตลงในเครื่องที่เกี่ยวข้องได้ ลูกค้า

หลังจากระบบผสานข้อมูลที่ส่งแล้ว คุณสามารถไปที่ การผสานรวม Android อย่างต่อเนื่อง เพื่อตรวจสอบว่าข้อมูลที่คุณส่งเข้ามารวมอยู่ในโครงสร้างเมื่อใด