Bu sayfada, Android Açık Kaynak Projesi'ne (AOSP) bir yama gönderme işleminin tamamı açıklanmakta olup, Gerrit ile nasıl inceleme talep edeceğiniz ve değişikliklerinizi nasıl izleyeceğiniz de buna dahildir.
Önkoşullar
Başlamak için aşağıdakileri yaptığınızdan emin olun:
- Yapı ortamınızı başlattı
- kaynak indirildi
- Parola oluşturucuyu kullanarak bir parola oluşturdu .
Kaynaklar
- Repo ve Git ile ilgili ayrıntılar için Kaynak Kontrol Araçları sayfasına bakın.
- Android Açık Kaynak topluluğu içindeki farklı roller hakkında bilgi için Proje rolleri sayfasına bakın.
- Android platformuna kod ekleme hakkında lisans bilgileri için Lisanslar sayfasına bakın.
katkıda bulunanlar için
Sunucuyla kimlik doğrulama
Bir IP adresini diğer kullanıcılarla paylaşırsanız, normal kullanım kalıpları için bile kotalar tetiklenebilir. Bu, örneğin birçok kullanıcı kısa bir süre içinde aynı IP adresinden yeni istemcileri senkronize ettiğinde olabilir. Kimliği doğrulanmış erişim, IP adresinden bağımsız olarak her kullanıcı için ayrı bir kota kullanır. Kimliği doğrulanmış erişimi etkinleştirme hakkında bilgi edinmek için Kimlik doğrulamayı kullanma bölümüne bakın.
Repo şubesi başlatma
Yapmayı düşündüğünüz her değişiklik için ilgili Git deposunda yeni bir şube başlatın:
repo start NAME .
You can start several independent branches at the same time in the same
repository. The branch NAME
is local to your
workspace and isn't included either on Gerrit or in the final source tree.
Making your change
Modify the source files, and validate your changes.
Commit the changes to your local repository with these commands:
git add -A
git commit -s
Açıklamaları değiştir
- Satır 1: Başlık
Tek satırlık bir özet sağlayın ( maksimum 50 karakter)
Bu biçim Git ve Gerrit tarafından çeşitli görüntüler için kullanılır. Taahhüt mesajınızın en önemli, en yoğun kısmıdır. Değiştirdiğiniz alanı açıklamak için önekleri kullanmayı düşünün, ardından bu işlemde yaptığınız değişikliğin bir açıklamasını kullanın, örneğin öneki
ui
olan bu değişiklik gibi:ui: Removes deprecated widget
- Satır 2: Boş
Bu satırı her zaman boş bırakın.
- Satır 3: Gövde
Bu satırdan başlayarak daha uzun bir açıklama yazın.
Bu, maksimum 72 karakterde sabit olarak sarılmalıdır. Değişikliğin hangi sorunu ve nasıl çözdüğünü açıklayın. Bu, yeni özellikleri uygularken isteğe bağlı olsa da, daha sonra özellikle hata ayıklama için bu değişikliğe başvurmaları diğerlerine çok yardımcı olur.
Başka bir katılımcı bu özellik üzerinde çalışırken önemli olabilecek herhangi bir varsayım veya arka plan bilgisi hakkında kısa bir not ekleyin.
repo init
sırasında sağlanan benzersiz bir değişiklik kimliği ve adınız ve e-postanız, taahhüt mesajınıza otomatik olarak eklenir.
İşte bir örnek taahhüt mesajı:
Line 1, Headline - a short description Line 3, Body - Add the detailed description of your patch here. Use as many lines as needed. You can write an overall description, then list specifics. I6e3c64e7a:Added a new widget. I60c539a8f:Fixed the spinning image.To read a blog about good commit descriptions (with examples), see How to Write a Git Commit Message by Chris Beams.
Uploading to Gerrit
After you commit your change to your personal history, upload it to Gerrit with this command:
repo upload
If you started multiple branches in the same repository, you're prompted to select which ones to upload.
After a successful upload, Repo provides you with the URL of a new page on Gerrit. Click the link that Repo gives you to view your patch on the review server, add comments, or request specific reviewers for your patch.
Requesting a review
After you've uploaded your changes to Gerrit, the patch must be reviewed
and approved by the appropriate code owners. Locate code owners in
OWNERS
files.
To find the appropriate code owners and add them as reviewers for your change, follow these steps.
-
Select the SUGGEST OWNERS link in the Gerrit UI to see a list of code owners for the files in your patch.
Figure 1. Suggest owners link in Gerrit Add code owners from the list as reviewers for your patch.
To determine the status of the files in your patch, check for the following icons next to the files in the patch.
- (checkmark icon): Approved by code owner
- (cross icon): Not approved by code owner
- (clock icon): Pending approval by code owner

