Sapling, Gitiga ühilduv lähtekoodi juhtimissüsteem

sapid

Sapling rõhutab kasutusmugavust, suurendades samal ajal maailma suurimaid hoidlaid.

Facebook avalikustas ajaveebipostituse kaudu lähtekoodi haldussüsteemi Taim kasutatakse ettevõtte sisemiste projektide väljatöötamisel. Süsteem eesmärk on pakkuda versioonihaldusliidest tuttav, mis võib ulatuda väga suurte hoidlateni, mis hõlmavad kümneid miljoneid faile, tagatisi ja harusid.

Süsteemi põhiidee seisneb selles, et suheldes serveri spetsiaalse osaga, mis pakub hoidla salvestusruumi, kõik toimingud ulatuvad failide arvu järgi mida tegelikult kasutatakse koodis, mille kallal arendaja töötab, ja need ei sõltu kogu hoidla kogumahust.

Näiteks võib arendaja kasutada ainult väikest osa väga suure hoidla koodist ja ainult see väike osa, mitte kogu hoidla, kantakse nende süsteemi üle. Töökataloog täidetakse dünaamiliselt, kuna juurdepääs hoidla failidele, mis ühelt poolt võimaldab teil oluliselt kiirendada tööd oma koodiosaga, kuid teisest küljest aeglustab seda, kui sellele juurde pääsete. esimest korda uute failide juurde ja nõuab pidevat juurdepääsu võrgule (pakkudes eraldi ja võrguühenduseta sidumise ettevalmistamise režiimis).

Lisaks adaptiivsele andmete laadimisele Sapling rakendab ka optimeerimisi, mille eesmärk on vähendada muudatuste ajalooga teabekoormust. (näiteks 3/4 Linuxi tuumaga hoidlas olevatest andmetest on muudatuste ajalugu).

Muudatuste ajalooga tõhusaks töötamiseks salvestatakse sellega seotud andmed segmenteeritud vaates, mis võimaldab serverist alla laadida eraldi graafiku osi. Klient saab küsida serverilt infot mitme kinnituse seose kohta ja laadida alla vaid vajaliku osa graafikust.

Projekti on arendatud viimased 10 aastat ja loodi probleemide lahendamiseks väga suurte monoliitsete hoidlate juurde pääsemisel põhiharuga, kus harjutati "ühendamise" asemel "rebase" operatsiooni kasutamist.

Sel ajal ei olnud avatud lahendusi selliste repositooriumidega töötamiseks ja Facebooki insenerid otsustasid luua uue versioonihaldussüsteemi, mis vastaks ettevõtte vajadustele, selle asemel, et jagada projektid väikesteks hoidlateks, mis tooks kaasa keerulisema sõltuvushalduse ( Korraga lõi Microsoft sarnase probleemi lahendamiseks GVFS-kihi).

Algselt kasutas Facebook Mercuriali süsteemi ja projekt Sapling töötati algselt välja Mercuriali täiendusena. Aja jooksul muutus süsteem iseseisvaks projektiks oma protokolli, salvestusvormingu ja algoritmidega, mida laiendati ka võimalusega suhelda Giti hoidlatega.

Töö jaoks, pakutakse käsurea utiliiti "sl", mis rakendab tüüpilisi kontseptsioone, töövooge ja liidest, mis on tuttav Giti ja Mercuriali tundvatele arendajatele. Saplingi terminoloogia ja käsud on Gitist pisut erinevad ja Mercurialile lähemal.

Lisafunktsioonide hulgas of Sapling, tõstab esile "nutika registreerimise" tugi (smartlog), mis võimaldab teil oma hoidla olekut visuaalselt hinnata, tõstke esile kõige olulisem teave ja filtreerige välja väiksemad detailid. Näiteks kui käivitate utiliidi sl ilma argumentideta, kuvatakse ainult teie enda kohalikud muudatused (võõrad ahendatakse), kuvatakse väliste harude olek, muudetud failid ja sissekannete uued versioonid. Lisaks on ette nähtud interaktiivne veebiliides, mis võimaldab kiiret navigeerimist nutikas logis, muudatuste puus ja kohustustes.

Veel üks märkimisväärne paranemine Saplingis on see see muudab vigade parandamise ja analüüsimise ning endisele olekule naasmise protsessi palju lihtsamaks. Näiteks käske "sl undo", "sl redo", "sl uncommit" ja "sl unmend" soovitatakse paljude toimingute tagasipööramiseks, "sl hide" ja "sl unhide" kohustuste ajutiseks peitmiseks ja interaktiivseks navigeerimiseks. väidab, et Sapling toetab ka täitmisvirna kontseptsiooni, mis võimaldab korraldada ülevaatuse samm-sammult, jaotades keeruka funktsionaalsuse väiksemaks, arusaadavamaks järkjärguliseks muudatuste kogumiks (alates põhiraamistikust kuni lõpliku funktsioonini).

Eraldi, töötati välja serveriosa efektiivseks kaugtööks hoidlatega ja virtuaalne failisüsteem, mis töötab hoidla osa kohaliku osaga nii, nagu oleks see täielik hoidla (arendaja näeb kogu hoidlat, kuid kohalikku süsteemi, millele pääseb juurde, kopeeritakse ainult nõutud andmed).

Nende Facebooki infrastruktuuris kasutatavate komponentide kood pole veel avatud, kuid ettevõte on lubanud selle tulevikus välja anda. Mononoke serveri (Rustis) ja VFS EdenFS (C++) prototüübid on aga Saplingi hoidlast juba leitavad. Need komponendid on valikulised ja töötamiseks piisab Saplingi kliendist, mis toetab Giti hoidlate kloonimist, Git LFS-põhiste serveritega suhtlemist ja tööd Git-hostidega, nagu GitHub.

Saplingi jaoks on ette valmistatud mitu pluginat, sealhulgas ReviewStacki liides muudatuste ülevaatamiseks (kood GPLv2 all), mis võimaldab töödelda GitHubi tõmbetaotlusi ja kasutada muudatuste virna vaadet.

Kui teil on huvi selle kohta rohkem teada saada, võite tutvuda üksikasjadega Järgmisel lingil.


Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutab: Miguel Ángel Gatón
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.