Google 致力于为黑人社区推动种族平等。查看具体举措
Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

Yamaların Gönderilmesi

Bu sayfa, Gerrit ile değişiklikleri inceleme ve izleme dahil olmak üzere Android Açık Kaynak Projesi'ne (AOSP) bir yama göndermenin tam sürecini açıklamaktadır.

Önkoşullar

Katkıda bulunanlar için

Sunucuyla kimlik doğrulama

Gerrit'e yükleme yapmadan önce, sizi sunucuyla tanımlayan bir parola belirlemeniz gerekir. Şifre oluşturucu sayfasındaki talimatları izleyin. Bunu yalnızca bir kez yapmanız gerekir. Ek ayrıntılar için bkz . Kimlik doğrulamayı kullanma .

Repo şubesi başlatmak

Yapmayı düşündüğünüz her değişiklik için, ilgili Git deposunda yeni bir şube başlatın:

repo start NAME .

Aynı havuzda aynı anda birkaç bağımsız şubeyi başlatabilirsiniz. NAME dalı çalışma alanınız için yereldir ve Gerrit'e veya son kaynak ağacına dahil değildir.

Değişikliğini yapmak

Kaynak dosyaları değiştirdikten (ve doğruladıktan sonra, lütfen) değişiklikleri yerel deponuza uygulayın:

git add -A
git commit -s

Kaydetme mesajınızdaki değişikliğin ayrıntılı bir açıklamasını sağlayın. Bu açıklama genel AOSP havuzuna aktarılır, bu nedenle değişiklik listesi açıklamaları yazmak için şu yönergeleri izleyin:

  • Tek satırlık bir özetle (maksimum 50 karakter) başlayın ve ardından boş bir satır izleyin. Bu format, çeşitli ekranlar için Git ve Gerrit tarafından kullanılır.

  • Üçüncü satırdan başlayarak, maksimum 72 karakterle sabitlenmesi gereken daha uzun bir açıklama girin. Değişikliğin hangi sorunu çözdüğünü ve nasıl çözdüğünü açıklayın. İkinci kısım, arzu edilmesine rağmen yeni özellikleri uygularken biraz isteğe bağlıdır.

  • Katkıda bulunan başka bir kişi bu özellik üzerinde çalışırken önemli olabilecek varsayımların veya arka plan bilgilerinin kısa bir notunu ekleyin.

İşte örnek bir commit mesajı:

077 Александacf0

repo init sırasında sağlanan benzersiz bir değişiklik kimliği ve adınız ve e-postanız, kaydetme mesajınıza otomatik olarak eklenir.

Gerrit'e yükleniyor

Kişisel geçmişinize yaptığınız değişikliği gerçekleştirdikten sonra, bunu ile Gerrit'e yükleyin.

repo upload

Aynı depoda birden fazla şube başlattıysanız, hangilerinin yükleneceğini seçmeniz istenir.

Başarılı bir yüklemeden sonra, Repo size Gerrit'teki yeni bir sayfanın URL'sini sağlar. Yamanızı inceleme sunucusunda görüntülemek, yorum eklemek veya yamanıza özel gözden geçirenler talep etmek için bu bağlantıyı ziyaret edin.

İnceleme talep etme

Değişikliklerinizi Gerrit'e yükledikten sonra, yama uygun kod sahipleri tarafından incelenmeli ve onaylanmalıdır. Kod sahipleri OWNERS dosyalarında bulunur.

Uygun kod sahiplerini bulmak ve onları değişikliğiniz için gözden geçirenler olarak eklemek için:

  1. Yamanızdaki dosyalar için kod sahiplerinin bir listesini görmek için Gerrit Kullanıcı Arayüzünde ÖNERİLEN SAHİPLER bağlantısını seçin.

    sahiplere Gerrit'te bağlantı önerin
    Şekil 1. Gerrit'te sahip bağlantısı önerin
  2. Listeden kod sahiplerini yama için gözden geçirenler olarak ekleyin.

Düzeltmenizdeki dosyaların durumunu belirlemek için yamadaki dosyaların yanında bulunan aşağıdaki simgeleri kontrol edin.

  • (onay işareti simgesi): Kod sahibi tarafından onaylandı
  • (çarpı simgesi): Kod sahibi tarafından onaylanmadı
  • (saat simgesi): Kod sahibinin onayı bekleniyor
Şekil 2. Kod sahibi onay durumunu gösteren simgelere sahip dosya örneği

Yedek yama yükleme

