Gerrit/git-review

From mediawiki.org
This page is a translated version of the page Gerrit/git-review and the translation is 95% complete.

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.

Daha önce kurulum yaptıysanız ve Ubuntu 18.04'e sahipseniz, paketlenmiş 1.26.0 sürümü çalışmayacağından git-review ile güncellemeyi deneyin.

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):

  1. Homebrew'i kurun
  2. 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.

  1. Terminal'i açın ve test Git paketlerini indirmek için rahat olduğunuz bir dizine geçin ("İndirilenler" gibi)
  2. 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)
  3. Pip'i kurun (Not: OS X'in bazı eski sürümlerine zaten dahil edilmiştir):
    sudo easy_install pip
    
  4. Pip/setuptools'u güncelleyin (yalnızca OS X 10.7 ve öncesi için
    sudo pip install -U setuptools
    
  5. 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
  1. 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 konu bug/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 --draftoption to mark the patch as WIP (you can filter out such patches in Gerrit searches using -is:wip):

git review --draft

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()

Ayrıca bakınız