Jump to content

Gerrit/Výukový program TortoiseGit

From mediawiki.org
This page is a translated version of the page Gerrit/TortoiseGit tutorial and the translation is 100% complete.

Tento výukový program může pomoci uživatelům Windows, kteří přispívají zdrojovým kódem do Gerrit a gitu.

Instalace softwaru

  1. Stáhněte a nainstalujte TortoiseGit a jazykový balíček
  2. Stáhněte a nainstalujte Git pro Windows
    1. Vyberte možnost Integrace Průzkumníka Windows – Jednoduché položky kontextových nabídek: "Zde Git Bash", což je doporučeno.
      • Volitelně lze vybrat Další ikony pro plochu a panel Rychlé spuštění.
      • Výběr možnosti Git GUI zde je volitelný, ale my používáme TortoiseGit jako grafické uživatelské rozhraní.
        Na druhou stranu, s uvedením, že grafické uživatelské rozhraní v případě potřeby provede rychlé kompresní vyčištění lokálního repozitáře.
      • Nevybírejte kontextové menu Rozšíření (plugin git-cheetah) (k dispozici pouze u starších verzí)
      • Měli byste si ponechat asociace souborů pro *.git a *.sh.
      • Je na vás, abyste používali písma TrueType ve všech oknech konzoly.
    2. Ponechat výchozí složku Nabídka Start
    3. V dalším kroku vybereme "Run Git from Windows Command Prompt" (spustit Git z příkazového řádku systému Windows). Jinak se některé skripty nemusí spustit.
    4. Vyberte 3. položku s názvem 'Checkout as-is, commit as-is' (checkout jak je, potvrzení jako je) pro konverze zakončení řádku.

Nastavení prostředí

Vytvořte a publikujte svůj SSH klíč

  • Spusťte puTTYgen v nabídce Start nebo v souboru C:\Program Files\TortoiseGit\bin\puttygen.exe, vytvořte nový SSH klíč a uložte jej do souboru .ppk. Uložte také veřejný klíč.
  • Přihlaste se do gerrit:, použijte své uživatelské jméno a heslo z laboratoře
  • Přejděte do Nastavení > Veřejné klíče SSH a přidejte svůj veřejný klíč.
  • Přejděte do Nastavení > Identity a ověřte svou e-mailovou adresu a účet (identitu).

Naklonujte svou pracovní kopii

  • Klikněte pravým tlačítkem myši v Průzkumníku Windows a vyberte "Git clone" pro naklonování repozitáře do zadaného adresáře. Použijte URL z repozitáře Gerritu, např. https://gerrit.wikimedia.org/r/pywikibot/core pro jádro pywikibot .
  • Vyberte přepínač rekurzivní.
  • Pokud je zapnutá možnost "Načíst Putty Key", zrušte zaškrtnutí tohoto tlačítka, protože si ji probereme v dalším kroku.

Nastavení TortoiseGit

  • Klikněte pravým tlačítkem myši na váš repozitář a otevřete TortoiseGit > Nastavení
  • Vyberte Git > Vzdálené a vyberte vzdálený server "origin". Ověřte URL a vyberte svůj soukromý soubor puTTYkey .ppk, pokud jste tak neučinili dříve.
  • Zvolte Git (nebo Git > Config) a ověřte, zda se vaše jméno a e-mail v uživatelských informacích shodují s údaji vašeho účtu Gerrit.
  • Klikněte na Upravit globální .gitconfig a znovu ověřte, že vaše jméno a e-mail jsou stejné jako v Gerritu.
  • Zvolte Obecné > Nastavit položku nabídky Rozšířit a zrušte zaškrtnutí políčka Procházet reference.

Nastavení Gitu

Gerrit se používá pro pracovní postup revize a Git musí být instruován, aby změny odesílal do Gerritu, nikoli do oficiálního repozitáře Git. Existují dva způsoby, jak to udělat:

Používání TortoiseGitu

  • Znovu otevřete TortoiseGit > Nastavení a vyberte Git (nebo Git > Konfigurace)
  • Klikněte na tlačítko Upravit globální .gitconfig a přidejte následující sekce:
[url "ssh://<username>@gerrit.wikimedia.org:29418"]
	insteadOf = https://gerrit.wikimedia.org/r/
[branch]
	autosetuprebase = remote

Používání gitu bash

  • Klikněte pravým tlačítkem myši na váš repozitář a spusťte Git Bash Here (Git Bash zde)
  • Zadejte následující řádky:
    git config --global url."ssh://<username>@gerrit.wikimedia.org:29418".insteadOf "https://gerrit.wikimedia.org/r/"
    git config --global branch.autosetuprebase remote.

