Facebook e hlahisitse sistimi e ncha ea taolo ea khoutu ea mohloli Sapling

Facebook (e thibetsoe Russia Federation) e phatlalalitse mokhoa oa ho laola mohloli oa Sapling, o sebelisoang ho nts'etsopele merero ea lik'hamphani tsa ka hare. Sistimi e ikemiselitse ho fana ka sebopeho se tloaelehileng sa taolo ea mofuta o ka holang bakeng sa polokelo e kholo haholo e nkang mashome a limilione a lifaele, likopo le makala. Khoutu ea bareki e ngotsoe ka Python le Rust, 'me e butsoe tlas'a laesense ea GPLv2.

Karolo ea seva e entsoe ka thoko bakeng sa mosebetsi o sebetsang o hole o nang le polokelo le sistimi ea faele ea sebele bakeng sa ho sebetsa le selae sa sebaka sa sebaka sa polokelo e le polokelo e felletseng (moetsi o bona polokelo eohle, empa ke data e hlokahalang feela e fumanehang. e qopisetsoa tsamaisong ea lehae). Khoutu ea likarolo tsena tse sebelisoang metheong ea Facebook ha e so buloe, empa k'hamphani e tšepisitse ho e phatlalatsa nakong e tlang. Leha ho le joalo, hajoale sebakeng sa polokelo ea Sapling u ka se u ntse u fumana li-prototypes tsa seva sa Mononoke (ho Rust) le VFS EdenFS (ho C ++). Likarolo tsena ke tsa boikhethelo 'me moreki oa Sapling o lekane ho sebetsa, e ts'ehetsang ho kopanya polokelo ea Git, ho sebelisana le li-server tse thehiloeng ho Git LFS le ho sebetsa le libaka tsa ho amohela git joalo ka GitHub.

Mohopolo o ka sehloohong oa sistimi ke hore ha o sebelisana le karolo e khethehileng ea seva e fanang ka polokelo ea polokelo, lits'ebetso tsohle li lekantsoe ho latela palo ea lifaele tse hlileng li sebelisitsoeng ho khoutu eo mohlahlami a sebetsang ho eona, 'me ha e itšetlehe ka eona. kakaretso ea boholo ba polokelo eohle. Ka mohlala, moqapi a ka sebelisa karolo e nyenyane feela ea khoutu e tsoang sebakeng se seholo haholo sa polokelo 'me karolo eo e nyenyane feela e tla fallisetsoa tsamaisong ea hae, eseng polokelo eohle. Bukana e sebetsang e tlatsitsoe ka matla ha lifaele tse tsoang polokelong li ntse li fumaneha, tseo, ka lehlakoreng le leng, li u lumellang ho potlakisa mosebetsi ka karolo ea hau ea khoutu, empa ka lehlakoreng le leng e lebisa ho theoheng ha u fihlella lifaele tse ncha lekhetlo la pele mme e hloka phihlello ea kamehla ea marang-rang (mokhoa o fanoeng ka thoko le o kantle ho marang-rang bakeng sa ho lokisa boitlamo).

Ntle le ho jara data e ikamahanyang le maemo, Sapling e boetse e sebelisa lintlafatso tse reretsoeng ho fokotsa phallo ea tlhahisoleseling le nalane ea liphetoho (mohlala, 3/4 ea data sebakeng sa polokelo ea Linux kernel ke nalane ea liphetoho). Ho sebetsa ka katleho le nalane ea liphetoho, data e amanang le eona e bolokiloe ka boemeli bo arohaneng bo u lumellang ho khoasolla likarolo tse ikhethileng tsa graph ea boitlamo ho tsoa ho seva. Moreki a ka kopa tlhahisoleseling ho tsoa ho seva mabapi le kamano lipakeng tsa boitlamo ba 'maloa le ho jarolla karolo e hlokahalang feela ea graph.

Morero ona o ntse o tsoela pele lilemong tse fetileng tsa 10 mme o bōpiloe ho rarolla mathata ha ho hlophisoa phihlello ea libaka tsa polokelo ea monolithic tse kholo haholo tse nang le lekala le le leng la master, le sebelisitseng ts'ebetso ea "rebase" ho e-na le "ho kopanya". Ka nako eo, ho ne ho se na litharollo tse bulehileng bakeng sa ho sebetsa le polokelo e joalo, 'me baenjiniere ba Facebook ba ile ba etsa qeto ea ho theha mokhoa o mocha oa ho laola mokhoa o neng o tla finyella litlhoko tsa k'hamphani, ho e-na le ho arola merero ho lipolokelo tse nyenyane, tse neng li tla lebisa ho rarahanang. taolo ea ho itšetleha (ka nako e 'ngoe, ho rarolla bothata bo tšoanang, Microsoft e thehile lera la GVFS). Qalong, Facebook e ne e sebelisa tsamaiso ea Mercurial le morero oa Sapling sethaleng sa pele se entsoeng e le tlatsetso ho Mercurial. Ha nako e ntse e ea, tsamaiso e ile ea fetoha morero o ikemetseng o nang le protocol ea oona, mokhoa oa polokelo le li-algorithms, tse ileng tsa boela tsa atolosoa ka bokhoni ba ho sebelisana le li-repositories tsa Git.

