Aller au contenu

Git-i i integruar

Një projekt Restorm është bërë të jetojë brenda një depoje git. Integrimi shkon më tej se një git commit i thjeshtë: ai e kupton formatin dhe di ta zgjidhë një konflikt në nivelin e entiteteve të biznesit, jo në nivelin e rreshtave të YAML-it.

Nuk ka asgjë për të konfiguruar. Sapo skedari .restorm i hapur ndodhet brenda një depoje git, sipërfaqet git aktivizohen.

Restorm përdor git-in tuaj lokal: pa kredenciale për të shkruar dhe pa menaxhim token-ash brenda aplikacionit. Rregulli është i thjeshtë — nëse git push funksionon në terminalin tuaj, funksionon edhe në Restorm. Git-i niset me kërkesat e çaktivizuara: një depo që do të kërkonte një fjalëkalim dështon menjëherë me mesazhin e git-it, në vend që të bllokojë ndërfaqen.

Dy butona, Dërgo dhe Merr, ku secili mban një pastilë (një pikë, kurrë një numër) kur ka diçka për të dërguar ose një version më të freskët për të marrë.

Menuja Git e shiritit të titullit ofron të njëjtat veprime, plus Rifresko, Rikthe te versioni i serverit dhe Historiku.

Qeliza GIT e shiritit të gjendjes: Rifresko, Dërgo dhe Merr, ku dy të fundit mbajnë nga një pastilë, pastaj Historiku. Këshillëza «Dërgo te depozitari» është e hapur.

Dritarja modale e push-it shfaq një mesazh commit-i tashmë të shkruar, të gjeneruar në mënyrë përcaktuese nga diff-i strukturor — pa asnjë model gjuhësor. Një rresht për çdo entitet të modifikuar (kërkesë, skenar, dosje, dosje variablash), kurrë një rresht për çdo fushë.

  • Një zgjedhës gjuhe i mesazhit, i pavarur nga gjuha e ndërfaqes, me një çelës për ta bërë atë vlerën e parazgjedhur.
  • Një titull i modifikueshëm, me një numërues tregues në 72 karaktere.
  • Një trup shumërreshtësh.

Validimi zinxhiron: ruajtje, git add, commit, push.

Restorm fillimisht ruan, pastaj merr dhe bashkon.

Bashkim i pastër: pema dhe skedat e hapura rifreskohen në vend.

Konflikt: hapet një pamje zgjidhjeje me katër panele.

Pamja e zgjidhjes së konfliktit me katër panele: lista e konflikteve majtas, versioni juaj, versioni i serverit — URL-të që ndryshojnë janë të rrethuara me të kuqe — dhe paneli «I zgjidhur» i plotësuar pasi është mbajtur versioni juaj.

PaneliPërmbajtja
Lista e konflikteveEntitetet në konflikt
Versioni juajVetëm për lexim
Versioni i tyreVetëm për lexim
I zgjidhurI modifikueshëm — ky është ai që do të shkruhet

Pika e rëndësishme: çdo panel e shfaq entitetin brenda editorit të vet të vërtetë — një kërkesë HTTP brenda editorit HTTP, një skenar brenda editorit të skenarëve. Ju nuk zgjidhni shenjues <<<<<<< brenda YAML-it, ju krahasoni dy kërkesa.

Një buton «përdor këtë version» për çdo anë, dhe fushat që ndryshojnë theksohen me të kuqe — kur ndryshon vetëm një fushë, paneli hapet drejt e te skeda përkatëse.

Dokumentacioni i API-së i një dosjeje variablash zgjidhet automatikisht (fiton versioni më i freskët).

Anulo ekzekuton një git merge --abort. Nëse e mbyllni aplikacionin në mes të zgjidhjes, në nisjen pasuese ju propozohet ta braktisni bashkimin.

Restorm kontrollon periodikisht nëse ekziston një version më i freskët — pa bashkuar kurrë vetë. Tre nisës: një modifikim i vërejtur brenda .git, hapja e një skedari dhe një kohëmatës frekuenca e të cilit rregullohet te Parametrat ▸ Git (Off, 15 min, 30 min, 1 orë, 4 orë, 12 orë, 24 orë).

Një njoftim «Përditësim i disponueshëm» propozon atëherë Pull now.

Nëse skedari ka ndryshuar në disk qëkur është hapur, ruajtja refuzohet dhe Restorm ju kërkon të Ringarkoni ose të Mbani versionin tuaj.

Dy veti të formatit, të përshkruara te Projektet dhe skedarët .restorm: një renditje kanonike e çelësave dhe identifikues të nxjerrë në mënyrë të qëndrueshme.

Pasoja: hapja dhe rimbajtja pa ndryshuar asgjë nuk prodhon asnjë diff, dhe dy persona që shtojnë të njëjtën kërkesë në të njëjtin vend prodhojnë entitete që bashkimi di t’i çiftëzojë.

Git ▸ Historiku hap një pamje me dy panele: lista e commit-eve me një ulluk degësh dhe hollësia në të djathtë. Menuja kontekstuale e një commit-i lejon të merret ai version.

Katër vegla, në botimin Pro: git_commit_push (hapi 1 nga 2 — kthen një token rishikimi, titullin, trupin dhe diff-in për çdo entitet, pa shkruar asgjë), git_confirm_push (hapi 2 nga 2 — refuzohet nëse projekti ka ndryshuar qëkur është bërë rishikimi), git_pull dhe git_resolve_conflicts.

Ndarja në dy hapa është e qëllimshme: një agjent nuk mund të bëjë push pa u paraqitur më parë një diff.