Gerrit/Tutorial/tr

Bu, Git ve Gerrit'in Wikimedia gelişimi için nasıl kullanılacağını açıklayan bir öğreticidir.


 * Zaman kazanmak ve teknoloji meraklısıysanız, bunun yerine çok kısa nasıl yapılır kılavuzunu kullanın:
 * Uzman kullanıcılar için ek belgelere sahiptir.
 * Yalnızca Gerrit ile oynamak ve "gerçek" bir Wikimedia yazılım projesi için bir yama yazmak istemiyorsanız, bunun yerine Gerrit test örneğimizi kullanın.

Bu öğreticide, kutudaki dolar işareti ile başlamak için aşağıdaki gibi komutlar: tmpl|0=. önekini girmeyin. Komut ayrıca kendinizi değiştirmeniz gereken bir değişken de içeriyorsa, değişken kırmızı renkte gösterilir: tmpl|0=.



Git nedir?
Git ücretsiz ve açık bir kaynaktır dağıtılmış sürüm kontrol sistemi. “Dağıtılmış”, deponun merkezi bir kopyası olmadığı anlamına gelir. Git ile, depoyu klonladıktan sonra, tüm dallar ve etiketli sürümler elinizin altında olacak şekilde kaynak kodunun tam olarak çalışan bir kopyasına sahip olursunuz.



Wikimedia geliştirici hesabı oluşturun
Henüz bir Wikimedia geliştirici hesabınız yoksa, wikitech.wikimedia.org sayfasına gidin ve bir hesap oluşturun. Aynı kullanıcı adı ve parola aşağıdaki Gerrit'te oturum açmak için kullanılacaktır.



Git'i kurun
Bu talimatlar Git'in komut satırı (terminal penceresi) aracı olarak nasıl kurulacağını açıklar. Komut satırı yerine grafik kullanıcı arabirimi (GUI) tercih ederseniz, Git projesi tarafından tutulan istemcilerin listesini denetleyin. Alternatif kurulum talimatları için resmi belgelere bakın.

Kurulum
Follow Installing Git to learn how to install git on your operating system.



Git'i yapılandırın
Git'i yüklediğinize göre artık kişisel bilgilerinizi yapılandırma zamanı. Bunu sadece bir kez yapmanız gerekir. Ayrıca bu komutları tekrar çalıştırarak kişisel bilgilerinizi istediğiniz zaman değiştirebilirsiniz.

Git, kullanıcının adını ve e-postasını kontrol ederek her işlemi yapanları izler. Ayrıca, bu bilgi taahhütlerinizi Gerrit hesabınızla ilişkilendirmek için kullanılır.

Kullanıcı adınızı ve e-posta adresinizi ayarlamak için aşağıdaki iki komutu girin. ile kendi Gerrit kullanıcı adınızla değiştirin ve ile kendi e-posta adresinizle değiştirin:



Gerrit'te SSH Anahtarlarını Ayarla
Bilgisayarınız ve Gerrit arasında güvenli bir bağlantı kurmak için bir SSH anahtarı kullanıyoruz. Wikimedia Güvenlik Ekibi, Ağustos 2021'den itibaren, SSH Anahtarları oluşturan kullanıcıların optimum güvenlik ve performans için  türünü kullanmasını önerir.



Yeni bir SSH anahtarı oluşturun
Follow SSH keys.



Gerrit hesabınıza SSH Genel anahtarı ekleyin

 * Gerrit için web arayüzünde oturum açın. Gerrit'inizin kullanıcı adı ve parolası Wikimedia Geliştirici hesabınız ile aynıdır.
 * Sağ üst köşedeki kullanıcı adınızı tıklayın ve ardından "Ayarlar" seçin.
 * Soldaki menüde "SSH Anahtarları" tıklayın.
 * SSH Genel Anahtarınızı ilgili alana yapıştırın ve "ADD NEW SSH KEY" düğmesine tıklayın.

Test Gerrit SSH connection
Her şeyin beklendiği gibi çalışıp çalışmadığını kontrol etmek için  ile Gerrit sunucusuna bağlanın. ile Gerrit ayarlarınızda gösterilen kullanıcı adınızla değiştirin:



