Gerrit/Výukový program TortoiseGit
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
- Stáhněte a nainstalujte TortoiseGit a jazykový balíček
- Stáhněte a nainstalujte Git pro Windows
- 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.
- Ponechat výchozí složku Nabídka Start
- 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.
- Vyberte 3. položku s názvem 'Checkout as-is, commit as-is' (checkout jak je, potvrzení jako je) pro konverze zakončení řádku.
- Vyberte možnost Integrace Průzkumníka Windows – Jednoduché položky kontextových nabídek: "Zde Git Bash", což je doporučeno.
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
- Right-click in Windows Explorer, and select "Git clone" to clone a repository to the given directory. Use the URL from gerrit repository e.g.
https://gerrit.wikimedia.org/r/pywikibot/corefor the pywikibot core. - 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 vyberteGit(neboGit > 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
- Download the commit-msg hook script from the repo and install it into the
<project name>/.git/hooksfolder using Save As...
Poznámka: .gitis a hidden folder.- See also: Gerrit/Alternativy ke git-review - for other variants to install the script.
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:
- Use the
Show logcommand or - Use Windows
Propertiesin the context menu. SelectGittab and choose Show log button.
Aktualizujte svůj repozitář
Pro aktualizaci lokálního repozitáře můžete postupovat podle následujících kroků:
- Stash your local changes with
Stash Savecommand. You may enter a comment or ignore it. Another way to save your local changes is to commit them to the local repository, which will explained later. Pull...changes from remote repository. KeepAutoLoad Putty Keychecked. You may checkLaunch Rebase after Fetchto start rebase or start it manually.- Rebase your repository to fast forward local master branch to its remote branch. Either use
Rebase...option or check the depending checkbox above. Then click Start (FastFwd) if needed and klick Done when you are finished or Abort. Stash popto apply your local changes to the working tree and remove the stash from the stack.
Aktualizace externích prvků
- Use
Submodule Update...for it. This is needed e.g. for i18n messages.
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 Branchand enter a meaningfull branch name. Enable check boxSwitch to new branchand click OK. If you haven't enabled this check box you may use theSwitch/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 Commitif 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 branchRemote:typerefs/for/masterfor 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 herefrom windows context menu - type
git cherry-pick FETCH_HEADin 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.