Gerrit/Pokročilé použití
Základní instrukce pro nastavení a provoz s Git a Gerritem jsou popsány ve výukovém programu (viz také jeho nejkratší verze).
![](http://upload.wikimedia.org/wikipedia/commons/thumb/0/0e/GitWorkflow.svg/300px-GitWorkflow.svg.png)
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.
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ístogit 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ďtegit 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.
- Jediný důvod by byl, abyste tomu mohli dát nové téma. Alternativně tedy po kontrole
Výsledkem je:
- https://gerrit.wikimedia.org/r/25756 je vytvořen pro kontrolu.
- Gerrit #Ib27792 zobrazuje původní i sloučené změny
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
.
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
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
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
-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
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.
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.
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
- Pro týmy Wikimedie používáme k hostování týmových panelů nadřazené úložiště
wikimedia
.- Pro zobrazení příkladů viz týmové panely Gerrit.
- Zdrojový kód najdete na wikimedia.git@refs/meta/dashboards/teams (Příklady formátu souboru a dotazů najdete v těchto souborech.)
- Viz Gerrit refs/meta/kontrola kódu řídicího panelu.
- Klonujte úložiště, pokud jste to ještě neudělali,
git clone ssh://<gerrit-username>@gerrit.wikimedia.org:29418/wikimedia
- Podívejte se na pobočku týmových panelů
git dash-co
- 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.
- Uspořádejte své změny a proveďte místní potvrzení.
- 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:
- Navštivte nastavení Gerrit
- Přejděte do sekce "Menu" svého nastavení.
- Přidejte adresu URL
/p/wikimedia/+/dashboard/teams:myteam
(například) se štítkem, který vám dává smysl, například "My Team" - 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.
- 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
- Git/Tipy
- Gerrit/rozdělení odeslané změny
- Gerrit/sledované projekty
- Gerrit/workflow/ops
- Všechny stránky pod Git/ a Gerrit/
- Výběr externích odkazů ve výukovém programu Git a Gerrit.
Poznámky pod čarou
- ↑ bookmarklets — záložky prohlížeče, které spouštějí JavaScript namísto otevírání webové stránky.