Örnek bir Gerrit SSH bağlantısı başarı mesajı şuna benzer:
 * Dikkatli olun ve "ed25519 anahtar parmak izi" için SSH parmak izi ile aynı olduğunu karşılaştırın. Aynıysa, "Bağlanmaya devam etmek istediğinizden emin misiniz?" sorusuna "Evet" yanıtını verin. Ardından anahtarınızın parolasını girin.
 * "Welcome to Gerrit Code Review" mesajı almalısınız. Son satır "Connection to gerrit.wikimedia.org closed." ifadesini göstermelidir.
 * Sorunla karşılaşırsanız, kullanın ( ile kullanıcı adınızla değiştirin). , sorunların bulunmasına yardımcı olmak için ayrıntılı çıkış sağlayacaktır. Ardından Gerrit Sorun Giderme'yi okuyun.



Sandbox
"Sandbox" adlı deposu indirerek ("cloning" denir) pratik yapalım.

Git Bash komut satırı üzerinde aşağıdakileri çalıştırın:

('i Gerrit kullanıcı adınızla değiştirin. Ve URL'nin  ile değil,   ile başladığından emin olun).

Bu işlem, "sandbox" uzantı deposunun tüm geçmişini ve kod tabanını makinenize kopyalar. Uzantının ana dalının (genellikle "git master" olarak da bilinir) bir çalışma dizinine sahip olursunuz. Yeni dizini girin ( komutu ile). Artık koda bakıp düzenlemeye başlayabilirsiniz.

Existing repositories
Deneme tahtası deposunu klonlamak size bir geliştirme ortamı kurulumu veya çalışan bir MediaWiki kurulumu sağlamaz. (Çalıştırmak için MediaWiki Core ve teslim aldığınız kodu web sunucunuz tarafından beklenen bir konuma yerleştirmeniz gerekir.) Git'ten Git'ten indirin MediaWiki Core, uzantılar, görünümler veya gerrit.wikimedia.org adresinde barındırılan diğer herhangi bir proje deposunu nasıl indirileceğine bakın.

Vagrant
If you have downloaded MediaWiki or extensions using Vagrant, make sure you have configured Git to push code using SSH instead of HTTPS.



Gerrit ile çalışmaya hazırlanın
Gerrit, kaydetme mesajınızın bir "değişiklik kimliği" içermesini gerektirir I (büyük i) ile başlayan  ile benziyorlar. Gerrit'te mevcut bir yamayı iyileştirmek için bir işlemi değiştirdiğiniz her seferinde, bu değişiklik kimliği aynı kalır, bu nedenle Gerrit bunu aynı kod değişikliğini ele alan yeni bir "yama kümesi" olarak anlar.

Kayıtlarınıza bir Change-ID satırı ekleyen git-review adında bir git taahhüdünüz var. git-review kullanılması önerilir. Git klonunuzu yapılandırmayı, bir değişiklik göndermeyi veya mevcut olanı getirmeyi kolaylaştırır.



git-review yükleme
Wikimedia Gerrit'in git-review 1.27 veya daha yeni bir sürümünü gerektirdiğini unutmayın.

Daha fazla bilgi için lütfen Gerrit/git-review#Kurulum bölümüne bakın.

Font Awesome 5 brands linux.svg Linux

 * paketini kurmak için Linux dağıtımınızın grafiksel yazılım paketi yönetim aracını kullanın.
 * git-review dağıtımınız tarafından paketlenmemişse, git-review'i pip Python paket yükleyicisini kullanarak yüklenmesi gibi diğer seçenekler için git-review kontrol edin.
 * FreeBSD kullanıyorsanız, git-review'i bağlantı noktalarından yükleyin.

Font Awesome 5 brands windows.svg Windows

 * Lütfen git-review Windows sayfasına bakın.

Apple logo black.svg macOS

 * OS X 10.11 El Capitan ve sonrası için, Yöntem 1'i izleyin.
 * 10.11'den önceki sürümlerde, Yöntem 2'yi izleyerek pip Python paket yükleyicisini kullanın.



git-review yapılandırma
Git'in varsayılan uzak ana bilgisayar adı "origin". Bu ad Wikimedia projeleri tarafından da kullanılır. Bu konağı kullanabilmek için git-review söylememiz gerekiyor. yerine Gerrit kullanıcı adınızı yazın:



