Přeskočit na obsah

Integrovaný git

Projekt Restorm je udělaný tak, aby žil v repozitáři git. Integrace jde dál než prostý git commit: rozumí formátu a umí vyřešit konflikt na úrovni obchodních entit, nikoli řádků YAML.

Není co nastavovat. Jakmile se otevřený soubor .restorm nachází v repozitáři git, plochy pro git se aktivují.

Restorm používá váš lokální git: nezadávají se žádné přihlašovací údaje ani se v aplikaci nespravují tokeny. Pravidlo je jednoduché — pokud git push funguje ve vašem terminálu, funguje i v aplikaci Restorm. Git se spouští s vypnutými výzvami: repozitář, který by chtěl heslo, okamžitě selže se zprávou od gitu, místo aby zablokoval rozhraní.

Dvě tlačítka, Odeslat a Stáhnout, přičemž každé nese odznak (tečku, nikdy číslo), když je co odeslat nebo je ke stažení novější verze.

Nabídka Git v záhlaví okna nabízí tytéž akce a k nim Obnovit, Obnovit na verzi serveru a Historii.

Buňka GIT ve stavovém řádku: Obnovit, Odeslat a Stáhnout, přičemž obě poslední nesou odznak, a poté Historie. Otevřený popisek „Odeslat do repozitáře“.

Dialog odeslání zobrazuje už napsanou zprávu commitu, vygenerovanou deterministicky ze strukturálního rozdílu — bez jazykového modelu. Jeden řádek na každou změněnou entitu (požadavek, scénář, složka, složka proměnných), nikdy jeden řádek na pole.

  • Přepínač jazyka zprávy, nezávislý na jazyce rozhraní, s přepínačem, který z něj udělá výchozí volbu.
  • Editovatelný titulek, s orientačním čítačem na 72 znacích.
  • Víceřádkové tělo.

Potvrzení spustí sled: uložit, git add, commit, push.

Restorm nejprve uloží, potom stáhne a sloučí.

Čisté sloučení: strom i otevřené karty se obnoví na místě.

Konflikt: otevře se pohled na řešení se čtyřmi panely.

Pohled na řešení konfliktu se čtyřmi panely: vlevo seznam konfliktů, vaše verze, verze serveru — rozcházející se URL jsou orámované červeně — a panel „Vyřešeno“ vyplněný poté, co byla ponechána vaše verze.

PanelObsah
Seznam konfliktůEntity v konfliktu
Vaše verzeJen pro čtení
Jejich verzeJen pro čtení
VyřešenoEditovatelný — právě tohle se zapíše

Podstatný bod: každý panel zobrazuje entitu v jejím skutečném editoru — požadavek HTTP v editoru HTTP, scénář v editoru scénářů. Neřešíte značky <<<<<<< v YAML, porovnáváte dva požadavky.

Na každé straně je tlačítko „použít tuto verzi“ a rozcházející se pole jsou zvýrazněná červeně — liší-li se jediné pole, panel se otevře rovnou na příslušné kartě.

Dokumentace API složky proměnných se vyřeší automaticky (vítězí novější verze).

Zrušit provede git merge --abort. Zavřete-li aplikaci uprostřed řešení, při příštím spuštění vám nabídne sloučení opustit.

Restorm periodicky kontroluje, zda existuje novější verze — aniž by kdy sloučil sám od sebe. Tři spouštěče: zaznamenaná změna v .git, otevření souboru a časovač, jehož frekvence se nastavuje v Nastavení ▸ Git (Off, 15 min, 30 min, 1 h, 4 h, 12 h, 24 h).

Oznámení „K dispozici je aktualizace“ pak nabídne Pull now.

Pokud se soubor od svého otevření na disku změnil, uložení se odmítne a Restorm vás vyzve, abyste zvolili Znovu načíst, nebo Ponechat vaši verzi.

Za to mohou dvě vlastnosti formátu, popsané na stránce Projekty a soubory .restorm: kanonické pořadí klíčů a stabilně odvozené identifikátory.

Důsledek: otevřít a znovu uložit bez jakékoli změny nevytvoří žádný diff a dva lidé, kteří přidají stejný požadavek na stejné místo, vytvoří entity, jež slučování umí spárovat.

Git ▸ Historie otevře pohled o dvou panelech: seznam commitů s pruhem větví a napravo detail. Kontextová nabídka commitu umožňuje tuto verzi obnovit.

Čtyři nástroje, v edici Pro: git_commit_push (krok 1 ze 2 — vrací token revize, titulek, tělo a rozdíl po entitách, aniž by cokoli zapsal), git_confirm_push (krok 2 ze 2 — odmítnut, pokud se projekt od revize změnil), git_pull a git_resolve_conflicts.

Rozdělení na dva kroky je záměrné: agent nemůže odeslat, aniž by nejprve předložil rozdíl.