Kirim perubahan kode

Halaman ini menjelaskan proses lengkap pengiriman perubahan kode ke Android Proyek Open Source (AOSP), termasuk cara meminta peninjauan dan pelacakan perubahan Anda.

AOSP mengandalkan Gerrit, yaitu sistem peninjauan kode berbasis web untuk project yang menggunakan Git.

Tanda tangani perjanjian lisensi kontributor

Sebelum berkontribusi pada perubahan kode apa pun untuk AOSP, Anda harus membaca Header dan perjanjian lisensi kontributor dan tanda tangani salah satu perjanjian berikut:

Memulai cabang

Untuk setiap perubahan kode yang ingin Anda buat, lakukan langkah-langkah berikut:

  1. Mulai cabang baru dalam repositori Git yang relevan. Cabang bukan salinan file asli; itu adalah pointer ke commit tertentu, yang membuat membuat cabang lokal dan mengalihkan di antara mereka dengan operasi ringan. Menurut menggunakan cabang, Anda dapat mengidentifikasi perubahan satu sama lain. Jalankan perintah ini untuk mulai membuat cabang:

    repo start BRANCH_NAME
    

    Anda dapat memulai beberapa cabang independen secara bersamaan repositori resource. Cabang BRANCH_NAME bersifat lokal untuk {i>workspace<i} dan tidak disertakan baik di Gerrit maupun di hierarki sumber akhir. Cabang juga spesifik untuk proyek tempat Anda berada, jadi jika Anda perlu mengubah file dalam project yang berbeda sebagai bagian dari perubahan yang sama, Anda memerlukan cabang di setiap proyek di mana Anda mengubah file.

  2. (Opsional) Pastikan bahwa cabang telah dibuat:

    repo status .
    

    Anda akan melihat cabang yang baru dibuat. Contoh:

    project frameworks/native/                      branch mynewbranch
    

Buat dan uji perubahan Anda

Ikuti langkah-langkah berikut untuk membuat dan menguji perubahan:

  1. Untuk memastikan Anda bekerja dengan codebase terbaru, lakukan sinkronisasi seluruh codebase:

    repo sync
    

    Jika terjadi konflik saat sinkronisasi, lihat langkah 2-4 dari Selesaikan konflik sinkronisasi.

  2. Temukan kode yang akan diubah. Untuk menemukan kode, pertimbangkan untuk menggunakan Penelusuran Kode Android. Anda dapat menggunakan Android Penelusuran Kode untuk melihat kode sumber AOSP seperti yang sudah ditata saat Anda benar-benar menggunakan anotasi. Untuk informasi selengkapnya, lihat Memulai Code Search. Untuk melihat semua kode di cabang main dalam penelusuran kode Android, buka https://cs.android.com/android/platform/superproject/main.

  3. Ubah atau tambahkan file sumber. Untuk setiap perubahan yang dilakukan:

  4. Membuat Android.

  5. Uji build Anda.

Stage dan commit perubahan Anda

commit adalah unit dasar kontrol revisi di Git dan terdiri dari {i>snapshot<i} dari struktur direktori dan konten file untuk seluruh proyek. Ikuti langkah-langkah berikut untuk melakukan commit untuk perubahan Anda:

  1. Secara {i>default<i}, Git terdaftar tetapi tidak melacak perubahan yang Anda buat. Kepada menginstruksikan Git untuk melacak perubahan, Anda harus menandai atau melakukan staging perubahan itu untuk untuk disertakan ke dalam commit. Jalankan perintah ini untuk melakukan stage perubahan:

    git add -A
    

    Perintah ini melacak perubahan yang telah Anda buat pada file apa pun.

  2. Mengambil file di area staging dan commit atau menyimpannya di {i>database<i}:

    git commit -s
    

    Secara default, editor teks akan terbuka dan Anda akan diminta untuk memberikan pesan commit.

  3. Berikan pesan commit dalam format berikut:

    • Baris 1: Judul. Berikan ringkasan satu baris tentang perubahan tersebut (50 karakter maksimum). Pertimbangkan untuk menggunakan awalan untuk mendeskripsikan area yang Anda ubah, yang diikuti oleh deskripsi perubahan yang Anda buat dalam commit ini, seperti contoh yang berisi perubahan antarmuka pengguna:

      ui: Removes deprecated widget
      
    • Baris 2: Baris kosong. Ikuti judul dengan baris kosong.

    • Baris 3: Isi. Berikan deskripsi panjang yang terdiri dari 72 karakter sebagai hard-wrapping maksimum. Jelaskan masalah apa yang dapat dipecahkan oleh perubahan tersebut dan bagaimana caranya. Meskipun tubuh opsional, hal ini membantu orang lain yang perlu merujuk kembali ke perubahan tersebut. Pastikan untuk menyertakan catatan singkat tentang asumsi atau informasi latar belakang apa pun yang mungkin penting ketika kontributor lain mengerjakan fitur ini.

    Untuk membaca blog tentang deskripsi commit yang baik (dengan contoh), lihat Cara Menulis Pesan Git Commit.

  4. Simpan commit.