Bir gözden geçirenin yamanıza baktığını ve küçük bir değişiklik talep ettiğini varsayalım. Kaydınızı Git içinde değiştirebilirsiniz, bu da Gerrit'te orijinal ile aynı değişiklik kimliğine sahip yeni bir yama ile sonuçlanır.

git add -A
git commit --amend

Düzeltilmiş yamayı yüklediğinizde, Gerrit'teki ve yerel Git geçmişinizdeki orijinalin yerini alır.

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

Kaynak ağacına sizinkiyle çelişen başka yamalar gönderilirse, yamanızı kaynak deponun yeni HEAD üzerine yeniden başlatmanız gerekir. Bunu yapmanın kolay yolu koşmaktır

repo sync

Bu komut ilk önce otomatik olarak rebase girişimlerini kaynak sunucudan güncellemeleri getirir HEAD yeni uzaktan üzerine HEAD .

Otomatik yeniden ödeme başarısız olursa, manuel yeniden ödeme gerçekleştirin.

repo rebase

git mergetool kullanmak, yeniden git mergetool çakışmasıyla başa git mergetool yardımcı olabilir. Çakışan dosyaları başarıyla birleştirdiğinizde, şunu çalıştırın:

git rebase --continue

Otomatik veya manuel yeniden taban tamamlandıktan sonra, yeniden oluşturulan yamanızı göndermek için repo upload çalıştırın.

Bir gönderim onaylandıktan sonra

Bir gönderim gözden geçirme ve doğrulama sürecinden geçtikten sonra, Gerrit değişikliği otomatik olarak genel havuzda birleştirir. Diğer kullanıcılar, güncellemeyi yerel istemcilerine çekmek için repo sync çalıştırabilir.

Yukarı akış projeleri

Android, Android Yazılım Yönetimi'nde açıklandığı gibi Linux çekirdeği ve WebKit gibi bir dizi başka açık kaynak projesini kullanır. external/ altındaki çoğu proje için değişiklikleri yukarı akışta yapın ve ardından Android bakımcılarını bu değişiklikleri içeren yeni yukarı akış sürümü hakkında bilgilendirin. Yeni bir yukarı akış sürümünü takip etmemizi sağlayan yamaları yüklemek de yararlı olabilir, ancak proje Android'de yaygın olarak kullanılıyorsa, aşağıda belirtilen daha büyük olanların çoğu gibi, her sürümde yükseltme yapma eğilimindeyiz serbest bırakmak.

İlginç bir özel durum Bionic'tir. Kodun çoğu BSD'den geliyor, bu nedenle değişiklik Bionic için yeni olan bir kod olmadıkça, yukarı akış düzeltmesini ve ardından uygun BSD'den tamamen yeni bir dosyanın çekilmesini tercih ederiz.

Android Çekirdeği

Tüm değişiklikleri yukarı akışta yapmayı tercih edin. Genel rehberlik için Android Kernel Katkı Yönergelerini izleyin.

ICU4C

ICU-TC Ana Sayfasındaki external/icu4c icu4c'de ICU4C projesinde tüm değişiklikleri yapın. Daha fazla bilgi için Yoğun Bakım Hatalarını ve Özellik Taleplerini Gönderme konusuna bakın.

LLVM / Clang / Derleyici-rt

LLVM Derleyici Altyapısı sayfasında LLVM ile ilgili projelerde ( external/clang , external/compiler-rt , external/llvm ) tüm değişiklikleri yapın.

mksh

mirbsd.org etki alanındaki miros-mksh bir e miros-mksh posta göndererek (buraya göndermek için abonelik gerekmez) veya Launchpad'de MirBSD Korn Shell projesinde tüm değişiklikleri external/mksh adresinde yapın.

OpenSSL

OpenSSL projesindeki tüm değişiklikleri OpenSSL sayfasındaki external/openssl .

V8

V8 projesindeki tüm değişiklikleri, V8 sorun sayfasındaki external/v8 adresinde gönderin. Ayrıntılar için V8'e Katkıda Bulunma bölümüne bakın.

WebKit

WebKit sayfasındaki external/webkit WebKit projesinde tüm değişiklikleri yapın. Bir WebKit hatası oluşturarak işlemi başlatın . Hatada, Platform için Android ve işletim sistemi alanlarını yalnızca hata Android'e özelse kullanın. Önerilen bir düzeltme eklendikten ve testler dahil edildikten sonra hataların gözden geçirenlerin dikkatini çekmesi çok daha olasıdır. Ayrıntılar için WebKit'e Katkı Kodu bölümüne bakın.

zlib

Zlib ana sayfasındaki external/zlib zlib projesinde tüm değişiklikleri yapın.