Sapling, su Git suderinama šaltinio kodo valdymo sistema

sodinukai

„Sapling“ pabrėžia naudojimo paprastumą, o priartėja prie didžiausių pasaulyje saugyklų.

„Facebook“ pristatė per tinklaraščio įrašą šaltinio kodo valdymo sistema Sėjinukai naudojamas kuriant vidinius įmonės projektus. Sistema siekiama pateikti versijos valdymo sąsają pažįstamas, kuris gali apimti labai dideles saugyklas, apimančias dešimtis milijonų failų, įsipareigojimų ir šakų.

Pagrindinė sistemos idėja yra ta, kad sąveikaujant su specialia serverio dalimi, kuri teikia saugyklos saugyklą, visų operacijų skalė priklauso nuo failų skaičiaus iš tikrųjų naudojami kode, su kuriuo dirba kūrėjas, ir nepriklauso nuo bendro visos saugyklos dydžio.

Pavyzdžiui, kūrėjas gali naudoti tik nedidelę kodo dalį iš labai didelės saugyklos ir tik ši maža dalis, o ne visa saugykla, bus perkelta į jų sistemą. Darbinis katalogas pildomas dinamiškai, nes pasiekiami saugyklos failai, o tai, viena vertus, leidžia žymiai pagreitinti darbą su savo kodo dalimi, tačiau, kita vertus, sulėtėja, kai prieinate prie jos pirmą kartą prie naujų failų ir reikalauja nuolatinės prieigos prie tinklo (pateikiama atskirai ir parengimo neprisijungus režimu).

Be adaptyvaus duomenų įkėlimo, „Sapling“ taip pat įgyvendina optimizavimus, kuriais siekiama sumažinti informacijos apkrovą su pakeitimų istorija. (pavyzdžiui, 3/4 duomenų saugykloje su Linux branduoliu yra pakeitimų istorija).

Norint efektyviai dirbti su pakeitimų istorija, su ja susieti duomenys saugomi segmentuotame rodinyje, kuris leidžia iš serverio atsisiųsti atskiras įpareigojimo grafiko dalis. Klientas gali paprašyti serverio informacijos apie kelių patvirtinimų ryšį ir atsisiųsti tik reikiamą grafiko dalį.

Projektas buvo kuriamas pastaruosius 10 metų ir buvo sukurtas siekiant išspręsti problemas, kai pasiekiamos labai didelės monolitinės saugyklos su pagrindine šaka, kur buvo praktikuojama „rebase“ operacija, o ne „merge“.

Tuo metu nebuvo atvirų sprendimų darbui su tokiomis saugyklomis, o „Facebook“ inžinieriai nusprendė sukurti naują versijų valdymo sistemą, kuri atitiktų įmonės poreikius, o ne skaidyti projektus į mažas saugyklas, o tai lemtų sudėtingesnį priklausomybių valdymą ( Vienu metu, norėdama išspręsti panašią problemą, „Microsoft“ sukūrė GVFS sluoksnį).

Iš pradžių „Facebook“ naudojo „Mercurial“ sistemą o Sapling projektas iš pradžių buvo sukurtas kaip Mercurial priedas. Laikui bėgant sistema tapo savarankišku projektu su savo protokolu, saugojimo formatu ir algoritmais, kurie taip pat buvo išplėsti suteikiant galimybę bendrauti su Git saugyklomis.

Už darbą, siūloma komandų eilutės programa „sl“, kuri įgyvendina tipines koncepcijas, darbo eigas ir sąsają, pažįstamą su Git ir Mercurial susipažinusiems kūrėjams. Sapling terminologija ir komandos šiek tiek skiriasi nuo Git ir yra artimesnės Mercurial.

Tarp papildomų funkcijų iš Sapling, pabrėžia palaikymas „išmaniajai registracijai“ (smartlog), kuris leidžia vizualiai įvertinti saugyklos būseną, paryškinkite svarbiausią informaciją ir išfiltruokite smulkias detales. Pavyzdžiui, kai paleidžiate sl įrankį be argumentų, rodomi tik jūsų vietiniai pakeitimai (sutraukiami svetimi), rodoma išorinių šakų būsena, pakeisti failai ir naujos įsipareigojimų versijos. Be to, pateikiama interaktyvi žiniatinklio sąsaja, skirta greitai naršyti išmaniajame žurnale, pakeitimų medyje ir įsipareigojimams.

Kitas pastebimas „Sapling“ patobulinimas yra tas tai žymiai palengvina klaidų taisymo ir analizės bei grįžimo į ankstesnę būseną procesą. Pavyzdžiui, komandos „sl anuliuoti“, „sl redo“, „sl atšaukti įsipareigojimą“ ir „sl unmend“ siūlomos daugeliui operacijų atšaukti, „sl hide“ ir „sl unhide“ – laikinai paslėpti įsipareigojimus ir interaktyviai naršyti. teigia, kad „Sapling“ taip pat palaiko įvykdymo krūvos koncepciją, kuri leidžia organizuoti peržiūrą žingsnis po žingsnio, suskaidant sudėtingas funkcijas į mažesnį, labiau suprantamą laipsnišką pakeitimų rinkinį (nuo pagrindinės sistemos iki galutinės funkcijos).

Atskirai, sukurta serverio dalis efektyviam nuotoliniam darbui su saugyklomis ir virtualią failų sistemą, kad dirbtų su vietine saugyklos dalimi, tarsi tai būtų visa saugykla (kūrėjas mato visą saugyklą, bet tik prašomi duomenys nukopijuojami į vietinę sistemą, kuri yra pasiekiama).

Šių „Facebook“ infrastruktūroje naudojamų komponentų kodas dar nėra atviras, tačiau bendrovė pažadėjo jį išleisti ateityje. Tačiau Mononoke serverio (Rust) ir VFS EdenFS (C++) prototipus jau galima rasti Sapling saugykloje. Šie komponentai yra neprivalomi ir darbui pakanka Sapling kliento, kuris palaiko Git saugyklų klonavimą, sąveiką su Git LFS pagrįstais serveriais ir darbą su git prieglobomis, tokiais kaip GitHub.

„Sapling“ buvo paruošti keli papildiniai, įskaitant „ReviewStack“ sąsają, skirtą pakeitimams peržiūrėti (kodas pagal GPLv2), kuri leidžia apdoroti ištraukimo užklausas „GitHub“ ir naudoti pakeitimų krūvos rodinį.

Jei norite sužinoti daugiau apie tai, galite sužinoti daugiau Šioje nuorodoje.


Straipsnio turinys atitinka mūsų principus redakcijos etika. Norėdami pranešti apie klaidą, spustelėkite čia.

Būkite pirmas, kuris pakomentuos

Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.