Kod değişikliklerini gönder

Bu sayfada, inceleme isteğinde bulunma ve değişikliklerinizi takip etme dahil olmak üzere Android Açık Kaynak Projesi'ne (AOSP) 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 bulunanların lisans sözleşmelerini imzalama

AOSP için kod değişiklikleri yapmadan önce Katkıda Bulunan Lisans Sözleşmeleri ve Üstbilgileri'ni 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. Dal, orijinal dosyaların kopyası değil, belirli bir kayda işaretçidir. Bu sayede yerel dallar oluşturmak ve bunlar arasında geçiş yapmak kolay bir işlem haline gelir. Dalları kullanarak değişiklikleri birbirinden ayırt edebilirsiniz. Şube 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 şubesi, çalışma alanınıza yereldir ve Gerrit'e veya nihai kaynak ağacına dahil edilmemiştir. Dallar, bulunduğunuz projeye de özeldir. Bu nedenle, aynı değişikliğin bir parçası olarak farklı projelerdeki dosyaları değiştirmeniz gerekirse dosya değiştirdiğiniz her projede bir dalınız olmalıdır.

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

    repo status .

    Yeni oluşturduğunuz dalı göreceksiniz. Örnek:

    project frameworks/native/                      branch mynewbranch

Değişiklik yapın ve test edin

Değişiklik yapmak ve test etmek için aşağıdaki adımları uygulayın:

  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. Kod bulmak için Android Code Search'i 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'i kullanmaya başlama başlıklı makaleyi inceleyin. Android kod aramasında main dalındaki tüm kodu görüntülemek için https://cs.android.com/android/platform/superproject/main bölümüne gidin.

  3. Kaynak dosyaları değiştirme veya ekleme Yapılan değişiklikler için:

  4. Android'i oluşturun.

  5. Derlemenizi test edin.

Değişikliklerinizi aşamalandırıp kaydetme

Commit, Git'teki düzeltme denetiminin temel birimidir ve projenin tamamının dizin yapısı ve dosya içeriklerinin anlık görüntüsünden oluşur. Değişikliklerinizi kaydetmek için aşağıdaki adımları uygulayın:

  1. Git, varsayılan olarak yaptığınız değişiklikleri kaydeder ancak izlemez. Git'e değişikliklerinizi izlemesini bildirmek için bu değişiklikleri bir kayda dahil edilmek üzere işaretlemeniz veya aşamaya almanız gerekir. Değişikliği aşamalı olarak uygulamak 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ından alıp yerel veritabanınızda kaydetme veya depolama:

    git commit -s

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

  3. Aşağıdaki biçimde bir gönderme mesajı sağlayın:

    • 1. satır: Başlık. Değişikliğin tek satırlık bir özetini girin (en fazla 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, kullanıcı arayüzü değişikliğini içeren aşağıdaki örnekteki gibi:

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

    • 3. satır: Gövde. 72 karakteri aşmayan uzun bir açıklama girin. Değişikliğin hangi sorunu 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 katkıda bulunan bu özellik üzerinde çalışırken önemli olabilecek varsayımlara veya arka plan bilgilerine kısa bir not ekleyin.

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

  4. Taahhüt işlemini kaydedin.

Benzersiz bir değişiklik kimliği ve repo init sırasında sağladığınız adınız ile e-posta adresiniz, gönderme mesajınıza otomatik olarak eklenir.

Değişikliği inceleme için yükleme

Değişikliklerinizi kişisel Git geçmişinize kaydettikten sonra Gerrit'e yükleyin:

  1. Tüm projelerinizin tüm gönderimlerini 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şlarına 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şlarına basın.

remote: SUCCESS'e benzer bir mesaj alırsınız.

İnceleme isteğinde bulunun

Yükleme işlemi başarıyla tamamlandıktan sonra Repo, Gerrit'teki değişikliklerinizin bağlantısını sağlar. Değişikliklerinizi inceleme sunucusunda görüntülemek, yorum eklemek veya değişikliğiniz için belirli incelemeciler istemek için bağlantıyı tıklayın. Koddaki tüm değişiklikler, ilgili kod sahipleri tarafından incelenmelidir. İnceleme isteğinde bulunmak için:

  1. Gerrit'te SAHİP ÖNERİ'yi tıklayın:

    Gerrit'te sahiplere bağlantı öner

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

    İnceleme uzmanı iletişim kutusu görünür. Bu iletişim kutusu, değişikliğinizi inceleyebilecek kod sahiplerinin listesini içerir.

  2. Bir kod sahibini tıklayarak yorumunuza ekleyin.

    GÖNDER düğmesi etkinleştirilir.

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

  4. (İsteğe bağlı) Onay aldıktan sonra değişikliği otomatik olarak göndermek için Otomatik gönder'in yanındaki +1 simgesini 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 çözmeniz veya onaylamanız için geri bildirim sağlar.

Değişikliğin durumunu belirleme

Değişiklikteki dosyaların durumunu belirlemek için değişiklikteki dosyaların yanındaki aşağıdaki simgeleri kontrol edin:

  • (onay işareti simgesi): Kod sahibi tarafından onaylandı
  • (haç simgesi): 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 simgelerin bulunduğu dosyalar örneği

Şekil 2. Kod sahibinin onayını gösteren simgelerin bulunduğu dosyalar örneği.

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

Bir inceleme uzmanı, güncellemenizde değişiklik yapılmasını isterse Git'te gönderiminizi düzeltebilirsiniz. Bu işlem, aynı değişiklik için yeni bir yama grubu oluşturur.

Geri bildirimi çözmek ve değişikliğinizi düzeltmek için:

  1. Değişikliğinizi yapın ve test edin başlıklı makaledeki 2-4. adımları uygulayın.

  2. Değişikliklerinizi düzeltmek 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.

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

Senkronizasyon çakışmalarını çözme

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 temellendirme başarısız olursa manuel olarak yeniden temellendirme yapın:

    repo rebase .
  3. Birleştirme çakışmalarını çözün. Birleştirme çakışmalarını çözmek için tercih ettiğiniz bir yöntem yoksa dosyalar arasındaki çakışmaları manuel olarak düzeltmek için git mergetool'i 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 için göndermelidir. Diğer kullanıcılar, güncellemeyi kendi yerel istemcilerine çekmek için repo sync komutunu çalıştırabilir.

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