Kod değişikliklerini gönder

Bu sayfada, inceleme isteğinde bulunma ve değişikliklerinizi izleme dahil olmak üzere, Android Açık Kaynak Projesi'ne (AOSP) bir kod değişikliği gönderme sürecinin tamamı açıklanmaktadır.

AOSP, Git kullanan projeler için web tabanlı bir kod inceleme sistemi olan Gerrit'i kullanır.

Katkıda bulunan lisans sözleşmelerini imzalayın

AOSP için herhangi bir kod değişikliğine katkıda bulunmadan önce Katkıda bulunan lisans sözleşmelerini ve başlıklarını okumanız ve aşağıdaki sözleşmelerden birini imzalamanız gerekir:

Dal başlatma

Yapmak istediğiniz her kod değişikliği için aşağıdaki adımları uygulayın:

  1. İlgili Git deposunda yeni bir dal başlatın. Dallar, orijinal dosyaların kopyası değildir. Belirli bir kayda işaret eden dallar, yerel dallar oluşturmayı ve bunlar arasında geçiş yapmayı hafif bir işlemdir. Dalları kullanarak birbirlerindeki değişiklikleri tespit edebilirsiniz. Bir dal başlatmak için şu komutu çalıştırın:

    repo start BRANCH_NAME
    

    Aynı depoda aynı anda birden fazla bağımsız dal başlatabilirsiniz. BRANCH_NAME dalı çalışma alanınızın yerelidir ve Gerrit'te veya son kaynak ağacında yer almaz. Dallar, bulunduğunuz projeye özeldir. Bu nedenle, aynı değişiklik kapsamında farklı projelerdeki dosyaları değiştirmeniz gerekiyorsa her projede dosyaları değiştireceğiniz bir dala ihtiyacınız olacaktır.

  2. (isteğe bağlı) Dalın oluşturulduğunu doğrulayın:

    repo status .
    

    Yeni oluşturduğunuz dalı görürsünüz. Örnek:

    project frameworks/native/                      branch mynewbranch
    

Değişikliğinizi yapma ve test etme

Değişikliğinizi yapmak ve test etmek için aşağıdaki adımları izleyin:

  1. En güncel kod tabanıyla çalıştığınızdan emin olmak için kod tabanının tamamını senkronize edin:

    repo sync
    

    Senkronizasyon sırasında herhangi bir çakışma olursa Senkronizasyon çakışmalarını çözme sayfasının 2-4. adımlarına bakın.

  2. Değiştirmek istediğiniz kodu bulun. Kodu bulmak için Android Code Search'ü kullanabilirsiniz. AOSP kaynak kodunu, gerçekten kullandığınızda hazırlanan şekliyle görüntülemek için Android Code Search'ü kullanabilirsiniz. Daha fazla bilgi için Code Search'ü kullanmaya başlama bölümüne bakın. Android kod aramada main dalındaki tüm kodu görüntülemek için https://cs.android.com/android/platform/superproject/main konumuna gidin.

  3. Kaynak dosyaları değiştirin veya ekleyin. Yapılan değişikliklerde:

  4. Android'i oluşturun.

  5. Derlemenizi test edin.

Aşama ve değişikliğinizi uygulayın

commit, Git'teki düzeltme denetiminin temel birimidir ve tüm proje için dizin yapısının ve dosya içeriğinin anlık görüntüsünden oluşur. Değişikliğinizi uygulamak için şu adımları izleyin:

  1. Varsayılan olarak, Git yaptığınız değişiklikleri kaydeder ancak izlemez. Git'e değişikliklerinizi izlemesini sağlamak için bu değişiklikleri bir kayda dahil edilecek şekilde işaretlemeniz veya hazırlamanız gerekir. Değişikliği gerçekleştirmek için şu komutu çalıştırın:

    git add -A
    

    Bu komut, dosyalarda yaptığınız değişiklikleri izler.

  2. Dosyaları hazırlık alanında alıp yerel veritabanınızda kaydedin veya burada depolayın:

    git commit -s
    

    Varsayılan olarak bir metin düzenleyici açılır ve sizden bir taahhüt mesajı girmeniz istenir.

  3. Aşağıdaki biçimde bir kayıt mesajı sağlayın:

    • 1. satır: Başlık. Değişikliğin tek satırlık bir özetini sağlayın (maksimum 50 karakter). Değiştirdiğiniz alanı, ardından bu kaydetmede yaptığınız değişikliğin açıklamasını ön eklerle belirtebilirsiniz. Örneğin, aşağıdaki örnek kullanıcı arayüzünde değişiklik yapar:

      ui: Removes deprecated widget
      
    • 2. Satır: Boş satır. Başlığın ardından boş bir satır geçin.

    • 3. Satır: Gövde. 72 karakteri aşmayan uzun bir açıklama girin. Değişimin hangi sorunları nasıl çözdüğünü açıklayın. Gövde metni isteğe bağlı olsa da, değişiklikten haberdar olması gereken başka kişiler için faydalı olacaktır. Başka bir katılımcı bu özellik üzerinde çalışırken önemli olabilecek varsayımları veya arka plan bilgilerini eklemeyi unutmayın.

    İyi kayıt açıklamalarıyla ilgili bir blogu okumak için (örneklerle birlikte) Git Kaydetme Mesajı Nasıl Yazılır? bölümüne bakın.

  4. Kaydı kaydedin.

repo init sırasında sağlanan benzersiz bir değişiklik kimliği ile adınız ve e-posta adresiniz, taahhüt mesajınıza otomatik olarak eklenir.

Değişikliği incelenmek üzere yükleyin