git-review ayarlama
Bir depoyu indirdikten ("cloning") sonra, git-review için ayarlamanız gerekir. Bu, bir taahhüdü ilk kez göndermeye çalıştığınızda otomatik olarak gerçekleşir, ancak bunu klonlamadan hemen sonra yapmak genellikle daha iyidir. Klonladığınız projenin dizininde olduğunuzdan emin olun (aksi takdirde "hata: Git deposu değil" hatası alırsınız). Ardından şu komutu çalıştırın:

Çıkışının sonuna doğru, şöyle bir şey görmelisiniz:

Bu, kullandığınız kabuk kullanıcı adından farklıysa git kullanıcı adınızı isteyebilir.



Bir yama gönderin
İlgilendiğiniz kod deposunu klonladığınızdan emin olun (buraya bakın).

Kod deposunun dizininde olduğunuzdan emin olun ( komutu size tam olarak nerede olduğunuzu söyler).



Ana geliştirme dalını güncelleyin
Ana geliştirme dalının (depoyu ilk kez klonladığınızda oluşturulan dal) güncel olduğundan emin olun:

Ancak, bazı depoların ana geliştirme dalları için farklı bir ad kullandığını unutmayın (örneğin,  yerine   veya   deposunda   dalı yerine   vardır).



Bir dal oluştur
İlk olarak, yeni değişikliğiniz için yerel bir dal oluşturun. Aşağıdaki kısa ama makul ölçüde açıklayıcı bir adla değiştirin (ör. değişiklikleriniz için karşılık gelen  görev varsa ,   veya  ) Diğer kişiler de dalınızı tanımlamak için bu adı kullanacaktır.

Bu, yeni bir şube oluşturacaktır (en son 'master' üzerinden ) olarak adlandırılır ve sizin için kontrol edin. Yukarıdaki örnekte, bu yeni dalına  adını verdik.



Değişikliklerinizi yapın
Yerel kodunuzda değişiklik yapın. Tercih ettiğiniz metin düzenleyiciyi kullanın ve bir dosyayı değiştirin. Aşağıdaki örnekte,  dosyasını düzenliyoruz ve bir kelime ekliyoruz.

Ardından metin düzenleyicinizi kapatın ve son işlemden bu yana, dosya(lar) ve dizin içinde yaptığınız değişiklikleri kontrol edin:

, değişikliklerinizi birleştirilmiş fark biçimi olarak görüntüler: Kaldırılan satırların bir eksi öneki ve eklenen satırların bir artı  öneki vardır. Bu değişiklikler, bir sonraki kaydetme için henüz "aşamalı" değildir ( üzerinden).

<span id="Stage_your_changes_for_a_commit">

Bir taahhüt için değişikliklerinizi yapın
Yaptığınız değişikliklerden hangisinin taahhüdünüzün bir parçası olacağına karar vermek için çalıştırın. Dizinde değiştirdiğiniz tüm dosyaların bir listesini gösterecektir. Bu noktada, çıkış son satır olarak "kaydetmeye hiçbir değişiklik eklenmedi" ifadesini gösterecektir.

Değiştirdiğiniz dosya(ları)nızı bir sonraki kaydetmenizin parçası haline getirmek için  kullanın. Yukarıdaki örnekte  dosyasını değiştirdik, dolayısıyla komut şöyle olacaktır:

ile geçmediğiniz, değiştirdiğiniz tüm dosyalar, bir sonraki adımda  çalıştırıldığında yok sayılacaktır.

<span id="Commit_your_staged_changes">

Aşamalı değişikliklerinizi yapın
yoluyla eklenen değişikliklerin listesinden memnun olduğunuzda, bu değişiklikleri kullanarak yerel deponuzdaki bir taahhüde dönüştürebilirsiniz.

Daha sonra metin düzenleyicinizde işleminiz için açıklayıcı bir özet eklemeniz istenecektir. Taahhüt mesajı kurallarına uymalısınız. Kod deposundaki değişikliklerin geçmişine bakarken başkalarının göreceği şey budur.

İşleme mesajını kaydedin ve metin düzenleyicinizi kapatın. Bir özet (tamamlama kimliği, konu satırınız, değiştirilen dosyalar ve satırlar) görüntülenir.

<span id="Prepare_to_push_your_commit_to_Gerrit">

Taahhüdünüzü Gerrit'e aktarmaya hazırlanın
Değişiklik kümenizi, çalışırken ana dalda olabilecek tüm değişikliklerle senkronize edin ("yeniden basma"). Dalınızdan şunları çalıştırın:

