Facebook iwulula njira yatsopano yowongolera magwero a Sapling

Facebook (yoletsedwa ku Russian Federation) idasindikiza Sapling source control system, yomwe imagwiritsidwa ntchito popanga ma projekiti amakampani amkati. Dongosololi likufuna kupereka mawonekedwe odziwika bwino omwe amatha kukhala ndi nkhokwe zazikulu kwambiri zomwe zimatenga mamiliyoni mamiliyoni a mafayilo, ntchito ndi nthambi. Khodi ya kasitomala imalembedwa ku Python ndi Rust, ndipo imatsegulidwa pansi pa layisensi ya GPLv2.

Gawo la seva lapangidwa padera kuti ligwire ntchito yakutali yokhala ndi nkhokwe komanso mawonekedwe a fayilo kuti agwire ntchito ndi kagawo kakang'ono ka gawo lazosungirako ngati chosungira chathunthu (wopanga mapulogalamu amawona nkhokwe yonse, koma deta yofunikira yomwe ikupezeka. imakopera ku dongosolo lapafupi). Khodi ya zigawozi zomwe zimagwiritsidwa ntchito muzomangamanga za Facebook sizinatsegulidwe, koma kampaniyo yalonjeza kuti idzayifalitsa mtsogolomo. Komabe, pakadali pano mu Sapling repository mutha kupeza kale ma prototypes a seva ya Mononoke (mu Rust) ndi VFS EdenFS (mu C ++). Zidazi ndizosankha ndipo kasitomala wa Sapling ndi wokwanira kuti agwire ntchito, yomwe imathandizira kupanga zosungira za Git, kulumikizana ndi maseva otengera Git LFS ndikugwira ntchito ndi masamba ochitira git monga GitHub.

Lingaliro lalikulu la dongosololi ndikuti polumikizana ndi gawo lapadera la seva lomwe limapereka zosungirako zosungirako, ntchito zonse zimakulitsidwa kutengera kuchuluka kwa mafayilo omwe amagwiritsidwa ntchito mu code yomwe wopangayo akugwira, ndipo sizidalira kukula konse kwa nkhokwe yonse. Mwachitsanzo, wopanga mapulogalamu angagwiritse ntchito kachigawo kakang'ono kokha ka code kuchokera kunkhokwe yaikulu kwambiri ndipo gawo laling'onolo ndilomwe lidzasamutsidwira ku dongosolo lake, osati nkhokwe yonse. Chikwatu chogwirira ntchito chimadzazidwa mwamphamvu pamene mafayilo ochokera kumalo osungira akupezeka, omwe, kumbali imodzi, amakulolani kuti mufulumizitse ntchito ndi gawo lanu la code, koma kumbali inayo kumabweretsa kuchepa pamene mukupeza mafayilo atsopano. nthawi yoyamba ndipo imafuna mwayi wopezeka pa netiweki (yoperekedwa padera komanso yopanda intaneti pokonzekera zochita).

