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

  • 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/core for 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 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

  • Download the commit-msg hook script from the repo and install it into the <project name>/.git/hooks folder using Save As...
  • Poznámka Poznámka: .git is 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 log command or
  • Use Windows Properties in the context menu. Select Git tab 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 Save command. 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. Keep AutoLoad Putty Key checked. You may check Launch Rebase after Fetch to 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 pop to 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 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