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 lina la seva lapangidwa kuti ligwire ntchito bwino patali ndi malo osungiramo zinthu, komanso njira yogwiritsira ntchito mafayilo enieni kuti igwire ntchito ndi gawo la malo osungiramo zinthu ngati kuti ndi malo osungiramo zinthu zonse (wopanga mapulogalamu amawona malo osungiramo zinthu zonse, koma deta yopemphedwa yokha ndiyo imakopedwa ku dongosolo la malo osungiramo zinthu). Khodi ya zigawozi zomwe zimagwiritsidwa ntchito mu zomangamanga za Facebook siili yotseguka, koma kampaniyo yalonjeza kuifalitsa mtsogolo. Komabe, zitsanzo za zitsanzo zitha kupezeka kale mu malo osungiramo zinthu a Sapling. Seva Mononoke (yolembedwa mu Rust) ndi VFS EdenFS (yolembedwa mu C++). Zigawo izi ndi zosankha, komanso kasitomala wa Sapling, yemwe amathandizira kupanga ma cloning a Git repositories ndikuchita nawo zinthu zina. maseva kutengera Git LFS ndikugwira ntchito ndi mautumiki osungira ma 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.

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
