Facebook ayaa soo bandhigtay hab cusub oo lagu maamulayo koodhka sapling

Facebook (oo laga mamnuucay Ruushka) ayaa daabacday nidaamka maareynta koodhka isha ee Sapling ee loo isticmaalo horumarinta mashaariicda gudaha ee shirkadda. Nidaamku waxa uu higsanayaa in uu bixiyo interface versioning ah oo la yaqaan kaas oo cabbiri kara kayd aad u waaweyn oo ka kooban tobanaan milyan oo faylal, hawl-qabadyo iyo laamo. Koodhka macmiilku wuxuu ku qoran yahay Python iyo Rust, wuxuuna ku furan yahay shatiga GPLv2.

Si gooni ah, qayb server ah ayaa loo sameeyay shaqo fog oo wax ku ool ah oo leh bakhaarro iyo nidaam faylal macmal ah oo loogu shaqeeyo jeex maxalli ah oo qayb ka mid ah kaydka sida kayd buuxa (horumariyuhu wuxuu arkayaa kaydka oo dhan, laakiin kaliya xogta la codsaday waa la koobiyeeyay) nidaamka deegaanka, kuwaas oo la galo). Koodhka qaybahan loo isticmaalo kaabayaasha Facebook wali ma furna, laakiin shirkadu waxay ballan qaaday inay mustaqbalka daabici doonto. Si kastaba ha ahaatee, noocyada server-ka Mononoke (ku jira Rust) iyo VFS EdenFS (C++) ayaa mar hore laga heli karaa kaydka Sapling. Qaybahani waa ikhtiyaari macmiilka Sapling-na waa ku filan yahay inuu shaqeeyo, kaas oo taageera cloning repositories Git, la falgalka server-yada ku salaysan Git LFS, iyo la shaqaynta git hosts sida GitHub.

Fikradda ugu weyn ee nidaamku waa in marka la macaamilayo qayb gaar ah oo server ah oo bixisa kaydinta kaydka, dhammaan hawlgallada waa la cabbiraa iyadoo ku xiran tirada faylasha dhabta ah ee loo isticmaalo koodhka horumariyuhu ku shaqeynayo, oo ha ku tiirsanayn. cabbirka guud ee kaydka oo dhan. Tusaale ahaan, horumariye wuxuu isticmaali karaa oo kaliya qayb yar oo kood ah oo ka soo jeeda kayd aad u weyn, oo kaliya qaybtan yar, halkii kaydka oo dhan, ayaa loo wareejin doonaa nidaamkiisa. Hagaha shaqada ayaa si firfircoon u buuxsamay, maadaama faylalka kaydka laga helayo, taas oo, dhanka kale, kuu ogolaanaysa inaad si weyn u dedejiso shaqada qaybtaada koodhka, laakiin dhanka kale, waxay keenaysaa hoos u dhac marka ugu horeysa ee aad gasho faylal cusub oo u baahan in si joogto ah loo galo shabakada (oo si gooni ah loo bixiyo iyo qaab offline-qaabka diyaarinta ballanqaadyada).

Marka lagu daro rarista xogta la qabsiga, Sapling waxa kale oo ay fulisaa wanaajinta loogu talagalay in lagu dhimo rarka macluumaadka oo leh taariikh isbedel ah (tusaale, 3/4 ee xogta ku jirta kaydka Linux kernel waa taariikhda isbeddelada). Si aad si wax ku ool ah ula shaqeyso taariikhda isbeddelka, xogta la xidhiidha waxaa lagu kaydiyaa muuqaal qaybsan, taas oo kuu ogolaanaysa inaad soo dejiso qaybo gaar ah oo ka mid ah garaafyada garaafyada ee server-ka. Macmiilku waxa uu serferka waydiin karaa macluumaadka ku saabsan xidhiidhka dhawr jeer oo uu soo dejiyo kaliya qaybta lagama maarmaanka ah ee garaafka.

Mashruuca ayaa la sameeyay 10-kii sano ee la soo dhaafay waxaana loo abuuray in lagu xalliyo dhibaatooyinka marka la abaabulayo helitaanka bakhaarro monolithic ah oo aad u ballaaran oo leh hal laan oo master ah, kaas oo lagu dhaqmayo isticmaalka "rebase" hawlgalka halkii "isku-dhafka" lagu dhaqmay. Waqtigaas, ma jirin xal furfuran oo lagu shaqeynayo bakhaarradan, iyo injineerada Facebook waxay go'aansadeen in ay abuuraan nidaam cusub oo xakameynaya baahida shirkadda, halkii ay u kala qaybin lahaayeen mashaariicda meelo yaryar, taas oo horseedi doonta maareynta ku-tiirsanaanta dheeraadka ah. (hal mar, si loo xalliyo mushkilad la mid ah, Microsoft waxay abuurtay lakabka GVFS). Markii hore, Facebook waxay isticmaashay nidaamka Mercurial iyo mashruuca Sapling ayaa markii hore loo sameeyay si loogu daro Mercurial. Waqti ka dib, nidaamku wuxuu isu beddelay mashruuc madax-bannaan oo leh borotokool u gaar ah, qaabka kaydinta iyo algorithms, kaas oo sidoo kale lagu kordhiyey awoodda isdhexgalka ee Git.