Kuphatikiza pa kutsitsa kosinthika kwa data, Sapling imagwiritsanso ntchito kukhathamiritsa komwe kumafuna kuchepetsa kutsitsa kwachidziwitso ndi mbiri yakusintha (mwachitsanzo, 3/4 ya data yomwe ili m'malo okhala ndi Linux kernel ndiye mbiri yakusintha). Kuti mugwire bwino ntchito ndi mbiri ya zosintha, zomwe zimalumikizidwa nazo zimasungidwa mugawo loyimira lomwe limakupatsani mwayi wotsitsa magawo amodzi a graph kuchokera pa seva. Wothandizira atha kupempha zambiri kuchokera kwa seva za ubale womwe ulipo pakati pa zochita zingapo ndikutsitsa gawo lofunikira la graph.

Ntchitoyi yakhala ikukula m'zaka zapitazi za 10 ndipo idapangidwa kuti ithetse mavuto pokonzekera kupeza malo akuluakulu a monolithic ndi nthambi imodzi ya master, yomwe inagwiritsa ntchito "rebase" m'malo mwa "kuphatikiza". Panthawiyo, panalibe njira zotseguka zogwirira ntchito ndi nkhokwe zotere, ndipo akatswiri a Facebook adaganiza zopanga njira yatsopano yoyendetsera ntchito yomwe ingakwaniritse zosowa za kampaniyo, m'malo mogawanitsa mapulojekiti kukhala nkhokwe zazing'ono, zomwe zingayambitse zovuta. kasamalidwe ka kudalira (panthawi ina, kuti athetse vuto lofananalo, Microsoft idapanga GVFS wosanjikiza). Poyambirira, Facebook idagwiritsa ntchito Mercurial system ndi ntchito ya Sapling pagawo loyamba lopangidwa ngati chowonjezera ku Mercurial. M'kupita kwa nthawi, dongosololi linasandulika pulojekiti yodziimira yokha ndi ndondomeko yake, mawonekedwe osungiramo ndi ma aligorivimu, omwe adakulitsidwanso ndi kuthekera kolumikizana ndi ma Git repositories.

Pantchito, mzere wolamula "sl" umaperekedwa, womwe umagwiritsa ntchito malingaliro wamba, kayendedwe ka ntchito ndi mawonekedwe odziwika bwino kwa opanga omwe amadziwa Git ndi Mercurial. Mawu ndi malamulo mu Sapling ndi osiyana pang'ono ndi Git ndipo ali pafupi ndi Mercurial. Mwachitsanzo, m'malo mwa nthambi, "ma bookmark" amagwiritsidwa ntchito (nthambi zotchulidwa sizikuthandizidwa), mwachisawawa, pochita zojambulajambula / kukoka, osati malo onse omwe amasungidwa, koma nthambi yaikulu yokha, palibe chizindikiro choyambirira cha zochita ( malo), m'malo mwa "git fetch" lamulo la "sl" limagwiritsidwa ntchito kukoka", m'malo mwa "git pull" - "sl pull -rebase", m'malo mwa "git checkout COMMIT" - "sl goto COMMIT", m'malo mwa "git reflog" - "sl journal", kuletsa kusintha m'malo mwa "git checkout - FILE" "sl revert FILE" yatchulidwa, ndipo "." imagwiritsidwa ntchito kuzindikiritsa nthambi ya "HEAD". Koma kawirikawiri, malingaliro onse a nthambi ndi ntchito za clone/kukoka/kukankha/commit/rebase zimasungidwa.

Zina mwazinthu zowonjezera za Sapling toolkit, chithandizo cha "smartlog" chikuwonekera, chomwe chimakulolani kuti muwone momwe malo anu alili, kuwonetsa zambiri zofunika kwambiri ndikusefa zosafunika. Mwachitsanzo, mukamayendetsa sl utility popanda mikangano, zosintha zanu zokha zakumaloko zimawonetsedwa pazenera (zina zimachepetsedwa), mawonekedwe anthambi zakunja, mafayilo osinthidwa ndi mitundu yatsopano yazinthu zikuwonetsedwa. Kuphatikiza apo, mawonekedwe ochezera a pa intaneti amaperekedwa, zomwe zimapangitsa kuti zitheke kuyenda mwachangu mu chipika chanzeru, kusintha mtengo ndikudzipereka.

Facebook iwulula njira yatsopano yowongolera magwero a Sapling

Kuwongolera kwina kodziwika mu Sapling ndikuti kumapangitsa kuti zikhale zosavuta kukonza ndi kuthetsa zolakwika ndikubwereranso kumayiko akale. Mwachitsanzo, malamulo akuti "sl undo", "sl redo", "sl uncommit" ndi "sl unamend" amaperekedwa kuti abwezeretse ntchito zambiri; malamulo "sl hide" ndi "sl unhide" amagwiritsidwa ntchito kubisa zomwe zachitika kwakanthawi; ndi kuyenda molumikizana m'maiko akale ndikubwerera kumalo otchulidwa ndi lamulo "sl undo -i command". Sapling imathandiziranso lingaliro la kudzipereka, komwe kumakupatsani mwayi wokonza ndemanga pang'onopang'ono pophwanya magwiridwe antchito kukhala ang'onoang'ono, omveka bwino osinthika owonjezera (kuchokera pachimake choyambira kupita ku ntchito yomaliza).

Zowonjezera zingapo zakonzedwa kwa Sapling, kuphatikiza mawonekedwe a ReviewStack kuti awonenso zosintha (code pansi pa GPLv2), zomwe zimakupatsani mwayi wokonza zopempha zokoka pa GitHub ndikugwiritsa ntchito mawonekedwe osintha. Kuphatikiza apo, zowonjezera zasindikizidwa kuti ziphatikizidwe ndi akonzi a VSCode ndi TextMate, komanso kukhazikitsa mawonekedwe a ISL (Interactive SmartLog) ndi seva.

Source: opennet.ru

Kuwonjezera ndemanga