Jump to content

Gerrit/Pokročilé použití

From mediawiki.org
This page is a translated version of the page Gerrit/Advanced usage and the translation is 98% complete.
Outdated translations are marked like this.
Vizuální znázornění toho, jak vypadá pracovní postup vývoje MediaWiki

Základní instrukce pro nastavení a provoz s Git a Gerritem jsou popsány ve výukovém programu (viz také jeho nejkratší verze).

Varování

Tato stránka většinou dokumentuje, jak dělat věci "těžkým způsobem" v gerritu. Nástroj git review se stále zlepšuje a nyní obsahuje vestavěné mechanismy pro odeslání do větve, nahrání sady závislých oprav atd. Pravděpodobně byste měli zkontrolovat man git review, než se rozhodnete, že musíte pokračovat zde.

Instalace

Nastavení zkratky SSH (volitelné)

Přístup k úložišti je snazší, pokud nemusíte pokaždé zadávat celé vaše uživatelské jméno@gerrit.wikimedia.org:29418. Soubor ~/.ssh/config můžete upravit a přidat

Host gerrit
Hostname gerrit.wikimedia.org
Port 29418
User yourusername

Pak můžete místo toho použít "gerrit".

git review -s přidá dálkový ovladač gerrit do git, což by mělo učinit tento krok zbytečným. Cscott (diskuse)

Odesílání patchů

Nastavení úložiště pro git-remote

Většina repozitářů by již měla mít informace na git-remote, kde je vaše úložiště a jak se jmenuje hlavní větev. Informace jsou uloženy v souboru .gitreview v kořenovém adresáři úložiště. Pokud tento soubor ještě neexistuje, musíte jej vytvořit a odevzdat. Formát je následující:

[gerrit]
host=gerrit.wikimedia.org
port=29418
project=operations/puppet.git
defaultbranch=production

Pole host a project jsou povinná. Ostatní pole jsou volitelná: Výchozí hodnota port je 29418. Výchozí hodnota defaultbranch je master.

Jak na to - Sloučení vaší opravy zpět do vaší pobočky

Tato sekce je volitelná. Nabízí se jako pohodlný způsob, jak nabídnout řešení běžného problému. V této fázi je vaše nové nastavení již v Gerritu.

Po úpravě změny ji možná budete chtít sloučit zpět do místní pobočky.

Můžete to udělat tak, že přejdete na příslušnou změnu Gerritu.

Zde je příklad:

https://gerrit.wikimedia.org/r/c/7669/4

Přejděte do sekce Stáhnout a zkopírujte cherry pick.

Vybereme sadu patchů 4.

Přepněte zpět na svou pobočku. Budete ve své kontrolní větvi, kde jste právě provedli změnu.

Použijte pobočku odpovídající vašemu číslu změny.
git checkout mingle-fr-2012-59

Vložte do cherry pick a slučte všechny konflikty.

git fetch ssh://<USERNAME>@gerrit.wikimedia.org:29418/mediawiki/extensions/DonationInterface refs/changes/69/7669/4 && git cherry-pick FETCH_HEAD

Proveďte přidání git na upravené soubory.

git add payflowpro_gateway/payflowpro.adapter.php

Nezapomeňte zkontrolovat svůj stav a spustit rozdíl.

git diff

Měli byste vidět, že nejsou žádné rozdíly:

diff --cc payflowpro_gateway/payflowpro.adapter.php
index d7e510a,738c9df..0000000
--- a/payflowpro_gateway/payflowpro.adapter.php
+++ b/payflowpro_gateway/payflowpro.adapter.php

Poté proveďte změny:

git commit -m 'Merging patch set 4.'
[mingle-fr-2012-59 4e82e5a] Merging patch set 4.
 1 files changed, 3 insertions(+), 3 deletions(-)

Odeslání změny pobočce ke kontrole ("backporting")

Viz také Backporting fixes , který pojednává o backportování změn jádra MediaWiki (koordinace s WMF Release Engineering Team, zpracování za Phabricator atd.)

