Google is committed to advancing racial equity for Black communities. See how.
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

Sunucu ile kimlik doğrulama

Gerrit'e yükleme yapmadan önce, sizi sunucuyla tanımlayan bir parola oluşturmanız 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ı depoda 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 özellikler uygulanırken biraz isteğe bağlıdır.

  • Başka bir katılımcı bu özellik üzerinde çalışırken önemli olabilecek varsayımların veya arka plan bilgilerinin kısa bir notunu ekleyin.

İşte örnek bir commit mesajı:

Short description on first line

More detailed description of your patch,
which is likely to take up multiple lines.

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, yorumlar eklemek veya yamanıza özel gözden geçirenler talep etmek için bu bağlantıyı ziyaret edin.

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ştirebilir, 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.

Eşitleme ç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 temelleme 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, inceleme 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 istemcilere ç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ı yönde 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ğiliminde olduğumuz durumlarda bunları yapmak zor olabilir. 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ığı sürece, bir yukarı akış düzeltmesini ve ardından uygun BSD'den tamamen yeni bir dosyanın çekilmesini tercih ederiz.

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 İsteklerini 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.