Aller au contenu

Ugrađeni git

Restorm projekat napravljen je da živi u git repozitorijumu. Integracija ide dalje od običnog git commit-a: ona razume format i ume da razreši sukob na nivou poslovnih entiteta, a ne redova YAML-a.

Nema šta da se podešava. Čim se otvorena .restorm datoteka nađe u git repozitorijumu, git površine se aktiviraju.

Restorm koristi vaš lokalni git: nema unosa akreditiva ni upravljanja tokenima u aplikaciji. Pravilo je jednostavno — ako git push radi u vašem terminalu, radi i u Restormu. Git se pokreće sa isključenim upitima: repozitorijum koji bi tražio lozinku odmah zakaže uz git-ovu poruku, umesto da blokira interfejs.

Dva dugmeta, Pošalji i Preuzmi, od kojih svako nosi pastilu (tačku, nikada broj) kada ima nečega za slanje ili novije verzije za preuzimanje.

Meni Git u naslovnoj traci nudi iste akcije, plus Osveži, Vrati na verziju servera i Istorija.

GIT ćelija u statusnoj traci: Osveži, Pošalji i Preuzmi, pri čemu ova poslednja dva nose pastilu, pa Istorija. Otvoren je oblačić „Pošalji u repozitorijum”.

Modalni prozor za slanje prikazuje već sastavljenu poruku commita, generisanu deterministički iz strukturnog diff-a — bez jezičkog modela. Po jedan red za svaki izmenjen entitet (zahtev, scenario, fascikla, fascikla promenljivih), nikada po jedan red za svako polje.

  • Birač jezika poruke, nezavisan od jezika interfejsa, sa prekidačem da to postane podrazumevana vrednost.
  • Uredivi naslov, sa orijentacionim brojačem na 72 znaka.
  • Višelinijsko telo.

Potvrda niže: čuvanje, git add, commit, push.

Restorm najpre sačuva, pa preuzme i spoji.

Čisto spajanje: stablo i otvorene kartice osvežavaju se na licu mesta.

Sukob: otvara se prikaz razrešavanja sa četiri panela.

Prikaz razrešavanja sukoba sa četiri panela: lista sukoba levo, vaša verzija, verzija servera — URL-ovi koji se razilaze uokvireni su crveno — i panel „Razrešeno” popunjen nakon što je zadržana vaša verzija.

PanelSadržaj
Lista sukobaEntiteti u sukobu
Vaša verzijaSamo za čitanje
Njihova verzijaSamo za čitanje
RazrešenoUredivo — to je ono što će biti upisano

Važna stvar: svaki panel prikazuje entitet u njegovom pravom uređivaču — HTTP zahtev u HTTP uređivaču, scenario u uređivaču scenarija. Ne razrešavate markere <<<<<<< u YAML-u, već poredite dva zahteva.

Po jedno dugme „upotrebi ovu verziju” za svaku stranu, a polja koja se razilaze istaknuta su crveno — kada se razlikuje samo jedno polje, panel se otvara direktno na odgovarajućoj kartici.

API dokumentacija fascikle promenljivih razrešava se automatski (najnovija verzija pobeđuje).

Otkaži izvršava git merge --abort. Ako aplikaciju zatvorite usred razrešavanja, pri sledećem pokretanju biće vam ponuđeno da napustite spajanje.

Restorm periodično proverava da li postoji novija verzija — a da nikada sam ne spaja. Tri okidača: uočena izmena u .git, otvaranje datoteke i tajmer čija se učestalost podešava u Podešavanja ▸ Git (Off, 15 min, 30 min, 1 h, 4 h, 12 h, 24 h).

Obaveštenje „Ažuriranje je dostupno” tada nudi Pull now.

Ako se datoteka promenila na disku od njenog otvaranja, čuvanje se odbija, a Restorm vas pita da li da Ponovo učita ili da Zadrži vašu verziju.

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

Posledica: otvaranje pa ponovno čuvanje bez ijedne izmene ne proizvodi nikakav diff, a dve osobe koje dodaju isti zahtev na istom mestu proizvode entitete koje spajanje ume da upari.

Git ▸ Istorija otvara prikaz sa dva panela: listu commitova sa žlebom grana i detalj desno. Kontekstni meni commita omogućava da preuzmete tu verziju.

Četiri alata, u izdanju Pro: git_commit_push (korak 1 od 2 — vraća token pregleda, naslov, telo i diff po entitetu, bez ijednog upisa), git_confirm_push (korak 2 od 2 — odbija se ako se projekat promenio od pregleda), git_pull i git_resolve_conflicts.

Podela na dva koraka je namerna: agent ne može da pošalje a da diff prethodno nije bio prikazan.