Artık kodunuzu incelenmek üzere Gerrit'e göndermeye hazırsınız. Birkaç ilişkili kaydetme yaptıysanız, bunları incelenmek üzere tek bir işlemde birleştirmeyi düşünün.

<span id="Push_your_commit_to_Gerrit">

Taahhüdünüzü Gerrit'e aktarın
Yukarıdaki #Gerrit ile çalışmaya hazırlanın bölümünü takip edip  yüklediyseniz ve   çalıştırdıysanız, değişiklikleri Gerrit'e aktarma komutu:

seçeneği, git-review ile değişikliği Gerrit'e göndermeden önce yeniden gönderme yapmamasını söyler.

Başarılı olduktan sonra, bir onay ve Gerrit'teki değişiklik setine bir bağlantı alacaksınız. Yukarıdaki örnekte, bu bağlantı: https://gerrit.wikimedia.org/r/#/c/sandbox/+/563720

Tebrikler! Yamanız Gerrit'te ve umarım yakında incelenir!

If git review -R fails
If you are asked to enter your git credentials (a username and password) after running and it responds that they are invalid, it's likely that the repo was cloned using https and not ssh. You should not recieve any prompt to enter credentials if you are using ssh. To switch the repo to ssh, run and replace  with the one found in gitiles that begins with. Make sure to add your Gerrit username before. For example, the repository URL for the Echo repository would be.

If you get a, re-follow the instructions at  to make sure your ssh agent is running and your identity is added. If you close your Git Bash shell, you will be signed out and need to re-follow these instructions each time.

<span id="View_the_Change_/_Next_Steps">

Değişikliği / Sonraki Adımları Görüntüleyin
Gerrit değişiklik setinizin bağlantısını bir web tarayıcısında açın.

"Dosyalar" altında, listedeki herhangi bir dosyanın en sağındaki aşağı oku tıkladıktan sonra, dosya başına yaptığınız değişikliğin farkını görebilirsiniz: Eski satırlar kırmızı renkte ve yeni satırlarınız yeşil renkte gösterilir.

Taahhütünüz Phabricator cinsinden bir bileti ele alırsa, Taahhüt mesajı yönergelerini izlediyseniz, Phabricator görevine otomatik olarak bir yorum eklenir. Bunu yapmadıysanız, tamamlama mesajınızı düzeltebilir (güncellenmiş bir yama seti oluşturarak) veya bu Phabricator biletine Gerrit'teki değişiklik kümenize bir bağlantı içeren bir yorumu manüel olarak ekleyebilirsiniz.

<span id="Other_common_situations">

Diğer yaygın durumlar
Ayrıca durumunuz burada ele alınmıyorsa Gerrit Gelişmiş kullanıma bakın.

<span id="Squash_several_commits_into_one_single_commit_via_rebase">

Rebase ile birkaç taahhüdü tek bir taahhütte toplayın
İncelemeye gönderilmeyi istemeden önce yerel deponuza ilgili birkaç taahhütte bulunduysanız, bu taahhütleri tek bir taahhütte ezmeniz (birleştirmeniz) gerekir.

veya  seçeneği, kaydetme geçmişinizi değiştirmenize (yeniden yazmanıza) olanak tanır. Her taahhüt için, taahhüt mesajını değiştirebilir, dosya ekleyebilir veya kaldırabilir veya başka değişiklikler yapabilirsiniz.

Önce git'i ne kadar geri çekmek istediğinizi söylemelisiniz. Şubenizdeki tüm değişikliklerin bir listesini almak için:

Ayrıca son değişikliklerin görüntülenen listesini de sınırlayabilirsiniz. , son üç taahhüt çek anlamına gelir:

Bu komutu yazdıktan sonra, metin düzenleyiciniz taahhütlerinizi ters sırayla ve kullanılabilir komutların bir listesini görüntüler:

İncelemek için yalnızca bir taahhüt göndermek istediğimizden, son iki taahhüt ilkinde ezeceğiz. Bu nedenle, ilk "pick" ile "squash" olarak değiştirin:

pick aa8cf1d Adding method customFilterFunctionGetRiskyCountryCodeScore to GatewayAdapter. squash 38828e2 Adding $wgDonationInterfaceCustomFiltersFunctionsRiskyCountries to donationinterface.php squash be33007 Fix a typo

