Bu sayfada Gerrit ile yapılan değişiklikleri inceleme ve izleme de dahil olmak üzere Android Açık Kaynak Projesi'ne (AOSP) bir yama gönderme işleminin tamamı açıklanmaktadır.
Ön şartlar
Repo ve Git hakkında ayrıntılı bilgi için bkz Gelişmekte .
Android Açık Kaynak topluluğu içinde oynayabileceğiniz farklı roller hakkında bilgi için bkz. Proje rolleri .
Açıklandığı gibi Android tarafından kullanılan memba projelerin bazı değişiklikler, bu projeye doğrudan yapılması gerektiğini Not Memba projelerine .
Katkıda bulunanlar için
Sunucu ile kimlik doğrulama
Gerrit'e yüklemeden önce, sizi sunucuyla tanımlayan bir parola oluşturmanız gerekir. Şifre üreticisi sayfasındaki talimatları uygulayın. Bunu sadece bir kez yapmanız gerekir. Ek ayrıntılar için Kimlik doğrulamayı kullanma konusuna bakın.
Repo şubesi başlatma
Yapmak istediğiniz her değişiklik için, ilgili Git deposunda yeni bir dal başlatın:
repo start NAME .
Aynı depoda aynı anda birkaç bağımsız şubeye başlayabilirsiniz.
NAME dalı çalışma alanınızda yereldir ve Gerrit'te veya son kaynak ağacında bulunmaz.
Değişikliklerinizi yapma
Kaynak dosyaları değiştirdikten (ve bunları doğruladıktan sonra lütfen) yerel deponuzda değişiklik yapın:
git add -A
git commit -s
İşleme mesajınızdaki değişikliğin ayrıntılı bir açıklamasını sağlayın. Bu açıklama genel AOSP deposuna gönderilir, bu nedenle değişiklik listesi açıklamaları yazmak için aşağıdaki yönergeleri izleyin:
Tek satırlık bir özetle (maksimum 50 karakter) ve ardından boş bir satırla başlayın. Bu biçim Git ve Gerrit tarafından çeşitli ekranlar için kullanılır.
Üçüncü satırdan başlayarak, maksimum 72 karakterle sarılması 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, istenirse de 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 bir örnek yürütme 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 otomatik olarak tamamlama iletinize eklenir.
Gerrit'e Yükleniyor
Kişisel geçmişinizde değişiklik yaptıktan sonra, Gerrit'e
repo upload
Aynı depoda birden çok şubeye başladı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. Düzeltme ekini inceleme sunucusunda görüntülemek, yorum eklemek veya düzeltme ekiniz için belirli yorumcular istemek için bu bağlantıyı ziyaret edin.
Yeni bir yama yükleme
Bir yorumcunun yamanıza baktığını ve küçük bir değişiklik istediğini varsayalım. Gerrit üzerinde orijinaliyle aynı değişiklik kimliğine sahip yeni bir yama ile sonuçlanan Git içinde taahhüdünüzü değiştirebilirsiniz.
git add -A
git commit --amend
Değiştirilen yamayı yüklediğinizde Gerrit ve yerel Git geçmişinizdeki orijinalin yerini alır.
Senkronizasyon çakışmalarını çözme
Sizinkiyle çakışan kaynak ağacına başka yamalar gönderilirse, düzeltme ekinizi kaynak deposunun yeni
HEAD üstüne yeniden oluşturmanı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 rebase başarısız olursa, manuel rebase gerçekleştirin.
repo rebase
git mergetool kullanmak, rebase ç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 rebase tamamlandıktan sonra, yeniden temelli düzeltme ekinizi göndermek için
repo upload çalıştırın.
Bir başvuru onaylandıktan sonra
Bir inceleme, inceleme ve doğrulama sürecinden geçtikten sonra Gerrit, değişikliği otomatik olarak kamu havuzunda birleştirir. Diğer kullanıcılar güncellemeyi yerel istemcilerine çekmek için
repo sync çalıştırabilir.
Memba projeleri
Android, Android Yazılım Yönetimi'nde açıklandığı gibi Linux çekirdeği ve WebKit gibi diğer açık kaynaklı projelerden yararlanır.
external/ altındaki birçok proje için değişiklikleri akış yukarı yapın ve ardından Android çalışanlarına bu değişiklikleri içeren yeni akış yukarı sürümü hakkında bilgi verin. Bizi yeni bir yukarı akış sürümünü takip etmek için harekete geçiren yamaları yüklemek de yararlı olabilir, ancak bunlar projenin Android'de yaygın olarak kullanıldığı ve aşağıda belirtilen daha büyük olanların çoğunda olduğu gibi yapılması zor değişiklikler olabilir. serbest bırakmak.
İlginç bir özel durum Bionic. Kodun çoğu BSD'den geliyor, bu nedenle değişiklik Bionic için yeni olan kodda değilse, yukarı doğru bir düzeltmeyi ve ardından uygun BSD'den tamamen yeni bir dosyanın çekilmesini tercih ederiz.
icu4c
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 e
miros-mksh posta göndererek (oraya göndermek için abonelik gerekmez) veya Launchpad'de MirBSD Korn Shell projesinde
external/mksh adresindeki tüm değişiklikleri yapın.
OpenSSL
OpenSSL sayfasında OpenSSL projesinde
external/openssl tüm değişiklikleri yapın.
V8
Webkit
WebKit sayfasındaki
external/webkit adresindeki WebKit projesinde tüm değişiklikleri yapın. WebKit hatası vererek işlemi başlatın . Hatada,
Android yalnızca hata Android'e özgü ise Platform ve İşletim Sistemi alanları için kullanın. Hataların, önerilen bir düzeltme eklendikten ve testler dahil edildikten sonra gözden geçirenlerin dikkatini çekmesi çok daha olasıdır. Ayrıntılar için WebKit'e Katkı Kodu'na bakın.
zlib
Zlib ana sayfasında zlib projesinde
external/zlib tüm değişiklikleri yapın.