Uploading a replacement patch
Suppose a reviewer looked at your patch and requested a small modification. You can amend your commit within Git, which results in a new patch on Gerrit that has the same change ID as the original.
git add -A
git commit --amend
Değiştirilen yamayı yüklediğinizde, hem Gerrit'te hem de yerel Git geçmişinizde orijinalin yerini alır.
Senkronizasyon çakışmalarını çözme
Kaynak ağaca sizinkiyle çakışan başka yamalar gönderilirse, yamanızı kaynak deponun yeni HEAD
üstüne yeniden yerleştirin. Bunu yapmak için şu komutu çalıştırın:
repo sync
repo sync
komutu, güncellemeleri kaynak sunucudan alır, ardından HEAD
otomatik olarak yeni uzak HEAD
yeniden temellendirmeye çalışır.
Otomatik yeniden temellendirme başarısız olursa, manuel yeniden temellendirme gerçekleştirin.
repo rebase
Yeniden temellendirme çatışmasıyla başa çıkmak için başka bir araç da git mergetool
aracıdır. Çakışan dosyaları başarıyla birleştirdiğinizde şu komutu çalıştırın:
git rebase --continue
Otomatik veya manuel yeniden temel oluşturma işlemi tamamlandıktan sonra, yeniden temellendirilmiş yamanızı göndermek için repo upload
çalıştırın.
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 depoda birleştirir. Diğer kullanıcılar, güncellemeyi kendi yerel istemcilerine çekmek için repo sync
çalıştırabilir.
Yukarı akış projeleri için
Android , Android Yazılım Yönetimi'nde açıklandığı gibi, Linux çekirdeği ve WebKit gibi bir dizi başka açık kaynak projesinden yararlanır. external/
altında bulunan çoğu proje için değişiklikleri yukarı yönde yapın, ardından Android bakımcılarını değişikliklerinizi içeren yeni yukarı akış sürümü hakkında bilgilendirin.
Yeni bir yukarı akış sürümünün izlenmesine neden olan yamaları da yükleyebilirsiniz. Aşağıda belirtilen ve genellikle her sürümde yükseltilen daha büyük projelerin çoğu gibi, proje Android'de yaygın olarak kullanılıyorsa, bunların yapılması zor değişiklikler olabileceğini unutmayın.
İlginç bir özel durum Bionic'tir. Kodun çoğu BSD'den alınmıştır, bu nedenle, değişiklik Bionic'te yeni olan kodda değilse, lütfen bir yukarı akış düzeltmesi yapın, ardından uygun BSD'den tamamen yeni bir dosya çekin.
Android Çekirdeği
Tüm değişiklikleri yukarı yönde yapın. Genel rehberlik için Android Çekirdeği Katkı Yönergelerini ve GKI için Çekirdek Kodu Geliştirme sayfasını izleyin.
yoğun bakım
ICU projesindeki tüm değişiklikleri ICU-TC Ana Sayfası'ndaki external/icu
( icu4c/
ve icu4j/
klasörleri) konumunda yapın. Daha fazla bilgi için ICU Hatalarını ve Özellik İsteklerini Gönderme bölümüne bakın. Tüm yukarı akış Jira isteklerine "android" etiketini ekleyin.
CLDR
Yoğun bakım ünitesindeki çoğu dilbilimsel veri, Unicode CLDR projesinden gelir. CLDR'ye Katkıda Bulunma'ya göre tüm istekleri yukarı akışa gönderin ve "android" etiketini ekleyin.
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 Korn Shell projesindeki tüm değişiklikleri, mirbsd.org
alanındaki miros-mksh
bir e-posta göndererek (buraya göndermek için abonelik gerekmez) veya Launchpad'de external/mksh
adresinden yapın.
AçıkSSL
OpenSSL projesindeki tüm değişiklikleri OpenSSL sayfasında external/openssl
yapın.
V8
V8 projesindeki tüm değişiklikleri V8 sorun sayfasında external/v8
gönderin. Ayrıntılar için bkz . V8'e Katkıda Bulunma.
Web Kiti
WebKit projesindeki tüm değişiklikleri WebKit sayfasında external/webkit
yapın. Bir WebKit hatası bildirerek süreci başlatın. Hatada, Android
for the Platform ve OS alanlarını yalnızca hata Android'e özgüyse kullanın. Önerilen bir düzeltme eklendikten ve testler dahil edildikten sonra hataların gözden geçirenlerin dikkatini çekme olasılığı çok daha yüksektir. Ayrıntılar için WebKit'e Katkıda Bulunan Kod'a bakın.
zlib
zlib projesindeki tüm değişiklikleri zlib ana sayfasında external/zlib
konumunda yapın.