Shaqada, "sl" utility-line-line utility ayaa la soo jeediyay, kaas oo fuliya fikradaha caadiga ah, socodka shaqada, iyo interface ay yaqaanaan horumarinta yaqaan Git iyo Mercurial. Eray bixinta iyo amarrada ku jira Sapling wax yar bay ka duwan yihiin Git waxayna u dhow yihiin Mercurial. Tusaale ahaan, "bookmarks" ayaa loo isticmaalaa halkii laamood (laamaha magacaaban lama taageero), marka la eego, marka la fulinayo clone / jiid, ma aha kaydka oo dhan waa la raray, laakiin kaliya laanta ugu weyn, ma jirto calaamad horudhac ah oo la sameeyay (samaynta). area), halkii "git fetch" amarka "sl" waxaa loo isticmaalaa jiid", halkii "git pull" - "sl pull --rebase", halkii "git checkout COMMIT" - "sl goto COMMIT", halkii laga isticmaali lahaa "git reflog" - "sl journal", si loo beddelo beddelka halkii "git checkout - FILE" "sl revert FILE" waa la cayimay, iyo "." waxaa loo isticmaalaa in lagu aqoonsado laanta "HEAD". Laakiin guud ahaan, fikradaha guud ee laamaha iyo clone/jiid/riixidda/balanqaadka/dib-u-dhigga hawlgallada waa la ilaaliyaa.

Waxaa ka mid ah sifooyinka dheeraadka ah ee qalabka Sapling, taageerada "smart log" (smartlog) ayaa taagan, kaas oo kuu ogolaanaya inaad si muuqaal ah u qiimeyso xaaladda kaydkaaga, muujiso macluumaadka ugu muhiimsan iyo shaandheynta faahfaahinta yaryar. Tusaale ahaan, markaad sl utility ku maamusho dood la'aan, kaliya isbeddeladaada maxalliga ah ayaa la soo bandhigayaa (kuwa shisheeye ayaa burburay), heerka laamaha dibadda, faylasha la beddelay, iyo noocyo cusub oo ballanqaad ah ayaa la soo bandhigayaa. Intaa waxaa dheer, interface web-is-dhexgal ah ayaa la bixiyaa, kaas oo suurtogal ka dhigaya in si dhakhso ah loogu dhex maro log-ka smart, beddelka geedka oo la sameeyo.

Facebook ayaa soo bandhigtay hab cusub oo lagu maamulayo koodhka sapling

Horumar kale oo xusid mudan oo ku yimid Sapling waa fududaynta habka hagaajinta iyo falanqaynta khaladaadka, iyo dib ugu noqoshada xaalad hore. Tusaale ahaan, amarrada "sl undo", "sl redo", "sl uncommit" iyo "sl unanamend" ayaa la bixiyaa si ay dib ugu noqdaan hawlo badan, "sl hide" iyo "sl unhide" waxay amar ku bixiyaan in si ku meel gaar ah loo qariyo dembiyada, iyo dhex galka dhex galka goboladii hore oo ku soo celi barta la cayimay amarka "sl undo -i command". Sapling waxa kale oo ay taageertaa fikradda isku xidhka go'an, kaas oo kuu ogolaanaya inaad abaabusho dib-u-eegis-tallaabo ah adiga oo jejebiyay hawl-karnimada isku dhafan ee isbeddellada kordhinta ee yaryar oo la fahmi karo (laga bilaabo qaab-dhismeedka aasaasiga ah ilaa sifo dhammaystiran).

Dhowr waxyaabood oo dheeri ah ayaa loo diyaariyey Sapling, oo ay ku jiraan interface ReviewStack ee dib u eegista isbeddelada (koodka hoos yimaada GPLv2), kaas oo kuu ogolaanaya inaad ka baaraandegto codsiyada jiidista GitHub oo aad isticmaasho aragtida isbaddallada. Intaa waxaa dheer, kordhinta ayaa loo daabacay isdhexgalka VSCode iyo TextMate tifaftirayaasha, iyo sidoo kale hirgelinta ISL (Interactive SmartLog) interface iyo server.

Source: opennet.ru

Add a comment