Ga naar inhoud

Geïntegreerde git

Een Restorm-project is gemaakt om in een git-repository te leven. De integratie gaat verder dan een simpele git commit: ze begrijpt het formaat en kan een conflict oplossen op het niveau van de functionele entiteiten, niet van de YAML-regels.

Er valt niets in te stellen. Zodra het geopende .restorm-bestand in een git-repository staat, worden de git-oppervlakken actief.

Restorm gebruikt uw lokale git: u hoeft geen inloggegevens in te voeren en er worden geen tokens in de applicatie beheerd. De regel is eenvoudig — als git push in uw terminal werkt, werkt het in Restorm. Git wordt gestart met de prompts uitgeschakeld: een repository die om een wachtwoord vraagt, mislukt direct met het bericht van git, in plaats van de interface te blokkeren.

Twee knoppen, Pushen en Pullen, elk met een badge (een stip, nooit een getal) zodra er iets te versturen valt of er een nieuwere versie te halen is.

Het menu Git in de titelbalk biedt dezelfde acties, plus Vernieuwen, Terugzetten naar serverversie en Geschiedenis.

De GIT-cel in de statusbalk: Vernieuwen, Pushen en Pullen, waarbij die laatste twee elk een badge dragen, en daarna Geschiedenis. De tooltip “Naar de repository pushen” staat open.

Het pushdialoogvenster toont een commitbericht dat al is opgesteld, dat deterministisch uit de structurele diff wordt gegenereerd — zonder taalmodel. Eén regel per gewijzigde entiteit (verzoek, scenario, map, omgevingsmap), nooit één regel per veld.

  • Een taalkiezer voor het bericht, los van de taal van de interface, met een schakelaar om er de standaardwaarde van te maken.
  • Een bewerkbare titel, met een indicatieve teller bij 72 tekens.
  • Een body over meerdere regels.

Bevestigen doet achtereenvolgens: opslaan, git add, commit, push.

Restorm slaat eerst op, en haalt en merget daarna.

Schone merge: de boom en de open tabbladen verversen ter plekke.

Conflict: er opent een oplossingsweergave met vier panelen.

De conflictoplossingsweergave met vier panelen: links de lijst met conflicten, uw versie, de serverversie — de URL's die uiteenlopen zijn rood omkaderd — en het paneel “Opgelost”, gevuld nadat u uw eigen versie hebt gekozen.

PaneelInhoud
Lijst met conflictenDe entiteiten die in conflict zijn
Uw versieAlleen-lezen
Hun versieAlleen-lezen
OpgelostBewerkbaar — dit is wat wordt weggeschreven

Het belangrijkste punt: elk paneel toont de entiteit in haar echte editor — een HTTP-verzoek in de HTTP-editor, een scenario in de scenario-editor. U lost geen <<<<<<<-markeringen in YAML op, u vergelijkt twee verzoeken.

Per kant is er een knop “deze versie gebruiken”, en de velden die uiteenlopen worden rood gemarkeerd — als er slechts één veld verschilt, opent het paneel direct op het betreffende tabblad.

De API-documentatie van een omgevingsmap wordt automatisch opgelost (de meest recente versie wint).

Annuleren voert een git merge --abort uit. Als u de applicatie midden in een oplossing afsluit, biedt Restorm bij de volgende start aan om de merge af te breken.

Restorm controleert periodiek of er een nieuwere versie bestaat — zonder ooit zelf te mergen. Er zijn drie triggers: een geconstateerde wijziging in .git, het openen van een bestand, en een timer waarvan u de frequentie instelt in Instellingen ▸ Git (Off, 15 min, 30 min, 1 u, 4 u, 12 u, 24 u).

Een melding “Update beschikbaar” biedt dan Pull now aan.

Als het bestand op schijf is veranderd sinds u het opende, wordt het opslaan geweigerd en vraagt Restorm u om Opnieuw laden of Uw versie behouden.

Twee eigenschappen van het formaat, beschreven in Projecten en .restorm-bestanden: een canonieke sleutelvolgorde, en stabiel afgeleide identificatoren.

Het gevolg: openen en opnieuw opslaan zonder iets te wijzigen levert geen enkele diff op, en twee mensen die hetzelfde verzoek op dezelfde plek toevoegen, produceren entiteiten die de merge aan elkaar kan koppelen.

Git ▸ Geschiedenis opent een weergave met twee panelen: de lijst met commits met een goot voor de branches, en rechts het detail. Via het contextmenu van een commit kunt u die versie ophalen.

Vier tools, in de Pro-editie: git_commit_push (stap 1 van 2 — geeft een reviewtoken, de titel, de body en de diff per entiteit terug, zonder iets te schrijven), git_confirm_push (stap 2 van 2 — wordt geweigerd als het project sinds de review is gewijzigd), git_pull en git_resolve_conflicts.

De opsplitsing in twee stappen is met opzet: een agent kan niet pushen zonder dat er eerst een diff is voorgelegd.