Фацебоок је представио нови систем управљања изворним кодом Саплинг

Фацебоок (забрањен у Руској Федерацији) објавио је систем контроле извора Саплинг, који се користи у развоју интерних пројеката компаније. Систем има за циљ да обезбеди познати интерфејс за контролу верзија који се може скалирати за веома велика спремишта која обухватају десетине милиона датотека, урезивања и грана. Клијентски код је написан на Питхон-у и Руст-у и отворен је под ГПЛв2 лиценцом.

Развијена је посебна серверска компонента за ефикасан даљински рад са репозиторијумима и виртуелни фајл систем за рад са локалним делом репозиторијума као да је у питању комплетан репозиторијум (програмер види цео репозиторијум, али се само тражени подаци копирају у локални систем). Код за ове компоненте који се користи у Фејсбуковој инфраструктури још увек није отвореног кода, али је компанија обећала да ће га објавити у будућности. Међутим, прототипови се већ могу наћи у Sapling репозиторијуму. сервер Mononoke (написан у Rust-у) и VFS EdenFS (написан у C++). Ове компоненте су опционе, као и Sapling клијент, који подржава клонирање Git репозиторијума и интеракцију са сервери заснован на Git LFS-у и ради са git хостинг сервисима као што је GitHub.

Главна идеја система је да се приликом интеракције са посебним серверским делом који обезбеђује складиштење спремишта, све операције скалирају у зависности од броја датотека које се стварно користе у коду на којем програмер ради, и не зависе од укупна величина читавог спремишта. На пример, програмер може да користи само мали део кода из веома великог спремишта и само тај мали део ће бити мигриран у његов систем, а не цело спремиште. Радни директоријум се динамички попуњава како се приступа датотекама из спремишта, што вам, с једне стране, омогућава значајно убрзање рада са својим делом кода, али са друге стране доводи до успоравања приступа новим датотекама за први пут и захтева сталан приступ мрежи (посебно обезбеђен и офлајн режим за припрему урезивања).

Поред адаптивног учитавања података, Sapling такође имплементира оптимизације усмерене на смањење учитавања информација са историјом промена (на пример, 3/4 података у репозиторијуму са језгром Linux (Ово се односи на историју промена). Да би се ефикасно радило са историјом промена, повезани подаци се чувају у сегментираном приказу, што омогућава преузимање појединачних делова графа commit-а са сервера. Клијент може да захтева информације о односу између неколико commit-ова са сервера и да преузме само потребан део графа.

Пројекат се развијао последњих 10 година и креиран је да реши проблеме при организовању приступа веома великим монолитним репозиторијумима са једном мастер граном, која је користила операцију „ребасе“ уместо „мерге“. У то време није било отворених решења за рад са оваквим репозиторијумима, а инжењери Фејсбука су одлучили да креирају нови систем контроле верзија који би одговарао потребама компаније, уместо поделе пројеката на мала репозиторијума, што би довело до сложености управљање зависношћу (у једном тренутку, да би решио сличан проблем, Мицрософт је креирао ГВФС слој). У почетку, Фацебоок је користио систем Мерцуриал и пројекат Саплинг у првој фази развијен као додатак Мерцуриал-у. Временом се систем трансформисао у независан пројекат са сопственим протоколом, форматом складиштења и алгоритмима, који је такође проширен могућношћу интеракције са Гит репозиторијумима.

За рад се нуди услужни програм командне линије „сл“, који имплементира типичне концепте, токове посла и интерфејс који је познат програмерима који су упознати са Гитом и Мерцуриалом. Терминологија и команде у Саплингу се мало разликују од Гит-а и ближе су Мерцуриал-у. На пример, уместо грана се користе „обележивачи“ (именоване гране нису подржане), подразумевано, када се извршава клонирање/повлачење, не учитава се цело спремиште, већ само главна грана, нема прелиминарног обележавања урезивања ( стагинг ареа), уместо „гит фетцх“ користи се команда „сл“ пулл“, уместо „гит пулл“ - „сл пулл -ребасе“, уместо „гит цхецкоут ЦОММИТ“ – „сл гото ЦОММИТ“, уместо "гит рефлог" - "сл јоурнал", да поништите промену уместо "гит цхецкоут - ФИЛЕ" "сл реверт ФИЛЕ" се користи за идентификацију гране "ХЕАД". Али генерално, општи концепти гранања и операција клонирања/повлачења/гурања/урезивања/ребасе су очувани.

Међу додатним карактеристикама комплета алата Саплинг истиче се подршка за „смартлог“, која вам омогућава да визуелно процените стање вашег спремишта, истакнете најважније информације и филтрирате неважне детаље. На пример, када покренете сл услужни програм без аргумената, на екрану се приказују само ваше локалне промене (друге су минимизиране), приказано је стање спољних грана, промењене датотеке и нове верзије урезивања. Додатно, нуди се интерактивни веб интерфејс, који омогућава брзу навигацију кроз паметни дневник, стабло промена и урезивање.

Фацебоок је представио нови систем управљања изворним кодом Саплинг

Још једно значајно побољшање у Саплинг-у је то што олакшава исправљање и решавање грешака и враћање у претходно стање. На пример, команде “сл ундо”, “сл редо”, “сл унцоммит” и “сл унаенд” се нуде за враћање многих операција уназад, команде “сл хиде” и “сл унхиде” се користе за привремено сакривање урезивања; а за интерактивну навигацију кроз стара стања и повратак на наведену тачку командом “сл ундо -и цомманд”. Саплинг такође подржава концепт стека урезивања, који вам омогућава да организујете прегледе корак по корак разбијањем сложене функционалности у скуп мањих, разумљивијих инкременталних промена (од основног оквира до готове функције).

Неколико додатака је припремљено за Саплинг, укључујући РевиевСтацк интерфејс за преглед промена (код под ГПЛв2), који вам омогућава да обрађујете захтеве за повлачење на ГитХуб-у и користите приказ стека промена. Поред тога, објављени су додаци за интеграцију са ВСЦоде и ТектМате уредницима, као и имплементацију ИСЛ (Интерацтиве СмартЛог) интерфејса и сервера.

Извор: опеннет.ру

Купите поуздан хостинг за сајтове са ДДоС заштитом, ВПС ВДС сервере 🔥 Купите поуздан веб хостинг са DDoS заштитом, VPS VDS сервере | ProHoster