V tomto příkladu zpětně převedeme Gerrit #Ib27792 z master na REL1_20. Základní myšlenkou je použít git cherry-pick k aplikaci změn z commitu do master na jinou větev. (Všimněte si, že to lze provést také prostřednictvím webového rozhraní Gerrit pomocí tlačítka 'Cherry Pick'.)

Než začnete, vyhledejte hash git commitu, který byl začleněn do master. To lze nalézt na stránce změny Gerrit. Přejděte dolů k poslední sadě oprav a hash git commit je mezi "Sada oprav NN" a "(gitweb)" (neplést s Gerrit Change id, které začíná velkým 'I'). Ujistěte se, že toto potvrzení bylo skutečně začleněno do hlavní větve. Pokud tomu tak nebylo, počkejte, dokud nebude zkontrolován a začleněn do hlavního serveru — potvrzení může být stále změněno a my nechceme slučovat starou verzi.

$ git fetch origin

# git commit hash změny v masteru.
$ git show d4f2c0e8f76a7634fce1631669f4ce037965d8b5

$ git checkout origin/REL1_20
$ git reset --hard origin/REL1_20 # Zajistěte nejnovější verzi, zrušte všechny místní závislosti
$ git cherry-pick d4f2c0e8f76a7634fce1631669f4ce037965d8b5

# Neměňte zprávu odevzdání. Zejména opuštění
# "Change-Id" nedotčené v dolní části zprávy, protože to je
# co Gerrit používá ke spojení hlavní změny a sloučení větve.
# Pokud sloučení způsobí konflikty, měli byste je opravit ručně,
# použijte git add <files> a spusťte git commit. Přesuňte sekci "Conflicts".
# zprávy odevzdání před "Change-Id", takže "Change-Id" zůstane na
# ve spodní části zprávy, jinak bude push odmítnuta.

# Ověřte, že historie vypadá podle očekávání
$ git log --graph --decorate --oneline -n5

# Podívejte se na původní změnu v Gerritu a vyhledejte název tématu,
# pak jej použijte níže místo "topic-name", např. "refs/for/REL1_20/bug/36151"
# nebo "refs/for/wmf/1.21wmf1/my-topic-name"
$ git push origin HEAD:refs/for/REL1_20/bug/36151
remote: 
remote: New Changes:
remote:   https://gerrit.wikimedia.org/r/25756
remote: 
 * [new branch]      HEAD -> refs/for/REL1_20/bug/36151
Je zde potřeba použít komplikovaný git push místo git review? -- Stránka S (WMF) (diskuse) 02:28, 17. května 2013 (UTC)
Jediný důvod by byl, abyste tomu mohli dát nové téma. Alternativně tedy po kontrole git log nejprve vyhledejte název tématu (nebo si vymyslete nové téma) a proveďte git checkout -b random-new-topic-name a poté normální git review -R (místo git push). Od git-review verze 1.23 bude znovu používat původní téma.
git review -R remote-branch-name funguje také, pokud chcete odeslat do vzdálené větve z kontrolní větve.

Výsledkem je:

Působení na vzdálených pobočkách

