Sari la conținut

Git integrat

Un proiect Restorm este făcut ca să trăiască într-un depozit git. Integrarea merge mai departe decât un simplu git commit: ea înțelege formatul și știe să rezolve un conflict la nivelul entităților de business, nu al liniilor de YAML.

Nu este nimic de configurat. De îndată ce fișierul .restorm deschis se află într-un depozit git, suprafețele git se activează.

Restorm folosește git-ul dumneavoastră local: niciun identificator de introdus, nicio gestionare de tokenuri în aplicație. Regula este simplă — dacă git push funcționează în terminalul dumneavoastră, funcționează și în Restorm. Git este lansat cu solicitările dezactivate: un depozit care ar cere o parolă eșuează imediat, cu mesajul de la git, în loc să blocheze interfața.

Două butoane, Trimite și Extrage, fiecare purtând o pastilă (un punct, niciodată un număr) atunci când există ceva de trimis sau o versiune mai recentă de extras.

Meniul Git din bara de titlu oferă aceleași acțiuni, plus Reîmprospătare, Resetează la versiunea serverului și Istoric.

Celula GIT din bara de stare: Reîmprospătare, Trimite și Extrage, ultimele două purtând fiecare o pastilă, apoi Istoric. Indiciul „Trimite spre depozit” este deschis.

Fereastra modală de push afișează un mesaj de commit deja redactat, generat determinist din diferența structurală — fără niciun model de limbaj. O linie pentru fiecare entitate modificată (cerere, scenariu, folder, folder de variabile), niciodată o linie pentru fiecare câmp.

  • Un selector de limbă a mesajului, independent de limba interfeței, cu un comutator pentru a-l face valoare implicită.
  • Un titlu editabil, cu un contor orientativ la 72 de caractere.
  • Un corp pe mai multe linii.

Confirmarea înlănțuie: salvare, git add, commit, push.

Restorm salvează mai întâi, apoi extrage și contopește.

Contopire curată: arborele și filele deschise se reîmprospătează pe loc.

Conflict: se deschide o vizualizare de rezolvare cu patru panouri.

Vizualizarea de rezolvare a conflictului cu patru panouri: lista conflictelor în stânga, versiunea dumneavoastră, versiunea serverului — URL-urile care diferă sunt încadrate cu roșu — și panoul „Rezolvat”, completat după păstrarea versiunii dumneavoastră.

PanouConținut
Lista conflictelorEntitățile aflate în conflict
Versiunea dumneavoastrăNumai pentru citire
Versiunea lorNumai pentru citire
RezolvatEditabil — este ceea ce va fi scris

Punctul important: fiecare panou afișează entitatea în editorul său adevărat — o cerere HTTP în editorul HTTP, un scenariu în editorul de scenarii. Nu rezolvați marcaje <<<<<<< în YAML, ci comparați două cereri.

Un buton „folosește această versiune” pentru fiecare parte, iar câmpurile care diferă sunt evidențiate cu roșu — când diferă un singur câmp, panoul se deschide direct pe fila în cauză.

Documentația de API a unui folder de variabile se rezolvă automat (versiunea cea mai recentă câștigă).

Anulare execută un git merge --abort. Închiderea aplicației în plină rezolvare face ca, la lansarea următoare, să vi se propună abandonarea contopirii.

Restorm verifică periodic dacă există o versiune mai recentă — fără să contopească niciodată de la sine. Trei declanșatoare: o modificare observată în .git, deschiderea unui fișier și un cronometru a cărui frecvență se reglează în Setări ▸ Git (Off, 15 min, 30 min, 1 h, 4 h, 12 h, 24 h).

O notificare „Actualizare disponibilă” propune atunci Pull now.

Dacă fișierul s-a schimbat pe disc de la deschiderea sa, salvarea este refuzată și Restorm vă cere să alegeți între Reîncarcă și Păstrează versiunea dumneavoastră.

Două proprietăți ale formatului, descrise în Proiecte și fișiere .restorm: o ordine canonică a cheilor și identificatori derivați în mod stabil.

Consecință: deschiderea și apoi resalvarea fără nicio modificare nu produce nicio diferență, iar două persoane care adaugă aceeași cerere în același loc produc entități pe care contopirea știe să le împerecheze.

Git ▸ Istoric deschide o vizualizare cu două panouri: lista commiturilor, cu un jgheab de ramuri, și detaliul în dreapta. Meniul contextual al unui commit permite recuperarea acelei versiuni.

Patru instrumente, în ediția Pro: git_commit_push (etapa 1 din 2 — returnează un token de revizuire, titlul, corpul și diferența pentru fiecare entitate, fără să scrie nimic), git_confirm_push (etapa 2 din 2 — refuzată dacă proiectul s-a schimbat de la revizuire), git_pull și git_resolve_conflicts.

Împărțirea în două etape este deliberată: un agent nu poate trimite fără ca o diferență să fi fost prezentată mai întâi.