Sapling, ar Git saderīga pirmkoda vadības sistēma

kokaudzētava

Sapling uzsver lietošanas vienkāršību, vienlaikus mērogojot līdz pasaules lielākajām krātuvēm.

Facebook atklāja izmantojot emuāra ierakstu, avota koda pārvaldības sistēmu Sēj izmanto uzņēmuma iekšējo projektu izstrādē. Sistēma mērķis ir nodrošināt versiju kontroles saskarni pazīstams, kas var tikt mērogots līdz ļoti lielām krātuvēm, kas aptver desmitiem miljonu failu, saistību un atzarojumu.

Sistēmas galvenā ideja ir tāda, ka, mijiedarbojoties ar īpašu servera daļu, kas nodrošina repozitorija krātuvi, visu darbību mērogs, pamatojoties uz failu skaitu faktiski tiek izmantoti kodā, pie kura izstrādātājs strādā, un tie nav atkarīgi no visa repozitorija kopējā lieluma.

Piemēram, izstrādātājs var izmantot tikai nelielu koda daļu no ļoti liela repozitorija, un tikai šī mazā daļa, nevis visa repozitorija, tiks pārsūtīta uz viņu sistēmu. Darba direktorijs tiek aizpildīts dinamiski, jo tiek piekļūti repozitorija faili, kas, no vienas puses, ļauj ievērojami paātrināt darbu ar savu koda daļu, bet, no otras puses, palēnina to, piekļūstot tai pirmo reizi pie jauniem failiem un nepieciešama pastāvīga piekļuve tīklam (nodrošina atsevišķi un bezsaistes izpildes sagatavošanas režīms).

Papildus adaptīvajai datu ielādei, Sapling ievieš arī optimizācijas, kuru mērķis ir samazināt informācijas slodzi ar izmaiņu vēsturi. (piemēram, 3/4 datu repozitorijā ar Linux kodolu ir izmaiņu vēsture).

Lai efektīvi strādātu ar izmaiņu vēsturi, ar to saistītie dati tiek glabāti segmentētā skatā, kas ļauj no servera lejupielādēt atsevišķas izpildes diagrammas daļas. Klients var lūgt serverim informāciju par vairāku apstiprinājumu saistību un lejupielādēt tikai nepieciešamo grafika daļu.

Projekts ir izstrādāts pēdējos 10 gadus un tika izveidots, lai atrisinātu problēmas, piekļūstot ļoti lielām monolītām krātuvēm ar galveno atzaru, kur tika praktizēta "apvienošanas" vietā izmantot operāciju "rebase".

Tobrīd nebija atvērtu risinājumu darbam ar šādiem repozitorijiem, un Facebook inženieri nolēma izveidot jaunu versiju kontroles sistēmu, kas atbilstu uzņēmuma vajadzībām, nevis sadalīt projektus mazos krātuvēs, kas radītu sarežģītāku atkarību pārvaldību ( vienā reizē, lai atrisinātu līdzīgu problēmu, Microsoft izveidoja GVFS slāni).

Sākotnēji Facebook izmantoja Mercurial sistēmu un projekts Sapling sākotnēji tika izstrādāts kā Mercurial papildinājums. Laika gaitā sistēma kļuva par neatkarīgu projektu ar savu protokolu, krātuves formātu un algoritmiem, kas arī tika paplašināts ar iespēju mijiedarboties ar Git krātuvēm.

Darbam, tiek piedāvāta komandrindas utilīta "sl", kas ievieš tipiskas koncepcijas, darbplūsmas un saskarni, kas pazīstama izstrādātājiem, kuri pārzina Git un Mercurial. Sapling terminoloģija un komandas nedaudz atšķiras no Git un ir tuvākas Mercurial.

Starp papildu funkcijām of Sapling, izceļ atbalsts “viedajai reģistrācijai” (smartlog), kas ļauj vizuāli novērtēt jūsu repozitorija statusu, iezīmējiet svarīgāko informāciju un izfiltrējiet mazākās detaļas. Piemēram, palaižot utilītu sl bez argumentiem, tiek parādītas tikai jūsu vietējās izmaiņas (svešās tiek sakļautas), tiek parādīts ārējo zaru statuss, mainītie faili un jaunas izpildes versijas. Turklāt tiek nodrošināts interaktīvs tīmekļa interfeiss ātrai navigācijai viedajā žurnālā, izmaiņu kokā un apņemšanās.

Vēl viens ievērojams Sapling uzlabojums ir tas tas ievērojami atvieglo kļūdu labošanas un analīzes procesu, kā arī atgriešanos iepriekšējā stāvoklī. Piemēram, komandas "sl undo", "sl redo", "sl uncommit" un "sl unmend" ir ieteicamas, lai mainītu daudzas darbības, "sl hide" un "sl unhide" lai īslaicīgi paslēptu saistības un veiktu interaktīvu navigāciju. norāda, ka Sapling atbalsta arī commit steck koncepciju, kas ļauj organizēt pārskatīšanu soli pa solim, sadalot sarežģīto funkcionalitāti mazākā, saprotamākā izmaiņu komplektā (no pamata ietvara līdz galīgajai funkcijai).

Atsevišķi tika izstrādāta servera daļa efektīvam attālinātam darbam ar krātuvēm un virtuālo failu sistēmu, lai strādātu ar repozitorija daļas lokālo daļu tā, it kā tā būtu pilnīga repozitorija (izstrādātājs redz visu repozitoriju, bet tikai pieprasītie dati tiek kopēti vietējā sistēmā, kurai tiek piekļūts).

Šo Facebook infrastruktūrā izmantoto komponentu kods vēl nav atklāts, taču uzņēmums solījis to izlaist nākotnē. Tomēr Mononoke servera (Rust) un VFS EdenFS (C++) prototipi jau ir atrodami Sapling repozitorijā. Šie komponenti nav obligāti, un darbam pietiek ar Sapling klientu, kas atbalsta Git repozitoriju klonēšanu, mijiedarbību ar Git LFS serveriem un darbu ar Git saimniekdatoriem, piemēram, GitHub.

Programmai Sapling ir sagatavoti vairāki spraudņi, tostarp ReviewStack saskarne izmaiņu pārskatīšanai (kods saskaņā ar GPLv2), kas ļauj apstrādāt izvilkšanas pieprasījumus vietnē GitHub un izmantot izmaiņu steka skatu.

Ja vēlaties uzzināt vairāk par to, varat uzzināt sīkāku informāciju Šajā saitē.


Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: Migels Ángels Gatóns
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.