Ve výchozím nastavení bude mít váš lokální klon nastavenou pouze místní hlavní větev pro sledování vzdálené hlavní větve. Sledování znamená, že kdykoli načtete objekty ze vzdáleného úložiště, stav git nebo větev git vám bude moci sdělit, jak aktuální je vaše místní pobočka, což je velmi užitečné. Kdykoli tedy chcete pravidelně působit na vzdálenou větev (řekněme REMOTE_BRANCH, chcete lokálně nastavit jednu (také REMOTE_BRANCH, abyste si ji snadno zapamatovali), která ji sleduje (pomocí -t).

git branch -vv

poskytne úplné podrobnosti:

$ git clone ...
$ git checkout -b REL1_19 -t gerrit/REL1_19
$ git branch -vv
  REL1_19 3b2bfd3 [gerrit/REL1_19: ahead 1] .gitreview for REL1_19 branch
* master  13169c8 [gerrit/master: behind 1] * (bug 34212) ApiBlock/ApiUnblock a[...]
$

Prosazování s použitím automatického nastavení

git-review přijímá jako volitelný argument název větve, se kterou se má pracovat. Pokud tento argument není zadán, vrátí se zpět a vyhledá parametr defaultbranch v souboru .gitreview v kořenovém adresáři úložiště.

Každá větev by měla mít .gitreview se správnou hodnotou výchozí větve. Na mediawiki/core.git budou muset lidé jinak použít něco jako: git-review BRANCH_NAME.

Varování Varování: Ve výchozím nastavení git-review používá větev s názvem 'master', což nemusí být to, co chcete. Pro jistotu zkontrolujte soubor .gitreview.

Prosazování s použitím ručního nastavení (Windows)

Chcete-li po provedení ručního nastavení změnit místo, kam se přesunete ke kontrole, spusťte git config alias.push-for-review "push gerrit HEAD:refs/for/BRANCH_NAME" k vytvoření místního aliasu a poté použijte git push-for-review jako obvykle.

Zavázání se nemasterovi

Chcete-li provést změnu ve větvi 1.17, vytvořte větev a značku a stiskněte obě:

git checkout -b REL1_17 origin/REL1_17
<make code changes>
git add <files-changed>
git commit
git push gerrit REL1_17
git tag 1.17.3
git push --tags

Částečné vrácení předchozího odevzdání

git show <commit> -- <path> | git apply -R

<commit> Lze jej nalézt v zobrazení opravy gerrit malými písmeny vedle textu Patch Set N. Pak normálně prosaďte kontrolu.

Odpojte falešné závislosti (změny rebase)

Příklad pro gerrit:5154

git fetch --all # Abychom měli jistotu, že máme nejnovější změny
git review -d Ie6e3c9be
git rebase -i gerrit/master # Odstraňte commity, kterých se chcete zbavit
git commit --amend # Přidejte poznámku
git review -f # -f smaže větev po odeslání

Vytvoření závislosti

Pokud se chystáte vytvořit opravu, která závisí na jiném (nesloučeném) patchi, nebo pokud jste opravu již odeslali, ale potřebujete opravit závislost (tj. aktuálně je založena na masteru a pokud by byla sloučena bez závislosti, přerušila by se, nebo by prosadila vaši změnu nad závislost), pak je to sekce, kterou hledáte. Pokud chcete opravit opravu, aby měla správnou závislost, spíše než vytvořit novou opravu se závislostí, ujistěte se, že vaše pracovní kopie je čistá (žádné nepotvrzené změny).

git fetch --all # Ujistěte se, že máte nejnovější informace z úložiště
git review -d 1234 # Gerrit číslo změny změny, kterou chcete jako závislost ("rodič")

Nyní se musíme ujistit, že patch má správný git-parent (git rodič). V závislosti na tom, zda vytváříte novou opravu nebo opravujete stávající opravu, existují dva různé způsoby, jak to provést. Pokud začínáte znovu:

git checkout -b bug/1234 # Vytvoří novou větev s aktuální větví (závislostí) jako nadřazenou
# Upravit soubory: proveďte změny
git add someFile.php some/other/file.js 
git commit # Odevzdejte svůj patch

git log -n5 --decorate --pretty=oneline # Ověřte, že posledních 5 položek protokolu nyní začíná:
# * (HEAD, bug/1234) tvá změna
# * (review/john/700) závislost
# * (gerrit/master)

git push gerrit HEAD:refs/for/master # nebo git přezkoumání (review)

Pokud potřebujete upravit svůj patch, aby měl správnou závislost:

git branch # Všimněte si větve review/*, která byla k tomu vytvořena, má před sebou "*".
git checkout bug/1234 # Podívejte se na místní tematickou větev vaší změny
git rebase review/john/7000 # Název větve změny gerrit, kterou jsme prověřili dříve

# V případě potřeby řešit konflikty,
# - použijte "git status" k zobrazení souborů, které vyžadují rozlišení
# - po opravě v editoru "git add filename" za každý z opravených souborů 

git rebase --continue

git log -n5 --decorate --pretty=oneline # Ověřte, že posledních 5 položek protokolu nyní začíná:
# * (HEAD, bug/1234) tvá změna
# * (review/john/700) závislost
# * (gerrit/master)

git push gerrit HEAD:refs/for/master # nebo git recenzi
Pokud chcete nastavit téma, použijte:
git push gerrit HEAD:refs/for/master%topic=myawesometopic

nebo

git review -t myawesometopic

Závislosti mezi projekty

Můžete také použít závislosti mezi projekty (např. rozšíření, které vyžaduje změnu jádra před sloučením). Toho dosáhnete přidáním např. Depends-On: I75b266da99e7dcb948f10d182e7f00bb3debfac6 v zápatí zprávy potvrzení. Použijte úplné ID změny ('I' + 40 znaky). Další podrobnosti najdete na stránce $1.

Příklady: Gerrit:539718, Gerrit:534888

Rozdělení odevzdání na menší

Podrobně vysvětleno na Gerrit/split a submitted change.

Odebrání místní pobočky po odeslání změny do Gerritu

you@yourmachine:~/puppet (production)$ git checkout -b mycoolfeature
you@yourmachine:~/puppet (mycoolfeature)$ vi foobar
you@yourmachine:~/puppet (mycoolfeature)$ git commit -a -m "Committing my cool feature"
you@yourmachine:~/puppet (mycoolfeature)$ git review -f
you@yourmachine:~/puppet (production)$

Pokud je příznak -f předán git-review, pokusí se odeslat změnu, a pokud uspěje, přepne se zpět do hlavní větve (v tomto případě produkční) a smaže větev funkcí.

Sloučení submodulu do nadřazeného projektu

Viz Submodul Gerrit/spojení.

Použití osobního pískoviště pro osobní pobočky

Gerrit umožňuje vytváření "osobních karanténních schránek", kde uživatelé mohou ukládat kód, na kterém pracují, v osobní větvi, která nevyžaduje zásah administrátora pro push. Viz Gerrit/osobní karanténa.

Řešení problémů

Problémy a jejich řešení naleznete v Gerrit/Řešení problémů.

Práce na existující sadě změn

Někdy chcete pracovat na sadě změn, kterou zahájil někdo jiný, a poté nahrát své změny jako novou sadu oprav.

# Všimněte si v gerritu URL odkaz na číslo sady změn, 
# Například https://gerrit.wikimedia.org/r/#/c/70112/, tedy 70112

# Ve své místní kopii hlavní větve stáhněte sadu změn 
# a přepněte se do této větve pomocí následujícího příkazu.
git review -d 70112

# Proveďte potřebné změny a potvrďte je jako dodatek, 
# přidání vhodných komentářů do zprávy odevzdání.
git commit --all --amend

# Prosaďte náplast na gerrit jako obvykle.
git review -R

# Ostatní vývojáři pak mohou aktualizovat svou místní kopii sady změn 
# s následujícím příkazem.
git review -d 70112
NEPOUŽÍVEJTE použijte příznak -m k zadání souhrnu odevzdání: Přepíše to předchozí souhrn a znovu vygeneruje Change-Id. Místo toho použijte textový editor ke změně souhrnu odevzdání, pokud je to nutné, a ponechte řádek Change-Id nedotčený. (Viz: Amending_a_change)

Ruční rebase (na větvi)

Tlačítko rebase v uživatelském rozhraní Gerrit občas nedokáže automaticky znovu založit změny na pracovní větvi a musíte provést rebase na příkazovém řádku:

# Nejprve si stáhněte aktuální sadu změn
$ git-review -d 424242
# Dále se ujistěte, že máte novou kopii cílové větve (v tomto případě "main")
$ git fetch origin main
# Poté znovu založte změny a opravte všechny konflikty, které mohou nastat
$ git rebase -i origin/main

Ruční rebase (na nadřazeném prvku)

Někdy není tlačítko rebase v uživatelském rozhraní Gerrit schopno automaticky znovu založit změnu v sadě změn nad její nadřazenou sadou a musíte provést změnu na příkazovém řádku.

$ PARENT=424242
$ CHILD=424243
# Nejprve získejte odkaz na nejnovější PS v rodičovské změně a zkontrolujte jej.
# Odkaz můžete získat z uživatelského rozhraní Gerrit: V nabídce 'More' (více) vyberte 'Download patch' (stáhnout opravu) a použijte odkaz 'Checkout' (pokladna), např.
$ git fetch "https://gerrit.wikimedia.org/r/operations/puppet" refs/changes/$i/${PARENT}/${PS} && git checkout FETCH_HEAD
# uložit tento bod ve vlastní větvi
$ git branch merge_${PARENT}
# v případě změny dítěte
$ git-review -d ${CHILD}
# Rebase na větev vytvořené dříve
$ git rebase -i merge_${PARENT}
# nahrajte změnu
$ git-review

Kontrolní kód

Prohlížení a komentování kódu

Základní funkce jsou vysvětleny ve výukovém programu Git a Gerrit.

Pár kousků navíc:

  • Rozbalovací nabídka Diff Against. Tato nabídka vám umožní změnit změny, které kontrolujete. To je užitečné, pokud jste zkontrolovali minulou sadu změn a chcete se ujistit, že vaše změny byly zohledněny. Namísto pročítání celého souboru změn, který se liší od základního odevzdání, můžete číst pouze rozdíly mezi aktuálním souborem změn a souborem změn, který jste zkontrolovali. Je tu také bonus: Své komentáře můžete vidět na levé straně. Pokud došlo k rebase commitu, bude v rozdílech odpad, ale můžete číst věci po jednotlivých sadách změn a stále to bude rychlejší.
  • Tlačítko Open All:
  • Otevře rozdíl(y) na nové kartě. Můžete dvakrát kliknout na řádek a okomentovat tento řádek a poté uložit koncept komentáře! Poté klikněte na "Nahoru ke změně" a vraťte se zpět na sadu změn.
  • U odevzdání, které obsahují změny mezer (tj. odsazení bloku, který byl změněn), je nejlepší vhodně nastavit předvolby rozdílů, aby bylo snazší je kontrolovat. Při prohlížení rozdílu je nahoře odkaz "Předvolby". Pak jsou zde dvě důležitá nastavení, na která je třeba se zaměřit. "Ignore Whitespace" a "Intraline Difference". Poslední (Intraline Difference) je zvláště užitečné, pokud byl blok kódu odsazen, protože toto nastavení zobrazí přidané karty samotné, což umožňuje rozpoznat další změny, aniž byste museli porovnávat každé slovo ve své mysli (viz snímek obrazovky).

Jak komentovat, kontrolovat a slučovat kód v Eclipse

Kontrola kódu v Eclipse

Jako alternativu k webovému rozhraní Gerrit můžete také zkontrolovat kód z Eclipse pomocí rámce pro správu úloh Mylyn. Chcete-li začít, stáhněte si a nainstalujte Eclipse a poté nainstalujte Mylyn z nabídky Install New Software (k 5. říjnu 2013 potřebujete aktualizační web snapshots, abyste mohli používat instalaci Wikimedia Gerrit). Při příštím spuštění Eclipse budete vyzváni k přidání úkolu pro Mylyn. Odtud budete muset nainstalovat konektor pro Gerrit, zadat https://gerrit.wikimedia.org/r/ jako adresu URL serveru a přidat své uživatelské jméno a heslo.

Rozhraní rozdílů / komentářů v Eclipse


Jak zkontrolovat a sloučit kód pomocí příkazového řádku

Pomocí dippy-bird můžete snadno provádět kontrolu a slučování příkazového řádku. Parametr dotazu je změna, se kterou se chcete vypořádat.

php dippy-bird.php --username=USERNAME --server=gerrit.wikimedia.org --port=29418 --action=submit --query=12345

Můžete to tedy použít ke schválení řady odevzdání:

#!/bin/bash
for i in {51541..51545}
do
   php dippy-bird.php --username=USERNAME --server=gerrit.wikimedia.org --port=29418 --action=submit --query=$i
done

Hromadné schvalování změn napříč repozitáři

Někdy možná budeme muset vygenerovat spoustu změn, například když provádíme podobnou změnu na všech našich úložištích. V minulosti se to stalo po migraci rozšíření MediaWiki na Git, protože jsme museli do každého úložiště přidat soubor na .gitreview.

Nejprve můžete požádat gerrit o seznam změn pomocí CLI! Užitečný alias:

alias gerrit='ssh -p 29418 gerrit.wikimedia.org gerrit'

Pak to použijte k provedení dotazu, jako jsou všechny otevřené změny v tématu dotgitreview:

gerrit query 'status:open topic:dotgitreview'

S trochou magie shellu můžete získat seznam čísel změn:

gerrit query 'status:open topic:dotgitreview' \
| egrep '^  number' | cut -d\  -f4- > CHANGES_NUMBERS

Poté je opakujte a vzdáleně schvalujte změny:

for i in `cat CHANGES_NUMBERS`; do gerrit review --verified=+1 --code-review=+2 --submit "$i,1"; done

Řešení problémů

Problémy a jejich řešení naleznete v Gerrit/Řešení problémů.

Jak vytvořit úložiště ("projekt Gerrit")

Viz "Žádost o nové úložiště Git". Je tam formulář k vyplnění. Mělo by být zpracováno velmi rychle (během několika dnů).

Další tipy

Řídicí panel projektu Gerrit

Viz také Dokumentační uživatelské panely.
Každé úložiště Gerrit má jeden nebo více řídicích panelů, které lze přizpůsobit. Každé úložiště Gerrit má jeden nebo více řídicích panelů, které lze přizpůsobit. Například kliknutím na "mediawiki/core" na stránce potvrzení související s jádrem MediaWiki se dostanete na https://gerrit.wikimedia.org/r/q/project:mediawiki%252Fcore.

V Gerritu se řídicí panely vytvářejí ve skupinách. Každé úložiště zdědí "výchozí" skupinu řídicích panelů z meta projektu "All-Projects". Ve výchozím nastavení je výchozí řídicí panel projektu "default:recent". V souboru project.config ve větvi refs/meta/config úložiště můžete změnit, který řídicí panel se ve výchozím nastavení používá. Podrobné pokyny jsou uvedeny níže.

Můžete si vybrat, že budete svůj řídicí panel spravovat na wiki místo přes úložiště Git.
Další informace najdete na Module:Gerrit dashboard.

Do souboru .gitconfig se doporučuje přidat následující aliasy. Další informace naleznete v Git/aliasy.

[alias]
	dashboards-checkout = "!f() { git fetch origin refs/meta/dashboards/teams:refs/meta/dashboards/teams && git checkout -B meta/dashboards/teams refs/meta/dashboards/teams; }; f"
	dashboards-review = "!f() { git push origin HEAD:refs/for/refs/meta/dashboards/teams; }; f"

	dash-co = dashboards-checkout
	dash-review = dashboards-review

Správa týmového panelu

  1. Pro týmy Wikimedie používáme k hostování týmových panelů nadřazené úložiště wikimedia.
  2. Klonujte úložiště, pokud jste to ještě neudělali, git clone ssh://<gerrit-username>@gerrit.wikimedia.org:29418/wikimedia
  3. Podívejte se na pobočku týmových panelů git dash-co
  4. Vytvořte (nebo upravte) konfigurační soubor řídicího panelu pro svůj tým (malá písmena s volitelnými pomlčkami, bez přípony souboru). Viz také dokumentace Gerritu.
  5. Uspořádejte své změny a proveďte místní potvrzení.
  6. Odešlete závazek ke kontrole git dash-review. Obecně je můžete sloučit sami, ale můžete také navrhnout změny, aby je mohli zkontrolovat ostatní, pokud chcete.

Přejděte na týmové panely Gerritu a klikněte na svůj řídicí panel. Nebo použijte následující vzor adresy URL:

https://gerrit.wikimedia.org/r/p/wikimedia/+/dashboard/teams:my-file-name

Chyba konfigurace/syntaxe se na příslušném řídicím panelu zobrazí jako 404. Soubory lze ověřit pomocí:

git config -f FILE --list

Přidat týmový panel do nabídky "Your"

Přidejte toto do nabídky "Your" v Gerrit pro snadný přístup:

  1. Navštivte nastavení Gerrit
  2. Přejděte do sekce "Menu" svého nastavení.
  3. Přidejte adresu URL /p/wikimedia/+/dashboard/teams:myteam (například) se štítkem, který vám dává smysl, například "My Team"
  4. Zvažte také přidání https://gerrit.wikimedia.org/r/admin/repos/wikimedia,dashboards jako "All Teams", abyste se snadno dostali na jiné řídicí panely.
  5. Klikněte na "Uložit změny" a znovu načtěte kartu prohlížeče.

Bookmarklet pro skrytí komentářů jenkins-bot

Spusťte tento JavaScript, abyste skryli všechny komentáře od jenkins-bota. Dobře se hodí "Skrýt označené komentáře", když se potřebujete ujistit, že byla vyřešena veškerá lidská zpětná vazba. Předpona javascript: pro přidání jako bookmarklet $ref.[1]

Array.from(document.querySelectorAll('[class*=messageBox]')).filter(box => box.querySelector('[class*=name]').textContent === 'jenkins-bot').forEach(box => box.style.display = 'none')

Odkazy na kontrolu kódu

Odkazy na staré revize SVN Code Review jsou uloženy v poznámkách k odevzdání. Mohou být načteny pro zobrazení v protokolu git pomocí následujícího příkazu:

git fetch origin refs/notes/commits:refs/notes/commits

Všimněte si, že to musí být provedeno samostatně pro každé úložiště git.

Skóre recenzí Gerrit

Jak je uvedeno výše, metadata kontroly kódu jsou uložena v poznámkách k odevzdání a lze je načíst pomocí:

git fetch gerrit refs/notes/review:refs/notes/review

Chcete-li je pravidelně získávat, přidejte do své konfigurace git.

Chcete-li je zobrazit v git log (podobné syntaxe fungují pro související nástroje):

git log --notes=review

ssh proxy ke gerritu

Pokud je gerrit pomalý, pokud jde o nahrávání záplat, může to být problém se sítí. (zejména pokud jste v Evropě, v určitou denní dobu) Pokud máte server / vm v USA nebo jiný proxy, který můžete použít, můžete přes něj přistupovat k gerritu.

Do svého ~/.ssh/config přidejte něco jako:

Host gerrit.wikimedia.org
  User aude
  Port 29418
  Hostname gerrit.wikimedia.org
  IdentityFile=~/.ssh/gerrit
  ProxyCommand nc -x 127.0.0.1:8081 %h %p

Poté se připojte k proxy (např. přes ssh, s volbou "-D 8081"). Pak by to mělo fungovat pro přístup ke gerritu pro nahrávání / stahování oprav a může být rychlejší.

Propojení Gerrit URL z wikin Wikimedie pomocí interní syntaxe odkazu

Pro odkaz na Gerrit revizi 1234 použijte [[gerrit:1234|revision 1234]]: revizi 1234.

Změna uživatele spojeného s potvrzením

Gerrit bude přijímat pouze záplaty odeslané pod vaší registrovanou e-mailovou adresou. Pokud máte více e-mailových adres, pod kterými se zavazujete (např. pokud máte nastavení git "work" a "home", které chcete mít oddělené), musíte lokálně aktualizovat adresu, pod kterou se zavazujete, když si koupíte repo .

git config user.email me@example.org

Pokud to však zapomenete udělat po odhlášení a provedení odevzdání, budete muset aktualizovat svou nakonfigurovanou e-mailovou adresu a poté toto potvrzení opravit takto:

git commit --amend --no-edit --reset-author

Pokud se chcete vyhnout tomu, abyste si to pamatovali, můžete ve svém .gitconfig provést následující:

[includeIf "gitdir:~/src/mediawiki/"]
        path = ~/.gitconfig-mediawiki

...a pak vytvořte .gitconfig-mediawiki:

# Cokoli zde bude načteno pouze v úložištích, která jsou odhlášena pod
# ~/src/mediawiki/
[user]
        email = me@example.org

Můžete tam přidat jakékoli další příkazy specifické pro vývoj mediawiki, které chcete. Dokud zkontrolujete cokoli související s mediawiki v adresáři ~/src/mediawiki, tento konfigurační soubor se načte a přepíše váš základní gitconfig.

Související odkazy

Poznámky pod čarou

  1. bookmarklets — záložky prohlížeče, které spouštějí JavaScript namísto otevírání webové stránky.