Bakeng sa mosebetsi, ho fanoa ka mohala oa taelo "sl", o sebelisang mehopolo e tloaelehileng, phallo ea mosebetsi le sehokelo se tsebahalang ho bahlahisi ba tloaelaneng le Git le Mercurial. Mareo le litaelo ho Sapling li fapane hanyane le Git mme li haufi le Mercurial. Ka mohlala, ho e-na le makala, "li-bookmark" li sebelisoa (makala a boletsoeng ka mabitso ha a tšehetsoe), ka ho sa feleng, ha ho etsoa clone / hula, ha se polokelo eohle e kentsoeng, empa ke lekala le ka sehloohong feela, ha ho na letšoao la pele la mesebetsi ( sebaka sa sethala), sebakeng sa "git fetch" ho sebelisoa taelo ea "sl", ho fapana le "git pull" - "sl pull -rebase", sebakeng sa "git checkout COMMIT" - "sl goto COMMIT", sebakeng sa "git reflog" - "sl journal", ho hlakola phetoho sebakeng sa "git checkout - FILE" "sl revert FILE" e boletsoe, 'me "." e sebelisoa ho khetholla lekala la "HEAD". Empa ka kakaretso, mehopolo e akaretsang ea makala le ts'ebetso ea clone / hula / sututsa / itlama / rebase e bolokiloe.

Har'a likarolo tse ling tsa Sapling toolkit, tšehetso ea "smartlog" e hlahella, e u lumellang hore u hlahlobe ka mahlo boemo ba polokelo ea hau, u totobatse lintlha tsa bohlokoa ka ho fetisisa le ho sefa lintlha tse sa hlokahaleng. Mohlala, ha o tsamaisa ts'ebeliso ea sl ntle le likhang, ke liphetoho tsa sebaka sa hau feela tse bonts'itsoeng skrineng (tse ling li fokotsehile), boemo ba makala a kantle, lifaele tse fetotsoeng le mefuta e mecha ea boitlamo e bonts'oa. Ho phaella moo, ho fanoa ka sebopeho sa marang-rang se kopanetsoeng, se nolofalletsang ho tsamaea ka potlako ka har'a logi e bohlale, ho fetola sefate le ho itlama.

Facebook e hlahisitse sistimi e ncha ea taolo ea khoutu ea mohloli Sapling

Ntlafatso e 'ngoe e hlokomelehang ho Sapling ke hore e nolofalletsa ho lokisa le ho rarolla liphoso le ho khutlela boemong bo fetileng. Mohlala, litaelo "sl undo", "sl redo", "sl uncommit" le "sl unamend" li fanoa ho khutlisa mesebetsi e mengata, "sl hide" le "sl unhide" li sebelisetsoa ho pata boitlamo ka nakoana; le bakeng sa ho tsamaea ka tsela e kopanetsoeng ho pholletsa le linaha tsa khale le ho khutlela sebakeng se boletsoeng ka taelo ea "sl undo -i command". Sapling e boetse e ts'ehetsa mohopolo oa stack ea boitlamo, e u lumellang ho hlophisa litlhahlobo tsa mohato ka mohato ka ho pshatla ts'ebetso e rarahaneng hore e be sete ea liphetoho tse ling tse nyane, tse utloisisehang haholoanyane (ho tloha moralong oa mantlha ho isa tšebetsong e felileng).

Ho lokiselitsoe litlatsetso tse 'maloa bakeng sa Sapling, ho kenyeletsoa sebopeho sa ReviewStack bakeng sa ho lekola liphetoho (khoutu tlasa GPLv2), e u lumellang ho sebetsana le likopo tsa ho hula ho GitHub le ho sebelisa pono ea stack ea liphetoho. Ho phaella moo, litlatsetso li hatisitsoe bakeng sa ho kopanngoa le bahlophisi ba VSCode le TextMate, hammoho le ts'ebetsong ea ISL (Interactive SmartLog) interface le seva.

Source: opennet.ru

Eketsa ka tlhaloso