Kişisel Git geçmişinize yaptığınız değişikliği Gerrit'e yükleyin:

  1. Tüm projelerinizde tüm kaydetmelerinizi yüklemek için aşağıdaki komutu çalıştırın:

    repo upload
    

    Tüm projelerdeki tüm değişiklikler yüklemeye dahil edilir.

    Kanca komut dosyalarını çalıştırmanız istenir.

  2. a ve ardından Enter tuşuna basın.

    Yüklemeyi onaylamanız istenir:

    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üklemeyi onaylamak için y ve ardından Enter tuşuna basın.

remote: SUCCESS gibi bir mesaj alacaksınız.

İnceleme talebinde bulunun

Başarılı bir yüklemenin ardından Repo, Gerrit'teki değişikliklerinizin bağlantısını size sunar. Değişikliklerinizi inceleme sunucusunda görüntülemek, yorum eklemek veya değişikliğiniz için belirli incelemecilere istekte bulunmak üzere bağlantıyı tıklayın. Kodda yapılan tüm değişiklikler, uygun kod sahipleri tarafından incelenmelidir. İnceleme talep etmek için:

  1. Gerrit'te SUGGEST OWNERS'ı (SAHİPLERİ ÖNER) tıklayın:

    Gerrit'te sahiplere bağlantı öner

    Şekil 1. Gerrit'te sahiplere bağlantı öner.

    Yorumcu iletişim kutusu görünür. Bu iletişim kutusunda, değişikliğinizi inceleyebilecek kod sahiplerinin listesi yer alır.

  2. İncelemenize eklemek istediğiniz kod sahibini tıklayın.

    GÖNDER düğmesi etkin hale gelir.

  3. (İsteğe bağlı) Değişikliğinizi incelemesini istediğiniz diğer kişilerin e-posta adreslerini yazın.

  4. (İsteğe bağlı) Onay aldıktan sonra değişikliği otomatik olarak göndermek için Otomatik gönderme seçeneğinin yanındaki +1'i tıklayın. Bu düğmeyi tıklamazsanız bir Google çalışanının değişikliğinizi sizin adınıza göndermesi gerekir.

  5. Değişikliği incelemeye göndermek için GÖNDER'i tıklayın.

Kod sahipleri kod değişikliklerinizi inceler ve değişiklikleri çözümlemeniz veya onaylamanız için geri bildirim sağlar.

Değişimin durumunu belirleme

Değişiklik yaptığınız dosyaların durumunu belirlemek için değişiklikteki dosyaların yanında şu simgelerin olup olmadığını kontrol edin:

  • (onay işareti simgesi): Kod sahibi tarafından onaylandı
  • (çapraz simge): Kod sahibi tarafından onaylanmadı
  • (saat simgesi): Kod sahibinin onayı bekleniyor

Aşağıdaki şekilde, bir değişiklikteki dosyalara uygulanan bu durum simgeleri gösterilmektedir:

Kod sahibinin onayını gösteren simgeler içeren dosya örneği

Şekil 2. Kod sahibinin onayını gösteren simgeler içeren dosya örneği.

Geri bildirimi çözme ve değişim amaçlı değişikliği yükleme

Bir incelemeci, güncellemenizde değişiklik isterse Git'te kaydınızı değiştirebilirsiniz. Bu durumda, aynı değişiklikte yeni bir yama kümesi oluşturulur.

Geri bildirimleri çözüme kavuşturmak ve değişikliğinizi düzeltmek için:

  1. Değişikliğinizi yapma ve test etme bölümündeki 2-4 arası adımları uygulayın.

  2. Yaptığınız değişikliği değiştirmek için aşağıdaki komutları çalıştırın:

    git add -A
    git commit --amend
    
  3. Yaptığınız değişikliği yükleyin.

Değiştirilen değişikliği yüklediğinizde bu değişiklik hem Gerrit'te hem de yerel Git geçmişinizdeki orijinal değişikliğin yerini alır.

Senkronizasyon çakışmalarını giderme

Kaynak ağacına, sizinkiyle çakışan başka değişiklikler gönderilirse çakışmalarınızın olduğunu belirten bir mesaj alırsınız. Çakışmaları çözmek için:

  1. En güncel kodla çalıştığınızdan emin olun:

    repo sync .
    

    repo sync komutu, kaynak sunucudan güncellemeleri alır ve ardından HEAD öğenizi yeni uzak HEAD sistemine otomatik olarak yeniden temel etmeye çalışır.

  2. Otomatik yeniden temel oluşturma başarısız olursa manuel yeniden temel alma işlemi gerçekleştirin:

    repo rebase .
    
  3. Birleştirme çakışmalarını çözün. Birleştirme çakışmalarını çözmek için tercih ettiğiniz bir yönteminiz yoksa dosyalar arasındaki çakışmaları manuel olarak düzeltmek için git mergetool kullanabilirsiniz.

  4. Çakışan dosyaları başarıyla düzelttiğinizde yeni kaydetmeleri uygulamak için şu komutu çalıştırın:

    git rebase --continue
    

Değişikliği gönder

Gönderim inceleme ve doğrulama sürecinden geçtikten sonra bir Google inceleme uzmanı kodu sizin yerinize göndermelidir. Diğer kullanıcılar, güncellemeyi kendi yerel istemcilerine almak için repo sync komutunu çalıştırabilir.

Gönderiminiz birleştirildikten sonra gönderimlerinizin ağaca entegre edilip edilmediğini izlemek için Android Sürekli Entegrasyon kontrol panelini ziyaret edebilirsiniz.