Aller au contenu

Ugrađeni git

Restorm projekt napravljen je da živi u git repozitoriju. Integracija ide dalje od pukog git commit: razumije format i zna razriješiti sukob na razini poslovnih entiteta, a ne redaka YAML-a.

Nema se što podešavati. Čim se otvorena datoteka .restorm nađe u git repozitoriju, git površine se aktiviraju.

Restorm koristi vaš lokalni git: nema unosa vjerodajnica ni upravljanja tokenima u aplikaciji. Pravilo je jednostavno — ako git push radi u vašem terminalu, radi i u Restormu. Git se pokreće s isključenim upitima: repozitorij koji bi tražio lozinku odmah zakaže uz gitovu poruku, umjesto da blokira sučelje.

Dva gumba, Pošalji i Preuzmi, od kojih svaki nosi pločicu (točku, nikada broj) kada ima nešto za slanje ili noviju verziju za preuzimanje.

Izbornik Git u naslovnoj traci nudi iste radnje, plus Osvježi, Vrati na verziju poslužitelja i Povijest.

GIT ćelija u traci stanja: Osvježi, Pošalji i Preuzmi, pri čemu potonja dva nose pločicu, zatim Povijest. Otvoren je opis alata „Pošalji u repozitorij”.

Modalni prozor za push prikazuje već sastavljenu poruku commita, generiranu deterministički iz strukturne razlike — bez jezičnog modela. Po jedan redak za svaki izmijenjeni entitet (zahtjev, scenarij, mapa, mapa okruženja), nikada po jedan redak za svako polje.

  • Birač jezika poruke, neovisan o jeziku sučelja, s prekidačem za postavljanje kao zadanog.
  • Uredivi naslov, s indikativnim brojačem na 72 znaka.
  • Višeredno tijelo.

Potvrda ulančava: spremanje, git add, commit, push.

Restorm najprije sprema, pa zatim preuzima i spaja.

Čisto spajanje: stablo i otvorene kartice osvježavaju se na mjestu.

Sukob: otvara se prikaz razrješavanja s četiri panela.

Prikaz razrješavanja sukoba s četiri panela: popis sukoba lijevo, vaša verzija, verzija poslužitelja — URL-ovi koji se razilaze uokvireni su crvenom — i panel „Razriješeno” popunjen nakon zadržavanja vaše verzije.

PanelSadržaj
Popis sukobaEntiteti u sukobu
Vaša verzijaSamo za čitanje
Njihova verzijaSamo za čitanje
RazriješenoUredivo — to će biti zapisano

Važna točka: svaki panel prikazuje entitet u njegovu pravom uređivaču — HTTP zahtjev u HTTP uređivaču, scenarij u uređivaču scenarija. Ne razrješavate oznake <<<<<<< u YAML-u, nego uspoređujete dva zahtjeva.

Po jedan gumb „upotrijebi ovu verziju” za svaku stranu, a polja koja se razilaze istaknuta su crvenom — kada se razlikuje samo jedno polje, panel se otvara izravno na dotičnoj kartici.

API dokumentacija mape okruženja razrješava se automatski (prevladava novija verzija).

Odustani izvodi git merge --abort. Ako aplikaciju zatvorite usred razrješavanja, pri sljedećem će vam pokretanju biti ponuđeno napuštanje spajanja.

Restorm povremeno provjerava postoji li novija verzija — a da nikada ne spaja sam od sebe. Tri okidača: uočena izmjena u .git, otvaranje datoteke i mjerač vremena čija se učestalost podešava u Postavke ▸ Git (Off, 15 min, 30 min, 1 h, 4 h, 12 h, 24 h).

Obavijest „Dostupno je ažuriranje” tada nudi Pull now.

Ako se datoteka na disku promijenila otkad je otvorena, spremanje se odbija, a Restorm vas pita želite li Ponovno učitati ili Zadržati svoju verziju.

Dva svojstva formata, opisana u članku Projekti i datoteke .restorm: kanonski poredak ključeva i stabilno izvedeni identifikatori.

Posljedica: otvaranje pa ponovno spremanje bez ijedne izmjene ne proizvodi nikakvu razliku, a dvije osobe koje dodaju isti zahtjev na isto mjesto proizvode entitete koje spajanje zna upariti.

Git ▸ Povijest otvara prikaz s dva okna: popis commitova sa žlijebom grana i pojedinosti desno. Kontekstni izbornik commita omogućuje dohvat te verzije.

Četiri alata, u izdanju Pro: git_commit_push (korak 1 od 2 — vraća token pregleda, naslov, tijelo i razliku po entitetu, bez ikakva zapisivanja), git_confirm_push (korak 2 od 2 — odbija se ako se projekt promijenio od pregleda), git_pull i git_resolve_conflicts.

Podjela u dva koraka namjerna je: agent ne može poslati promjene a da razlika nije prethodno predočena.