Jump to content

Git/Vytváření nových repozitářů

From mediawiki.org
< Git
This page is a translated version of the page Git/Creating new repositories and the translation is 100% complete.

Toto je navrženo jako rychlý a stručný návod, jak vytvořit nový Git repozitář hostovaný Wikimedia Foundation. Nástroj používaný od června 2012 je Gerrit a budete muset být jednou z osob, které mají povoleno vytvářet nové repozitáře.

Krok 0: Přečtěte si a pochopte dokumentaci Gerritu

Než se pokusíte vytvořit repozitáře, je nutné si přečíst a seznámit se se dvěma částmi dokumentace Gerritu:

Řízení přístupu Gerrit
Téměř vždy budete nastavovat oprávnění po vytvoření nového repozitáře, takže je důležité pochopit, co jednotlivá oprávnění znamenají a jak je používat.
Příkaz create-project
Repozitář budete vytvářet pomocí příkazového řádku, proto se ujistěte, že jste si přečetli a porozuměli různým možnostem dostupným prostřednictvím příkazového řádku (zejména přepínačům --parent a --owner!).

Krok 1: Vyberte název repozitáře

Než začnete, ujistěte se, že jste si vybrali název repozitáře, který nechcete měnit. Přejmenování repozitářů je téměř nemožné (od verze Gerrit v2.4), takže se před vytvořením repozitáře musíte ujistit, že jste s jeho názvem spokojeni. Snažte se, aby název byl krátký, ale zároveň smysluplný. Upozorňujeme, že jméno musí být složeno buď z latinských písmen (a-z), římských číslic (0-9), nebo pomlček (-).

Krok 2: Vyberte domovské umístění repozitáře

Pro účely organizace (a oprávnění) používáme pro umístění repozitářů názvy projektů nejvyšší úrovně (například mediawiki/* nebo operations/*). Nejlepší je nevytvářet nové repozitáře nejvyšší úrovně bez předchozího projednání, aby bylo možné repozitáře nejvyšší úrovně pojmenovat a nastavit způsobem, který je užitečný a popisný.

Například mediawiki/extensions/VisualEditor, kde mediawiki/extensions je prefix používaný pro jakékoli rozšíření MediaWiki. Pokud si nejste jisti, zeptejte se, například na wikitech-l.

Previously PHP libraries were created as top-level repositories, but now should be created under the mediawiki/libs/* namespace per T125031.

Krok 3: Vytvoření repozitáře

I když existuje způsob, jak vytvářet nové repozitáře prostřednictvím webového rozhraní Gerritu, nepoužívejte prosím toto grafické rozhraní. There's a couple of shortcomings[1], so please create the new repository via the command line. Řekněme, že vytváříme nový repozitář s názvem test/my-new-repo, takže příkaz by byl následující:

ssh -p 29418 gerrit.wikimedia.org gerrit create-project --require-change-id --owner=MyGroup --parent=test --description='"My super awesome repository"' test/my-new-repo

Řekněme, že vytváříme nový repozitář s názvem $1, takže příkaz by byl následující: Nastavení přepínače --parent je velmi důležité, abyste zdědili oprávnění z repozitáře, ve kterém jsou umístěna. Pokud nezadáte rodičovskou hodnotu, výchozí hodnota rodiče je All-Projects, což je pro většinu repozitářů téměř zbytečné. Pokud se ale spletete, lze rodiče upravit pomocí administrátora Gerritu.

Nastavení přepínače --owner je ještě důležitější, protože pokud nenastavíte vlastníka repozitáře na skupinu, jejímž jste členem (nebo jejímž je zamýšlený uživatel členem), nebudete moci vy (nebo oni) upravit oprávnění k nově vytvořenému repozitáři (a budete muset požádat administrátora Gerritu, aby to opravil).

Krok 4: Nastavení oprávnění

V některých případech můžete chtít upravit oprávnění nad rámec toho, co je zděděno z nadřazeného repozitáře. Jakmile je repozitář vytvořen (a vy jste vlastníkem), můžete upravit oprávnění prostřednictvím webového uživatelského rozhraní Gerrit. Budete chtít použít dokumentaci Gerritu o přístupových právech.

Po dokončení změny počátečních oprávnění nezapomeňte z oprávnění Vlastník odebrat skupinu Tvůrci projektů a skupin, protože ji po počáteční konfiguraci práv nepotřebují.

<span id="Step_5:_Create_.gitreview_file">

Krok 5: Vytvořte soubor .gitreview

Jakmile si vytvoříte nové repozitář, nezapomeňte do kořenového adresáře nového repozitáře přidat soubor .gitreview. To je obzvláště důležité pro rozšíření, protože pokud tak neučiníte, Translatewiki přestane fungovat. Soubor s adresou .gitreview by měl vypadat takto:

[gerrit]
host=gerrit.wikimedia.org
port=29418
project=foo/bar.git
defaultbranch=master
defaultrebase=0
track=1

Hostitel a port by se nikdy neměly měnit. Hodnota project by měla být změněna tak, aby odpovídala repozitáři, který jste právě vytvořili. defaultbranch je primární větev, do které budete odesílat kód – obvykle je to master. defaultrebase zakáže implicitní rebasing, který provádí git review před odesláním změny. Mnoho repozitářů považuje toto chování za otravné, takže ho tam obecně budete chtít zahrnout. Lze to ale bezpečně vynechat.

Krok 6: Zaregistrujte submodul rozšíření na mediawiki/{extensions,skins}.git

Pouze pro repozitáře s doménou nižší než mediawiki/extensions/ nebo mediawiki/skins/ zaregistrujte prosím submodul repozitáře v superprojektu mediawiki/extension.git, respektive mediawiki/skins.git. Toto používají různé nástroje a roboti pro řadu akcí, jako je nasazení kódu do Beta clusteru, synchronizace dat extension.json/composer.json nebo aktualizace závislostí knihoven prostřednictvím LibUp a další.

Import z existujícího repozitáře

V případě, že potřebujete importovat existující repozitář, budete muset k refs/* přidat následující oprávnění:

  • Push
  • Create Reference
  • Create Annotated Tag
  • Create Signed Tag
  • Forge Author Identity
  • Forge Committer Identity

Pak naklonujte zrcadlo existujícího repozitáře a odešlete všechny reference Gerritu:

$ git clone --mirror <path to existing repository> mirroring
$ cd mirroring
$ git remote add gerrit https://gerrit.wikimedia.org/r/<your gerrit repo name>
$ git push --mirror gerrit

Dojde k chybě ohledně hodnoty refs/meta/config, která obsahuje konfiguraci repozitáře Gerrit a nelze ji přepsat.

Poznámky pod čarou

  1. Main drawback is inability to set the Owner, which can leave you locked out of your own brand new repository