ID perubahan unik serta nama dan email Anda, yang yang disediakan selama repo init, akan otomatis ditambahkan ke pesan commit Anda.

Upload perubahan untuk ditinjau

Setelah Anda meng-commit perubahan ke histori Git pribadi, upload ke Gerrit:

  1. Jalankan perintah berikut untuk mengupload semua commit Anda di semua project:

    repo upload
    

    Semua perubahan di semua project akan disertakan dalam upload.

    Anda akan diminta untuk menjalankan skrip hook.

  2. Tekan a, lalu Enter.

    Anda akan diminta untuk menyetujui upload:

    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. Tekan y lalu Enter untuk menyetujui upload.

Anda akan menerima pesan yang mirip dengan remote: SUCCESS.

Minta peninjauan

Setelah upload berhasil, Repo akan memberi Anda link ke perubahan Anda di Gerrit. Klik tautan untuk melihat perubahan Anda di server tinjauan, menambahkan komentar, atau meminta peninjau tertentu untuk perubahan Anda. Semua perubahan pada kode harus ditinjau oleh pemilik kode yang sesuai. Untuk meminta peninjauan:

  1. Di Gerrit, klik SARANKAN PEMILIK:

    Tautan Sarankan pemilik di Gerrit

    Gambar 1. Link Sarankan pemilik di Gerrit.

    Dialog peninjau akan muncul. Dialog ini berisi daftar pemilik kode yang dapat meninjau perubahan Anda.

  2. Klik pemilik kode untuk menambahkannya ke ulasan Anda.

    Tombol SEND diaktifkan.

  3. (Opsional) Ketik alamat email orang lain yang ingin Anda tinjau berubah.

  4. (Opsional) Klik +1 di samping Kirim otomatis untuk mengirim perubahan secara otomatis setelah Anda menerima persetujuan. Jika Anda tidak mengklik tombol ini, seorang karyawan Google harus mengirimkan perubahan untuk Anda.

  5. Klik KIRIM untuk mengirimkan perubahan agar ditinjau.

Pemilik kode meninjau perubahan kode Anda dan memberikan masukan untuk Anda menyelesaikan atau menyetujui perubahan.

Menentukan status perubahan

Untuk menentukan status file dalam perubahan Anda, periksa ikon berikut di samping file dalam perubahan:

  • (tanda centang ikon): Disetujui oleh pemilik kode
  • (ikon silang): Tidak disetujui oleh pemilik kode
  • (jam ikon): Menunggu persetujuan dari pemilik kode

Gambar berikut menampilkan ikon status yang diterapkan ke file dalam perubahan:

Contoh file dengan ikon yang menunjukkan persetujuan pemilik kode

Gambar 2. Contoh file dengan ikon yang menunjukkan persetujuan pemilik kode.

Menyelesaikan masukan dan mengupload perubahan pengganti

Jika peninjau meminta modifikasi pada pembaruan, Anda dapat mengubah commit Anda di dalam Git, yang menghasilkan patchset baru pada berubah.

Untuk menyelesaikan masukan dan mengubah perubahan:

  1. Ikuti langkah 2-4 di Membuat dan menguji perubahan.

  2. Jalankan perintah berikut untuk mengubah perubahan Anda:

    git add -A
    git commit --amend
    
  3. Upload perubahan.

Saat Anda mengupload perubahan yang telah diubah, perubahan tersebut akan menggantikan yang asli di Gerrit dan di histori Git lokal Anda.

Menyelesaikan konflik sinkronisasi

Jika perubahan lain yang dikirimkan ke hierarki sumber yang bertentangan dengan milik Anda, Anda akan menerima pesan bahwa Anda memiliki konflik. Untuk menyelesaikan konflik tersebut:

  1. Pastikan Anda menggunakan kode terbaru:

    repo sync .
    

    Perintah repo sync mengambil update dari server sumber, lalu mencoba melakukan rebase HEAD secara otomatis ke HEAD jarak jauh baru.

  2. Jika rebase otomatis tidak berhasil, lakukan rebase manual:

    repo rebase .
    
  3. Selesaikan konflik penggabungan. Jika Anda tidak memiliki metode pilihan untuk menyelesaikan konflik penggabungan, Anda bisa gunakan git mergetool untuk memperbaiki konflik antarfile secara manual.

  4. Setelah Anda berhasil memperbaiki file yang konflik, jalankan perintah ini untuk terapkan commit baru:

    git rebase --continue
    

Kirim perubahan

Setelah kiriman masuk melalui proses peninjauan dan verifikasi, peninjau Google harus mengirimkan kode tersebut untuk Anda. Yang lain pengguna dapat menjalankan repo sync untuk mengambil update ke lokal mereka dengan klien besar.

Setelah kiriman digabungkan, Anda dapat mengunjungi Continuous Integration Android dasbor untuk memantau kapan kiriman Anda diintegrasikan ke dalam pohon.