Facebook kynnti nýtt frumkóðastjórnunarkerfi Sapling

Facebook (bannað í Rússlandi) hefur gefið út Sapling frumkóðastjórnunarkerfið sem notað er við þróun innri verkefna fyrirtækisins. Kerfið miðar að því að bjóða upp á kunnuglegt útgáfuviðmót sem getur skalað í mjög stórar geymslur sem spanna tugi milljóna skráa, skuldbindinga og útibúa. Biðlarakóði er skrifaður í Python og Rust og er opinn undir GPLv2 leyfinu.

Sérstaklega var þróaður miðlarahluti fyrir skilvirka fjarvinnu með geymslum og sýndarskráakerfi til að vinna með staðbundinni sneið af hluta geymslunnar eins og með fullri geymslu (framleiðandinn sér alla geymsluna, en aðeins umbeðin gögn eru afrituð í staðbundið kerfi, sem aðgangur er að). Kóðinn fyrir þessa íhluti sem notaðir eru í Facebook innviðum er ekki enn opinn, en fyrirtækið lofaði að birta hann í framtíðinni. Hins vegar er þegar hægt að finna frumgerðir af Mononoke netþjóninum (í Rust) og VFS EdenFS (í C++) í Sapling geymslunni. Þessir þættir eru valfrjálsir og Sapling biðlarinn er nóg til að virka, sem styður klónun Git geymslur, samskipti við netþjóna sem byggjast á Git LFS og vinna með git hýsingar eins og GitHub.

Meginhugmynd kerfisins er sú að þegar verið er að hafa samskipti við sérstakan miðlarahluta sem veitir geymslu á geymslunni, eru allar aðgerðir skalaðar eftir fjölda skráa sem raunverulega eru notaðar í kóðanum sem verktaki er að vinna að og eru ekki háðar heildarstærð allrar geymslunnar. Til dæmis getur þróunaraðili notað aðeins lítinn hluta kóða frá mjög stórri geymslu og aðeins þessi litli hluti, frekar en öll geymsluna, verður flutt yfir í kerfið hans. Vinnuskráin er fyllt á kraftmikinn hátt, þar sem farið er í skrár úr geymslunni, sem annars vegar gerir þér kleift að flýta verulega fyrir vinnu með þinn hluta kóðans, en hins vegar leiðir til hægfara þegar þú opnar fyrst. nýjar skrár og krefst stöðugs aðgangs að netinu (sérstaklega veitt og ótengdur háttur til undirbúnings skuldbindinga).

Auk aðlögunargagnahleðslu, innleiðir Sapling einnig hagræðingar sem miða að því að draga úr hleðslu upplýsinga með breytingasögu (til dæmis eru 3/4 af gögnum í geymslu með Linux kjarna breytingasaga). Til að vinna á áhrifaríkan hátt með breytingasögunni eru gögnin sem tengjast henni geymd í sundri sýn, sem gerir þér kleift að hlaða niður aðskildum hlutum skuldbindingarritsins af þjóninum. Viðskiptavinurinn getur beðið netþjóninn um upplýsingar um tengsl nokkurra skuldbindinga og aðeins hlaðið niður nauðsynlegum hluta grafsins.

Verkefnið hefur verið þróað á undanförnum 10 árum og var búið til til að leysa vandamál við skipulagningu á aðgangi að mjög stórum einlitum geymslum með einni aðalútibúi, þar sem æft var að nota „rebase“ aðgerðina í stað „samruna“. Á þeim tíma voru engar opnar lausnir til að vinna með slíkar geymslur og ákváðu verkfræðingar Facebook að búa til nýtt útgáfustýringarkerfi sem uppfyllir þarfir fyrirtækisins, í stað þess að skipta verkefnum í litlar geymslur, sem myndi leiða til flóknari ávanastjórnunar. (í einu, til að leysa svipað vandamál, bjó Microsoft til GVFS lag). Upphaflega notaði Facebook Mercurial kerfið og Sapling verkefnið var upphaflega þróað sem viðbót við Mercurial. Með tímanum breyttist kerfið í sjálfstætt verkefni með eigin samskiptareglum, geymslusniði og reikniritum, sem einnig var útvíkkað með getu til að hafa samskipti við Git geymslur.

Fyrir vinnu er „sl“ skipanalínuforritið lagt til, sem útfærir dæmigerð hugtök, verkflæði og viðmót sem þekkir þróunaraðilum sem þekkja til Git og Mercurial. Hugtökin og skipanirnar í Sapling eru aðeins frábrugðnar Git og nær Mercurial. Til dæmis eru „bókamerki“ notuð í stað útibúa (nafngreindar greinar eru ekki studdar), sjálfgefið, þegar klónun / dráttur er framkvæmd, er ekki öll geymslan hlaðin, heldur aðeins aðalútibúið, það er engin bráðabirgðamerking á skuldbindingum (sviðsetning) area), í stað "git fetch" er skipunin "sl" notuð pull", í staðinn fyrir "git pull" - "sl pull --rebase", í stað "git checkout COMMIT" - "sl goto COMMIT", í stað þess að "git reflog" - "sl journal", til að snúa breytingunni til baka í stað "git checkout - FILE" "sl revert FILE" er tilgreint og "." er notað til að auðkenna "HEAD" greinina. En almennt eru almenn hugtök um greinar og klón/pull/push/commit/rebase aðgerðir varðveittar.

Meðal viðbótareiginleika Sapling verkfærasettsins er stuðningur við „snjallskrá“ (snjallskrá) áberandi, sem gerir þér kleift að meta ástand geymslunnar þinnar sjónrænt, draga fram mikilvægustu upplýsingarnar og sía út smáatriði. Til dæmis, þegar þú keyrir sl tólið án rökstuðnings, birtast aðeins þínar eigin staðbundnar breytingar (erlendar eru hrundar), staða ytri útibúa, breyttar skrár og nýjar útgáfur af skuldbindingum eru sýndar. Að auki er boðið upp á gagnvirkt vefviðmót, sem gerir það mögulegt að fletta fljótt í gegnum snjallskrána, breyta tré og skuldbinda sig.

Facebook kynnti nýtt frumkóðastjórnunarkerfi Sapling

Önnur athyglisverð framför í Sapling er einföldun á ferlinu við að laga og flokka villur og fara aftur í fyrra ástand. Til dæmis er boðið upp á skipanirnar „sl undo“, „sl redo“, „sl uncommit“ og „sl unamend“ til að afturkalla margar aðgerðir, „sl hide“ og „sl unhide“ skipanir til að fela skuldbindingar tímabundið og gagnvirkt flakk í gegnum gömul ríki og skilaðu skipuninni "sl undo -i command" á tilgreindan stað. Sapling styður einnig hugmyndina um skuldbindingarstafla, sem gerir þér kleift að skipuleggja skref-fyrir-skref endurskoðun með því að skipta niður flókinni virkni í sett af smærri og skiljanlegri stigvaxandi breytingum (frá grunnramma til fullbúins eiginleika).

Nokkrar viðbætur hafa verið útbúnar fyrir Sapling, þar á meðal ReviewStack viðmótið til að skoða breytingar (kóði undir GPLv2), sem gerir þér kleift að vinna úr dráttarbeiðnum á GitHub og nota staflasýn yfir breytingar. Auk þess hafa verið gefnar út viðbætur til samþættingar við VSCode og TextMate ritstjórum, sem og innleiðingu á ISL (Interactive SmartLog) viðmóti og netþjóni.

Heimild: opennet.ru

Bæta við athugasemd