Gerrit - Hızlı Kılavuz
Gerrit, Git ile entegre edilmiş ve Git sürüm kontrol sistemi üzerine inşa edilmiş web tabanlı bir kod inceleme aracıdır (geliştiricilerin birlikte çalışmasına ve çalışmalarının geçmişini korumasına yardımcı olur). Kod incelemelerini tamamladığınızda değişiklikleri Git deposunda birleştirmenize izin verir.
Gerrit, Google'da Shawn Pearce tarafından geliştirildi ve Java, Servlet, GWT (Google Web Toolkit) ile yazılmıştır. Gerrit'in kararlı sürümü 2.12.2'dir ve 11 Mart 2016'da yayınlanmıştır ve Apache Lisansı v2 altında lisanslanmıştır .
Neden Gerrit Kullanılır?
Aşağıda bazı nedenler, neden Gerrit'i kullanmanız gerektiğidir.
Gerrit kullanarak hatayı kaynak kodda kolayca bulabilirsiniz.
Normal Git istemciniz varsa Gerrit ile çalışabilirsiniz; Gerrit istemcisi kurmaya gerek yok.
Gerrit, geliştiriciler ve git depoları arasında bir ara ürün olarak kullanılabilir.
Gerrit'in Özellikleri
Gerrit, ücretsiz ve açık kaynaklı bir Git sürüm kontrol sistemidir.
Gerrit'in kullanıcı arayüzü Google Web Toolkit üzerinde oluşturulmuştur .
Her taahhüdü gözden geçirmek için hafif bir çerçevedir.
Gerrit, kodun itilmesine izin veren ve kaydetmeniz için inceleme oluşturan bir depo görevi görür.
Gerrit'in Avantajları
Gerrit, kod incelemesi için Git depoları ve web ön ucu için erişim kontrolü sağlar.
Ek komut satırı araçlarını kullanmadan kodu itebilirsiniz.
Gerrit, depo düzeyinde ve şube düzeyinde izne izin verebilir veya reddedebilir.
Gerrit, Eclipse tarafından desteklenmektedir.
Gerrit'in dezavantajları
Kod taahhütlerini gözden geçirmek, doğrulamak ve yeniden göndermek, pazarlama süresini yavaşlatır.
Gerrit yalnızca Git ile çalışabilir.
Gerrit yavaştır ve değişikliklerin listelendiği sıralama düzenini değiştirmek mümkün değildir.
Gerrit'e depo eklemek için yönetici haklarına ihtiyacınız var.
Gerrit'i kullanmadan önce Git'i kurmanız ve bazı temel yapılandırma değişiklikleri yapmanız gerekir. Git istemcisini farklı platformlara kurma adımları aşağıdadır.
Git İstemcisinin Kurulumu
Linux
Git'i Linux'a, yazılım paketi yönetim aracını kullanarak kurabilirsiniz. Örneğin, Fedora kullanıyorsanız, şu şekilde kullanabilirsiniz:
sudo yum install git
Ubuntu gibi Debian tabanlı dağıtım kullanıyorsanız, aşağıdaki komutu kullanın -
sudo apt-get install git
pencereler
Git web sitesinden indirerek Git'i Windows'a kurabilirsiniz. Sadece msysgit.github.io bağlantısına gidin ve indirme düğmesine tıklayın.
Mac
Git, aşağıdaki komut kullanılarak Mac'e yüklenebilir -
brew install git
Git'i kurmanın başka bir yolu da Git web sitesinden indirmektir. Mac için Git platformunu kuracak olan Mac bağlantısına Git kurulumuna gitmeniz yeterli .
Git'i kurduktan sonra, kişisel bilgilerinizi eklemek için yapılandırma değişkenlerini özelleştirmeniz gerekir. Yapılandırma değişkenlerini git config adlı Git aracını -l seçeneğiyle birlikte kullanarak alabilir ve ayarlayabilirsiniz (bu seçenek mevcut yapılandırmayı sağlar).
git config -l
Yukarıdaki komutu çalıştırdığınızda, aşağıdaki görüntüde gösterildiği gibi yapılandırma değişkenlerini alacaksınız.
Komutları tekrar kullanarak özelleştirilmiş bilgileri istediğiniz zaman değiştirebilirsiniz. Bir sonraki bölümde, git config komutunu kullanarak kullanıcı adını ve kullanıcı E- postasını nasıl yapılandıracağınızı öğreneceksiniz .
Ad ve e-posta değişkenlerini ayarlayarak her kaydı takip edebilirsiniz . Ad değişkeni adı belirtirken, e-posta değişkeni Git kaydetmelerle ilişkili e-posta adresini tanımlar. Bunları aşağıdaki komutları kullanarak ayarlayabilirsiniz -
git config --global user.email "[email protected]"
git config --global user.name "your_name"
Yukarıdaki komutları çalıştırdığınızda, aşağıdaki resimde gösterildiği gibi kullanıcı adını ve e-posta adresini alacaksınız.
SSH, uzak bir bilgisayardan ağ hizmetlerine güvenli bir şekilde erişmek için kullanılan Secure Shell veya bazen Secure Socket Shell protokolü anlamına gelir . SSH anahtarlarını bilgisayar ile Gerrit arasında güvenilir bir bağlantı sağlayacak şekilde ayarlayabilirsiniz.
Git Bash'de aşağıdaki komutu kullanarak yerel bilgisayarınızdaki mevcut SSH anahtarını kontrol edebilirsiniz -
$ ls ~/.ssh
Giriş düğmesine tıkladıktan sonra, aşağıdaki resimde gösterildiği gibi mevcut SSH anahtarını göreceksiniz -
Mevcut bir SSH anahtarı bulamazsanız, yeni bir SSH anahtarı oluşturmanız gerekir.
Yeni SSH Anahtarı Oluşturma
Git Bash'de şu komutu kullanarak kimlik doğrulama için yeni bir SSH anahtarı oluşturabilirsiniz -
$ ssh-keygen -t rsa -C "[email protected]"
Zaten bir SSH anahtarınız varsa, üzerine yazılacağı için yeni bir anahtar oluşturmayın. Yalnızca Git'i Git Bash ile yüklediyseniz ssh-keygen komutunu kullanabilirsiniz .
Yukarıdaki komutu çalıştırdığınızda ~ / .ssh dizininde 2 dosya oluşturacaktır .
~/.ssh/id_rsa - Özel anahtar veya kimlik anahtarıdır.
~/.ssh/id_rsa.pub - Halka açık bir televizyon.
Daha fazla tartışılan farklı platformlarda ssh-agent'a SSH anahtarı ekleyebilirsiniz.
Linux
SSH anahtarı eklemek için Linux sisteminde aşağıdaki komutu kullanın
cat /home/<local-user>/.ssh/id_rsa.pub
pencereler
GIT GUI'yi açın ve Help → Show SSH Key aşağıdaki resimde gösterildiği gibi.
Ardından, Copy To Clipboard düğmesi, anahtarı panoya kopyalamak için.
Mac
Mac OS X'te, aşağıdaki komutu kullanarak id_rsa.pub içeriklerini panoya kopyalayabilirsiniz .
$ pbcopy < ~/.ssh/id_rsa.pub
SSH anahtarı, aşağıdaki adımlar izlenerek Gerrit hesabına eklenebilir -
Step 1- Önce wmflabs.org hizmetlerinde bir hesap oluşturun .
Step 2- Sonra Gerrit için web arayüzünde oturum açın .
Step 3 - Ardından sağ üst köşede kullanıcı adınızı tıklayın ve Ayarlar seçeneğini seçin.
Burada, Gerrit'i kullanmak için John adında bir hesap oluşturduk
Step 4 - Sol taraftaki menüden "SSH Genel anahtarları" seçeneğini tıklayın ve alana SSH Genel anahtarını yapıştırın.
Aşağıdaki komutları kullanarak Git'e SSH anahtarı ekleyebilirsiniz -
Step 1 - Git Bash'i açın ve aşağıdaki komutu kullanarak ssh-agent'ı edinin.
$ eval 'ssh-agent'
Step 2 - Ardından, aşağıdaki komutu kullanarak SSH anahtarını ssh-agent'a ekleyin
$ ssh-add ~/.ssh/id_rsa
Step 3 - Şimdi, ilk kez oturum açarken kullanılan SSH parmak iziyle eşleşen aşağıdaki komutu kullanarak ssh'ı çalıştırın.
$ ssh -p 29418 <user_name>@gerrit.wikimedia.org
Yukarıdaki ekran görüntüsünde bunu görebilirsiniz xyz123 Gerrit hesabı oluşturulurken kullanılan bir örnek kabuk hesap adıdır ve Abc123 Gerrit hesabınızın kullanıcı adıdır.
Örneği, şurada düzenlenen herhangi bir projenin kaynak koduyla birlikte Git kullanarak indirebilirsiniz. gerrit.wikimedia.org aşağıdaki Git Bash komutunu kullanarak.
$ git clone
ssh://<user_name>@gerrit.wikimedia.org:29418/mediawiki/extensions/examples
Git clone komutu yeni bir dizine bir dizin klonları; başka bir deyişle mevcut bir deponun bir kopyasını alır . Yukarıdaki komutu çalıştırdığınızda, aşağıdakine benzer bir ekran görüntüsü alacaksınız.
Yukarıdaki komut, 'örnekler' deposunu klonlar ve bu depodan nesneleri, dosyaları vb. Alır ve yerel şubenizde depolar.
Git-review'i bu bölümde anlatıldığı gibi farklı platformlara kurarak Gerrit ile çalışabilirsiniz .
pencereler
Windows'ta git-review'i aşağıdaki adımlarda listelendiği gibi kurabilirsiniz.
Step 1- Git-review'i kurmak için önce Python'u kurun .
Step 2 - Python kurulumunu başka bir dizine kurmak yerine varsayılan dizinde (C: \ Python27 gibi) tutun.
Step 3 - Sonra, yolu kullanarak Python betikleri dizini için ortam değişkenlerini ayarlayın. C:\Python27\;C:\Python27\Scripts\;
git_review_install
Step 4- 2.7 sürümüyle Python, pip'i otomatik olarak kuracaktır. Python 2.7'nin eski sürümü için, bu bağlantıda açıklandığı gibi pip kurabilirsiniz .
Step 5 - Açık Git Bash'i çalıştırın ve aşağıdaki komutu kullanarak git-review'i kurun.
$ pip install git-review
Linux
Linux'ta git-review'i aşağıdaki adımlarda açıklandığı gibi kurabilirsiniz -
Step 1Linux platformu kullanıcılarının, paylaşılan ana bilgisayarda kök erişimi yoktur. Bu nedenle, root erişimi olmadan, git-review'i aşağıdaki komutları kullanarak kullanıcı dizinine yerel olarak kurabilirsiniz -
virtualenv --python=/usr/bin/python2.6 virtualenv
virtualenv/bin/pip install git-review==1.21
Step 2 - Yerel ikililere giden yolu iki yolla genişletebilirsiniz -
PATH=$PATH:~/virtualenv/bin/
PATH=~/virtualenv/bin/:$PATH
Step 3 - Şimdi, çalışmayı Gerrit ile ayarlamak için aşağıdaki komutu kullanın.
git review -s
or
~/virtualenv/bin/git-review -s
Step 4 - Root erişimi ile git-review aşağıdaki komut kullanılarak kurulabilir.
sudo apt-get install git-review
Step 5- Python'u kurduktan sonra apt-get yoksa, aşağıdaki komutları kullanın.
$ sudo easy_install pip
$ sudo pip install git-review==1.21
Step 6 - Gerrit ile çalışmak için aşağıdaki komutu çalıştırın.
git review -s
Mac OS X
Mac'te, git-review'i aşağıdaki adımları kullanarak yükleyebilirsiniz.
Step 1- Homebrew'i bu bağlantıdan yükleyin .
Step 2 - Sonra, aşağıdaki komutu kullanarak git-review'i kurun.
brew install git-review
Gerrit, kodu diğer ana bilgisayardan çıkaran, koddaki değişiklikleri iten, kodu inceleme için gönderen vb. Git sürüm kontrol sisteminin üzerine inşa edilmiştir. Git'in varsayılan uzak adı orijindir ve git-review'e bunu kullanmasını söylüyoruz aşağıdaki komutu kullanarak 'orijin' adını verin .
$ git config --global gitreview.remote origin
Git-incelemesi, git dallarını gözden geçirilmek üzere Gerrit'e göndermek için kullanılabilir. Gitreview'i proje dizininde bulunan aşağıdaki komutu kullanarak kurabilirsiniz.
$ git review -s
Git-review, Git klonunu yapılandırmak, dalları Gerrit'e göndermek, mevcut dosyaları getirmek, vb. İçin komut satırı aracı olarak kullanılabilir. Git-review varsayılan olarak Gerrit ile çalışmak için uzak adlandırılmış gerriti arar.
Git-review Gerrit uzaktan kumandasını bulursa, şubeyi şu adrese gönderir: HEAD:refs/for/masteruzak konumda ve Gerrit uzaktan erişimi yoksa git-review .gitreview gerrit uzak bilgileri ile birlikte deponun kök dizinindeki dosya.
Git-review aşağıdakileri dahili olarak işler -
Dalları göndermek için uzak deponun çalışıp çalışmadığını kontrol edecektir.
Gerrit uzaktan erişimi yoksa, kullanıcı adını soracak ve arşive yeniden erişmeyi deneyecektir.
Gerrit'e işaret eden gerrit adı verilen bir uzaktan erişim yaratacaktır.
Commit-msg kancasını kuracaktır.
Aşağıdaki komutu kullanarak ana dalı güncel hale getirebilirsiniz. Git-pull komutu, başka bir yerel şubeden alır veya başka bir havuzla bütünleşir.
git pull origin master
Komut, değişiklikleri uzak kaynaktan (alınacak uzaktaki URL), ana şubeden çekecek ve değişiklikleri yerel teslim alınan dalla birleştirecektir.
Kaynak ana, başlangıç noktasından en son çekilenin önbelleğe alınmış bir kopyasıdır.
Git çekme, git getirme (uzak depodan yeni yürütmeler alır) ve git birleştirme (yeni işlemleri yerel şubeye entegre eder) kombinasyonudur.
Git çekme, yerel dalı varsayılan olarak uzak dalla birleştirir.
Aşağıdaki komutu kullanarak yerel makinede bir şube oluşturabilirsiniz.
$ git checkout -b name_of_branch origin/master
Yukarıdaki komut, aşağıdaki ekran görüntüsünde gösterildiği gibi yeni bir dal oluşturur.
Burada kullandık branch123yeni yerel şube olarak. Aşağıdaki komutu kullanarak yeni şubeyi "ana" dan gösterebilirsiniz.
$ git branch
Yukarıdaki komut, aşağıdaki ekran görüntüsünde gösterildiği gibi sonucu üretir.
Git teslim alma , dal arasında gezinir, çalışma dizinindeki dosyaları günceller ve Git'e o daldaki işlemleri kaydetmesi için bilgi verir.
Yerel dosya sistemindeki kodu değiştirdiğinizde, aşağıdaki komutu kullanarak dizindeki değişiklikleri kontrol edebilirsiniz.
$ git diff
Proje dizininde, adlı dosyadaki bazı değişiklikleri değiştireceğiz. Example/Example.hooks.phpve yukarıdaki komutu çalıştırın. Aşağıdaki ekran görüntüsünde gösterildiği gibi sonucu alacağız.
Aşağıdaki komutu kullanarak dosyalarda veya dizinde yapılan değişiklikleri kontrol edebilirsiniz.
$ git status
Yukarıdaki komut hangi değişikliklerin aşamalandırıldığını, hangilerinin yapılmadığını ve hangi dosyaların Git tarafından izlenmediğini görmeyi sağlar.
Ardından, çalışma dizinindeki değişiklikleri ekleyebilir ve aşağıdaki komutu kullanarak dosyayı sonraki işlemede güncelleyebilirsiniz.
$ git add Example/Example.hooks.php
Dosyayı ekledikten sonra , aşağıdaki ekran görüntüsünde gösterildiği gibi hazırlama alanına eklenen değişiklikleri gözden geçirmek için git status komutunu tekrar çalıştırın .
Aşağıdaki komutu kullanarak dizin ile son kaydetmeniz arasındaki farkı ve hangi içeriğin hazırlandığını görebilirsiniz.
$ git diff --cached
Aşağıdaki komutu kullanarak değişiklikleri yerel depodan uzak dizine gönderebilirsiniz.
$ git commit
Yukarıdaki komutu çalıştırdığınızda, değişiklikleriniz için commit mesajını eklemenizi isteyecektir. İşlemi diğer arşive ittiğinizde bu mesaj diğer kişiler tarafından görülecektir.
Commit mesajını ekleyin ve aşağıdaki ekran görüntüsünde gösterildiği gibi commit mesajını gösterecek olan git commit olarak komutu tekrar çalıştırın .
Ana ile birleştirmeden önce Gerrit'teki değişiklikleri gözden geçirmeniz gerekir. Ana ünitede meydana gelen değişiklikler senkronize edilebilir. Üzerinde çalıştığınız dalda aşağıdaki komutu kullanın.
$ git pull --rebase origin master
Yukarıdaki komut, değişiklikleri veya taahhütleri uzak şubeden alacak ve ana makinenin üstüne taahhütleri yeniden sunacaktır.
Değişiklikleri tamamladığınızda ve taahhütleri yeniden verdiğinizde, değişiklik setinizi gözden geçirilmek üzere Gerrit'e gönderebilirsiniz.
Git pull --rebase, genellikle değişiklikler ayrı bir dalı hak etmediğinde kullanılır.
Git çekme, git getirme ve git birleştirmenin bir kombinasyonudur; gibi olduğu git çekme --rebase olan GIT'nin kombinasyonu getirme ve git Rebase.
İlk olarak, aşağıdaki ekran görüntüsünde gösterildiği gibi komutu git pull origin master olarak çalıştırın .
Şimdi, aşağıdaki ekran görüntüsünde gösterildiği gibi yürütmeleri yeniden başlatmak için komutu git rebase master olarak kullanın.
Yamaları incelemek için gönderebilirsiniz. git-reviewkomut. Değişiklik seti çalıştırılarak Gerrit'e gönderilebilir.git review -R komut aşağıdaki ekran görüntüsünde gösterildiği gibi.
-R seçeneği git-review'e git değişikliklerini Gerrit'e göndermeden önce yeniden temellemeyi tamamlamamasını bildirir.
Aşağıdaki komutu kullanarak kodu ana şubeye değil başka şubeye gönderebilirsiniz.
git review name_of_branch
Aşağıdaki komutu kullanarak kodu farklı bir uzaktan kumandaya göndermek de mümkündür.
git review -r name_of_remote
Değişiklikler bu bağlantıya tıklanarak Gerrit kontrol panelinde görüntülenebilir .
Değiştirilmiş yazar adı bağlantısını tıklayın ve aşağıdaki ekran görüntüsünü alacaksınız.
Aşağıdaki ekran görüntüsünde gösterildiği gibi diğer ayrıntılarla birlikte değiştirilen dosyaları görmek için difüzyon bağlantısını tıklayın.
Gerrit hesabına giriş yaptıktan sonra aşağıdaki adımlarda gösterildiği gibi projeyi web arayüzü üzerinden düzenleyebilirsiniz.
Step 1- Bu bağlantıya tıklayarak Gerrit kontrol paneline gidin . Aşağıdaki ekran görüntüsünü alacaksınız.
Step 2 - Ardından mediawiki/extensions/examplesProje sütunu altında belirtilen bağlantı .
Step 3- Aşağıdaki ekran görüntüsünde gösterildiği gibi araç çubuğundaki Genel bağlantısını tıklayın .
Step 4- Genel bağlantısını açtığınızda , aşağıdaki gibi bir ekran görüntüsü gösterecektir.
Step 5- Değişiklik Oluştur düğmesini tıklayın ve aşağıdaki ekran görüntüsünde gösterildiği gibi bazı ayrıntıları içeren bir açılır pencere açacaktır.
Step 6- Bilgileri girin ve Oluştur düğmesini tıklayın.
Değişikliği oluşturduktan sonra, bilgileri aşağıdaki ekran görüntüsünde gösterildiği gibi gösterecektir.
Step 7- Click Edit ve ardından Ekle . Şimdi düzenlemek istediğiniz dosyayı seçin. Burada dosyayı seçtikExample/i18n/en.json.
Dosyayı açtığınızda, aşağıdaki ekran görüntüsünde belirtildiği gibi json verilerini gösterecektir.
Step 8- Kaydet'i ve ardından Kapat düğmesini tıklayın.
Step 9- Son olarak , düzenlenen dosyayı yayınlamak için Yayınla düğmesini tıklayın
Step 10- Aşağıdaki ekran görüntüsünde gösterildiği gibi Teslim Mesajı bağlantısını tıklayarak teslim mesajını değiştirebilirsiniz .
Step 11- Kaydet'i ve ardından Kapat düğmesini tıklatmak isterseniz, klavyede e tuşuna basın ve bazı ek bilgiler ekleyin .
Kod incelemesi, Gerrit'teki iş akışının önemli bir parçasıdır. Temel kavram, kodun birleştirilmeden önce gözden geçirilmesi gerektiğidir.
MediaWiki için kodun iş akışı birleştirilmeden önce gözden geçirilebilir ve ayrıca MediaWiki görünümünü ve çalışmasını özelleştiren uzantılar da incelenebilir. Uluslararasılaştırma ve yerelleştirme taahhütlerini zorlayabileceğiniz özel bir durum var .
Geliştirmeyi bitirdiğinizde tüm taahhütleri uzak bir şubeye aktarabilirsiniz. Birisi değişiklikleri yerel olarak alacak ve birleştirme kaydı oluşturarak bu getirilen değişiklikleri yerel ana bilgisayarda birleştirecektir. Bu değişiklikleri,refs/for/master.
Proje sahibi, projenin adı geçen kişiye ait olduğu anlamına gelir. Proje sahipleri, içine üye veya başka gruplar ekleyemeyeceğiniz sanal bir gruptur. Proje sahibi, proje üzerinde farklı gruplara izin vermek için erişim hakları sağlar.
Aşağıdaki adımları kullanarak projenizin erişim haklarını görüntüleyebilirsiniz.
Step 1- Bu bağlantıyı tıklayarak Gerrit kontrol panelini açın .
Step 2- Projeler → Liste seçeneğini tıklayın . Proje listenizdeki projeyi arayın ve aşağıdaki ekran görüntüsünde gösterildiği gibi tıklayın.
Step 3- Projenizi açtığınızda , aşağıdaki ekran görüntüsünde gösterildiği gibi Erişim seçeneğini tıklayın .
Step 4- Düzenleme seçeneğini tıklayın . Açılır menüyü tıklayarak erişim haklarını değiştirebilirsiniz. Aşağıdaki ekran görüntüsünde gösterildiği gibi Değişiklikleri Kaydet düğmesini tıklayın .
Gerrit'te herkes kodu inceleyebilir ve kod hakkında yorum yapabilir. Aşağıdaki adımları düşünün -
Step 1 - Önceki bölümde belirtildiği gibi Gerrit kontrol panelini açmak için Gerrit'e giriş yapın.
Step 2 - Şimdi, aşağıdaki ekran görüntüsünde gösterildiği gibi Gerrit projesi, şube, güncelleme tarihi vb. İçeren herhangi bir konuyu tıklayın.
Step 3- Sonra, bir ekran gösterecektir. Aşağıdaki ekran görüntüsünde gösterildiği gibi Teslim Mesajı seçeneğini tıklayın .
Değişiklik kümesinin önemli alanları Gözden Geçirenler, Gözden Geçiren Ekleme, Yan yana kapalı vb. Gibidir. Yama kümelerinin karşılaştırılması, eski sürüm geçmişi listesinin seçilmesini, daha yeni yama seti ayrıntılarının genişletilmesini vb. İçerir. Kodu gözden geçirme ve birleştirme veya reddetme Gerrit'in mevcut sürümünde bulunmayan değiştirmeyi bırak düğmesi, yama gönderme düğmesi vb. içerir.