Instalace háčku commit-msg

  • Stáhněte si háček skript commit-msg z repozitáře a nainstalujte ho do složky <název projektu>/.git/hooks pomocí příkazu Uložit jako...
  • Poznámka Poznámka: .git je skrytá složka.
  • Související stránky: Gerrit/Alternativy ke git-review – pro další varianty k instalaci skriptu.

Práce s repozitářem

Všechny potřebné příkazy TortoiseGitu najdete v kontextové nabídce po kliknutí pravým tlačítkem myši na váš lokální repozitář a výběru možnosti TortoiseGit. Není nutné mít nainstalované Gerrit/Recenze Gitu .

Zobrazení protokolu repozitáře

Existují dva způsoby, jak zobrazit protokol repozitáře:

  • Použijte příkaz Zobrazit protokol
  • V kontextové nabídce použijte Vlastnosti systému Windows. Vyberte kartu Git a klikněte na tlačítko Zobrazit protokol.

Aktualizujte svůj repozitář

Pro aktualizaci lokálního repozitáře můžete postupovat podle následujících kroků:

  • Uložte si lokální změny pomocí příkazu Stash Save. Můžete zadat komentář nebo jej ignorovat. Dalším způsobem, jak uložit lokální změny, je jejich commit (potvrzení) do lokálního repozitáře, což bude vysvětleno později.
  • Stáhnout... změny ze vzdáleného repozitáře. Nechte zaškrtnuté políčko AutoLoad Putty Key. Můžete zaškrtnout políčko Launch Rebase after Fetch pro spuštění rebase nebo jej spustit ručně.
  • Přebazujte svůj repozitář, abyste zrychlili přesměrování lokální hlavní větve do její vzdálené větve. Použijte buď možnost Rebase..., nebo zaškrtněte políčko závislé na výše uvedeném obrázku. Poté v případě potřeby klikněte na Start (FastFwd) a po dokončení klikněte na Hotovo nebo na Zrušit.
  • Stash pop pro použití lokálních změn v pracovním stromu a odstranění stashu ze zásobníku.

Aktualizace externích prvků

  • Použijte k tomu příkaz Aktualizace submodulu.... To je potřeba např. pro zprávy i18n.

Vytvoření nové sady změn

Pokud chcete změnit kód a odeslat ho do vzdáleného repozitáře, postupujte takto:

  • Select Create Branch and enter a meaningfull branch name. Enable check box Switch to new branch and click OK. If you haven't enabled this check box you may use the Switch/Checkout... command after that. Creating a new branch is also available from context menu inside repository log.
  • Make your changes on your local repository and test it.
  • Commit you changeset to the local repository by Git Commit -> <your local branch name> command; this command is part of the windows context menu not the TortoiseGit context submenu.
  • Add a descriptive commit message into the message field for your commit. Refer Gerrit/Commit message guidelines.
  • Click View Patch>> at the bottom of the dialog window to see the patch and verify the changes.
  • Enable the checkbox Amend Last Commit if this change is a follow-up of an already commited patch of the same branch
  • Klick Commit
  • Push... to submit your patch to the remote repository for peer review, otherwise press close

Odeslání záplaty

  • Either use Push... of the commit dialog or use Push... from context menu.
  • Local:: Select you local branch to submit. Default is your actual branch
  • Remote: type refs/for/master for the destination. You may easily add a gerrit topic for your changeset by appending it separated by "%topic=", e.g. refs/for/master%topic=mytopic.
  • Press OK to submit your patch.

Stáhněte si záplatu k recenzi

Opravu od jiných vývojářů si můžete stáhnout do svého lokálního repozitáře a zkontrolovat ji podle následujících kroků:

  • First create a new local branch
  • Choose Fetch.... A new dialog window will be opened.
  • Select Arbitrary URL.
  • Enter the repository URL there, e.g. ssh://<username>@gerrit.wikimedia.org:29418/pywikibot/core
  • Enter the remote branch setting like refs/changes/<index no>/<change no>/<PS no> e.g. refs/changes/32/9332/1, where
    • <index no> are the last two digits of <change no>
    • <change no> is the gerrit change number
    • <PS no> is patch set number of that change
  • OK to fetch this patch set
  • Choose Git Bash here from windows context menu
  • type git cherry-pick FETCH_HEAD in the git window

Problémy, potíže a jejich alternativní řešení

Chybí ID změny v commitu

Nejprve nainstalujte háček commit-msg, viz výše.

Klonování Gitu se zasekává

If Git Clone... hangs after "Resolving deltas" hits 100% and you are using PuTTY: Open up PuTTY, load Default Settings, and set "Chokes on PuTTY's SSH-2 'winadj' requests" to "On" under Connection->SSH->Bugs. Then select Session, select Default Settings, and Save.

Související odkazy