Seçip sıkıştırmayı bitirip dosyayı kaydettiğinizde, taahhüt mesajlarınızı düzenlemenize ve birleştirmenize izin vermek için metin düzenleyicinizde başka bir dosya açılır. Change-Id satırlarından yalnızca birini tutmaya ve boş bir satırdan sonra mesajın altında kalmasına dikkat edin.

Önceki taahhütlerinizde gelen mesajlarınız otomatik olarak bu mesaja yerleştirilecektir:

Özet mesajınızı (güncellenmiş) işleme koymayı unutmayın. Bu durumda yeni özet mesaj şöyle olacaktır:

(mingle-fr-2012-69) Adding a custom filter for risky countries.

Her şey yolunda giderse, başarılı bir rebase mesajı görmelisiniz:

Daha sonra yamanızı incelemeye gönderin:

Git incelemenizin Gerrit'e gittiğini gösteren bir mesaj görmelisiniz (bu örnekte https://gerrit.wikimedia.org/r/7187):

<span id="Amending_a_change_(your_own_or_someone_else&#039;s)">

Değişikliği düzeltme (kendinizin veya başkasının)
Bazen, gönderilen bir değişikliği değiştirmeniz gerekebilir. Değişiklik henüz birleştirilmediği sürece bir değişikliği değiştirebilirsiniz.

Kendi değişikliklerinizi değiştirebilirsiniz. Başkası tarafından gönderilen değişiklikleri değiştirmek için Gerrit'in Trusted-Contributors grubunun bir üyesi olmanız gerekir. Trusted-Contributors grubun bir üyesi olmak için, üye olan birini bulun ve ondan sizi eklemesini isteyin. Grup, üyelerin yeni üyeler ekleyebilmesi, yetkilerinizi sorumlu bir şekilde kullanabilmesi açısından viraldir.

Rebasing
Yerel dalınızı uzak ile güncel hale getirmek için yeniden temel alın. Yeniden temelleme güncellemelerini ayrı bir yama yapmak en iyisidir, böylece kod inceleyecileri yaptığınız değişiklikleri kolayca görebilir. Gerrit kullandığınızı varsayarsak, bunu Gerrit'in web arayüzünde yamanızı görüntülerken "Rebase Change" düğmesine tıklayarak yapabilirsiniz.

Bu komutla tam sıfırlama ve değişikliği kontrol edin: (DİKKAT:, tüm yerel değişiklikleri kaldıran bir donanım sıfırlaması gerçekleştirir. Önce korumak istediğiniz değişiklikleri saklayın veya uygulayın!)

Örneğin:

You can look in Gerrit to figure out the. It is the six digit number in the URL of your code review page.

Yerel deponuzda bir dalda zaten değişiklik varsa, bunun yerine sadece kontrol edebilirsiniz:

Örneğin:

Make changes and push
Ardından, favori metin düzenleyicinizle bazı değişiklikler yapın.

dosyaları gerektiği gibi uygulayın, ardından değişikliği tamamlayın (kaydetmeyi "değiştirdiğinizden" emin olun):

Değişiklikliği push yapın:

burada önemlidir. git-review ile değişikliğinizi ana bilgisayara karşı yeniden düzenlememesini söyler, bu da yama seti 1 ile 2 arasında farklılık gösterir.

<span id="Push_to_a_branch_different_than_master">

Master'dan farklı bir dalına aktarın
Yukarıda taahhüt, ana dalına aktarıldı. Dal adı yalnızca Gerrit kullanıcı arayüzünde işlemin konusu olarak görünüyordu. Eğer gerçekten ana daldan farklı bir şubeye geçmek istiyorsanız,  üzerinden aktarmanız gerekir.

Sorun giderme
Sorunlar ve nasıl çözüleceği için sayfasına bakın.

<span id="See_also">

Ayrıca bakınız
Ayrıca şu sayfalar da yararlıdır:


 * Gerrit Eğitimi tl;dr
 * Gerrit TortoiseGit eğitimi
 * Wikimedia Gerrit Yama Yükleyicisi
 * Gerrit Eğitimi tl;dr
 * Gerrit TortoiseGit eğitimi
 * Wikimedia Gerrit Yama Yükleyicisi