Gerrit/git-review
git-review, Git / Gerrit bir değişiklik göndermek veya mevcut olanı getirmek için kullanılan bir komut satırı aracıdır.
Wikimedia Gerrit için git-review sürüm 1.27 veya üstü gerektiğini unutmayın.
Akış projesi OpenStack tarafından yönetiliyor. İlgisiz Facebook projesi ile karıştırılmamalıdır.
Kurulum
- Ayrıca bakınız: Gerrit eğitimi
Git'i yükledikten (1, 2), gerrit kullanıcı hesabı oluşturduktan, bir ssh anahtarı (3, 4) oluşturduktan ve proje deposu klonladıktan sonra (veya örnek), Gerrit depolarıyla çalışmak için bir araç olan git-review'i kurmaya hazırsınız, böylece bazı komutları hatırlamak zorunda kalmazsınız. İşletim sisteminiz için aşağıdaki talimatları izleyin ve daha sonra yapılandırmayı yapmayı unutmayın!
Linux
Debian/Ubuntu/Mint
Paylaşılan bir ana bilgisayardaki Debian veya ilgili dağıtımların (ör. Ubuntu, Mint) kullanıcıları genellikle kök erişimine sahip değildir. Barındırma hizmetinden sizin için git-review yüklemesini sağlayamazsanız, yerel olarak kurmayı deneyebilirsiniz. Aşağıdaki uygun bölüme gidin
Kök erişimine sahip olmak
Şunu yapabilirsiniz:
sudo apt-get install git-review
veya
sudo apt-get install python-pip
sudo easy_install pip
sudo pip install git-review
easy_install kurulumunuz yoksa, deneyin
sudo apt-get install python-setuptools
apt-get
komutunuz yoksa, ancak yüklü python
varsa, bunu kullanabilirsiniz; özel OS X talimatları için aşağıya bakın.
sudo easy_install pip
sudo pip install git-review
Ubuntu 20.04'e sahipseniz, deneyin
sudo apt-get install python3-pip
sudo pip3 install git-review
Sonra çalıştırın:
git review -s
Gerrit ile çalışmak için klonlanmış kopyanızda. Muhtemelen sizden taahhüt kullanıcı adınızı isteyecektir. Sonra otomatik olarak commit-msg kancayı kuracaktır.
Kök erişimi olmadan
Paylaşılan bir ana bilgisayardaysanız ve sisteminizde git-review yoksa, bunu yerel olarak kullanıcı dizininize kurabilirsiniz.
virtualenv --python=/usr/bin/python2.6 virtualenv
virtualenv/bin/pip install git-review
Bu ilk yerel kurulumunuzsa veya bunu daha önce yapmadıysanız, PATH'inizi yerel ikili dosyaları içerecek şekilde genişletin. Bunu yapmanın iki yolu var. Daha muhafazakar yol
PATH=$PATH:~/virtualenv/bin/
sistemin önce tüm ikili dizinlere bakmasını ve başka bir yerde bir komut bulunmaması durumunda yalnızca yerel ikili dizine bakmasını sağlar. Ana dizininize yerel olarak yüklenmiş yazılımın sistem programlarını geçersiz kılmasını istiyorsanız, sıralamanın tersini yapmanız gerekir.
PATH=~/virtualenv/bin/:$PATH
Muhtemelen bunu daha önce yaptınız. Otomatik olarak çalışmasını sağlamak için oturum açma sıranıza her iki komutu da eklemek isteyebilirsiniz.
PATH değişkeninizi değiştirmek istemiyorsanız, değiştirmenize gerek yoktur. Bu durumda, git review
komutunu kullanamazsınız, bunun yerine ~/virtualenv/bin/git-review
kullanmayı unutmamalısınız.
Son olarak şunu çalıştırın:
git review -s
veya
~/virtualenv/bin/git-review -s
sırasıyla, Gerrit ile çalışmak üzere ayarlamak için klonlanmış kopyanızda. Muhtemelen sizden taahhüt kullanıcı adınızı isteyecektir. Ardından commit-msg kancasını otomatik olarak kuracaktır.
Fedora≤21/CentOS
sudo yum install git-review
Git-review kullanırken ImportError: No module named requests
görüyorsanız, python-requests
yüklemeniz gerekecek
sudo yum install python-requests
Yum'un git-review paketi bulamadığını görebilirsiniz. Bu durumda EPEL deposunu etkinleştirebilir ve tekrar deneyebilirsiniz.
Fedora≥22
sudo dnf install git-review
OpenSUSE
python-setuptools
kurun (YaST), sonra
easy_install pip
pip install git-review
OpenSUSE 13.1'den itibaren git-review ana depoya dahil edilmiştir, böylece kullanabilirsiniz
sudo zypper in git-review
Gentoo
emerge dev-python/git-review
Arch Linux
Arch does not have git-review in the repositories, but does contain a PKGBUILD in the AUR:
git clone https://aur.archlinux.org/git-review.git
cd git-review
makepkg -s
sudo pacman -U <resultingpackage>
NixOS (or any Linux with Nix installed)
git-review is available as a package in the stable and unstable branches of nixpkgs. Try it by starting a shell with git-review available:
Stable
nix run -f channel:nixos-21.05 git-review # adjust to your release
Kararsız
nix run -f channel:nixos-unstable git-review
Installation can be done with your preferred method (home-manager, via system configuration or with nix-env).
Pip Python paket yükleyicisini kullanarak yükleme
Not: apt-get
dalınız yoksa, ancak yüklü python
varsa, git-review'in en son sürümünü python paket yükleyicisini kullanarak da yükleyebilirsiniz.
Tam komut dağıtımınıza bağlıdır, ya da:
sudo apt-get install python-pip
veya
sudo easy_install pip
pip
yüklendikten sonra şunları kullanabilirsiniz:
sudo pip install git-review
FreeBSD
git-review'i doğrudan bağlantı noktaları üzerinden kurabilirsiniz.
cd /usr/ports/devel/git-review
make install
Windows
git-review işlevinin çalışması için Python gereklidir ve kurulumu için pip kullanılır:
- Python'u yükleyin veya Python 2 veya Python 3'ün en güncel sürümüne yükseltin.
- Önemli: Python'u yolunda boşluk olan herhangi bir dizine kurmayın, çünkü bir pip hatası ([1] adresine bakın), varsayılanı kullanın, ör.
C:\Python34\
- Python kurulumu sırasında manüel olarak Add python.exe to Path seçeneği seçin
- Aksi takdirde, python betikleri dizininizi manüel olarak sistem yoluna ekleyin (Ayarlar, Kontrol paneli, Sistem, Gelişmiş sistem ayarları, Ortam değişkenleri, Kullanıcı değişkenleri, Yol; ör.
C:\Python34\;C:\Python34\Scripts\;
). Yoldaki farklı dizinler noktalı virgülle ";" yalnızca yol listesine herhangi bir boşluk eklemeyin. - Python 3.4'te pip zaten kurulu. Yalnızca daha eski bir sürüme sahipseniz, buradaki talimatları izleyerek pip kurun.
- Git Bash'i Yönetici olarak çalıştırın (bu seçenek için simgeye sağ tıklayın) ve aşağıdaki komutla git-review'i kurun:
pip install git-review
- Aşağıdakilere benzer sorunlarla karşılaşırsanız:
Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after connection broken by 'ConnectTimeoutError(<pip._vendor.requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x03B55750>, 'Connection to pypi.python.org timed out. (connect timeout=15)')': /simple/git-review/
- şunu çalıştırmayı deneyin:
pip install git-review --proxy=www-proxy-lon.uk.oracle.com:80
- kullanılacak tam proxy http://wpad/wpad.dat dosyasından çıkarılabilir.
git review
kullanmak için, halihazırda (muhtemelen gizli).gitreview
yapılandırma dosyası içeren bir git klon dizininde olmanız gerekir (git-remote için bir depo kurma sayfasına bakın)
Mac OS X
Yöntem 1 (Homebrew)
OS X 10.11 El Capitan ve sonraki sürümlerde çalışır (High Sierra 10.13.5'te doğrulanmıştır):
- Homebrew'i kurun
brew install git-review
ile git-review kurun
Yöntem 2 (Python “pip” Paket Yükleyicisi)
Mac OS X, Python 2.7 ile birlikte gelir (şimdilik), ancak Git ve git-review tarafından desteklenen kurulum programları değil.
- Terminal'i açın ve test Git paketlerini indirmek için rahat olduğunuz bir dizine geçin ("İndirilenler" gibi)
- OS X Installer for Git'i indirin ve yükleyin (yalnızca OS X 10.8 ve öncesi için OS X 10.9, Git önceden yüklenmiş olarak gelir)
- Pip'i kurun (Not: OS X'in bazı eski sürümlerine zaten dahil edilmiştir):
sudo easy_install pip
- Pip/setuptools'u güncelleyin (yalnızca OS X 10.7 ve öncesi için
sudo pip install -U setuptools
- git-review yükleyin. "El Capitan" sürümünden itibaren OS X, dosya sistemindeki konumları
/System/Library/Frameworks/Python.framework/Versions/2.7/share
dahil olmak üzere korur, böylece tipik yükleme yöntemi sudo kullanılarak başarısız olur. Bunun yerine git-review ile yerel olarak ana klasörünüze şu şekilde yükleyin:pip install --user git-review
- PATH kabuk değişkeninizi,
$HOME/Library/Python/2.7/bin
olması gereken git-review konumunu içerecek şekilde güncelleyin
pkg_resources.DistributionNotFound: git-review
hatasını alırsanız, önceden yüklenmiş Python'u (/Library/Python/) nük yapmayı, Python'u homebrew (brew install python
) ile yüklemeyi ve kurulum araçlarını ve git-review ile yeniden yüklemeyi deneyebilirsiniz.
Görünüşte başarılı bir kurulumdan sonra git command not found
alırsanız, mevcut kurulumun üzerine yeniden yüklemeyin, ancak git-review'i kaldırın ve yeniden yapın
sudo pip install -U setuptools
git-review ayarlama
git-review varsayılan uzak olarak "origin" ile kullanacak şekilde yapılandırmak için Gerrit eğitimdeki talimatları izleyin. Bu, "gerrit" ve "origin" adlı uzak arasındaki karışıklığı ve çakışmaları önler.
Bir depoyu klonladıktan sonra git-review kullanmak için onu 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.
cd MyNewProj
git review -s
Bu, kullandığınız kabuk kullanıcı adından farklıysa git kullanıcı adınızı isteyebilir.
Dahili olarak bu, şunları yapar:
- uzak depoya erişimin çalışıp çalışmadığını kontrol eder
- değilse, bir kullanıcı adı sorar ve tekrar dener
- gerrit'e işaret eden 'gerrit' adlı bir uzak oluşturur
- commit-msg kancasını kurar
git-review ile değişiklik gönderme
Git inceleme ile değişiklikleri göndermek çok fazla komut içermez:
git checkout -b mycoolfeature [change files] git commit -a git review
Bir değişiklik gönderdiğinizde ne olur
Bir değişiklik gönderdiğinizde git review aşağıdakileri yapar:
- .gitreview dosyasında hangi dala aktarılacağını (üretim veya her neyse) arar. Bu bilgiyi bulamazsa, uzmanlaşmayı aktarır
- revizyona hangi "konunun" ekleneceğini belirler (konuyu
-t
ile manüel olarak ayarlayabilirsiniz)- İndirilmiş değişikliği yeniden gönderiyorsanız, orijinal değişikliğin konusunu yeniden kullanır
- taahhüt özetiniz
bug 12345
gibi bir hata numarası içeriyorsa konubug/12345
olacaktır - aksi takdirde konu, yerel dalınızın adı olacaktır
- değişikliğinizi, zorladığınız dalının HEAD'ine karşı yeniden oluşturur (bunu atlamak için
-R
kullanın) - Aynı anda birden fazla değişiklik gönderiyorsanız veya başka bir birleştirilmemiş değişikliğe dayalı bir değişiklik gönderiyorsanız, bunu gerçekten yapmak isteyip istemediğiniz sorulur (bunu atlamak için
-y
kullanın) - değişikliği incelemeyi aktarır
Work in progress changes
If you want to share an unfinished change (for example to ask help on how to solve a problem), you can use the --work-in-progress
option to mark the patch as WIP (you can filter out such patches in Gerrit searches using -is:wip
):
git review --work-in-progress
It's best practice to also prefix the commit summary with [WIP]
when doing that.
git-review ile bir değişikliği indirme
Gerrit'ten bir değişikliği incelemek veya düzeltmek için indirirken git-review, Gerrit web kullanıcı arayüzünden sihirli bir büyüyü kopyalayıp yapıştırmaya bir alternatif sunar.
Tek ihtiyacınız olan, URL'de bulabileceğiniz Gerrit'teki değişikliğin sıra numarasıdır: https://gerrit.wikimedia.org/r/2033
.
git review -d 2033
Bu, değişikliği indirecek, review/AUTHOR/TAG
adlı bir dalına koyacaktır (değişikliğin etiketi yoksa, bunun yerine sıra numarası kullanılacaktır) ve o dala geçiş yapacaktır.
Bundan sonra, iyileştirmek için indirilen değişikliği düzeltebilirsiniz.
Alternatively, you can use git review -x 2033
to download (cherry-pick) the patch into the current branch.
Sorun giderme
Sorunlar ve nasıl çözüleceği için Gerrit/Troubleshooting sayfasına bakın.
Windows için sorun giderme
Bu başarısız olursa, birkaç seçeneğiniz vardır. Birincisi, düzenlemeleri yapmadan önce her depo için yerel deponuzun dizininden scp (güvenli kopya) kullanmaktır:
scp -P 29418 USERNAME@gerrit.wikimedia.org:hooks/commit-msg .git/hooks/commit-msg
İkincisi, git-review'in düzgün çalışması için c:\Python27\Scripts\git-review
yamasını denemektir:
--- /c/Python27/Scripts/git-review-old Tue May 28 20:51:50 2013
+++ /c/Python27/Scripts/git-review Tue May 28 20:48:03 2013
@@ -952,6 +952,9 @@
config = get_config(os.path.join(top_dir, ".gitreview"))
hook_file = os.path.join(git_dir, "hooks", "commit-msg")
+ # msysgit hacks to work around scp.exe (--aaron)
+ hook_file = unicode.replace( ".\%s" % os.path.relpath( hook_file ), "\\", "/" )
+
defaultrebase = convert_bool(
git_config_get_value("gitreview", "rebase",
default=str(config['defaultrebase'])))
Python 2.x ve git-review 1.17 veya önceki bir sürümü kullanıyorsanız, unicode.replace
yerine str.replace
kullanın.
Windows'ta karşılaşılan bir diğer hata ise:
... (top_dir, git_dir) = git_directories() ValueError: too many values to unpack (expected 2)
Bunun bir çözümü, git_directories()
dönüş satırını normal bölme işlevi yerine bölme çizgilerini kullanacak şekilde değiştirmektir.
Bölünme, herhangi bir boşluk olup olmadığını arar ve kaynak kod dizininizin yolu bir boşluk içerdiğinde bu hatayı üretir.
Bölünmüş çizgiler, yeni satır karakterlerini arar ve aynı hatayı üretmez.
return out.splitlines()