Kushindwa katika mifumo ya ujenzi kwa sababu ya mabadiliko katika ukaguzi wa kumbukumbu kwenye GitHub

GitHub ilibadilisha jinsi inavyotengeneza kumbukumbu za ".tar.gz" na ".tgz" zinazozalishwa kiotomatiki kwenye kurasa za kutolewa, ambayo ilisababisha mabadiliko katika hesabu zao za hundi na mapungufu makubwa katika mifumo ya kiotomatiki ya ujenzi ambayo hukagua kumbukumbu zilizopakuliwa kutoka GitHub dhidi ya zilizotangulia ili kudhibitisha uadilifu. .. hundi zilizohifadhiwa, kwa mfano, zimewekwa kwenye metadata ya kifurushi au katika hati za muundo.

Kuanzia na toleo la 2.38, zana ya zana ya Git ilijumuisha utekelezaji wa ndani wa gzip kwa chaguomsingi, ambao uliwezesha kuunganisha usaidizi wa mbinu hii ya kubana kwenye mifumo ya uendeshaji na kuboresha utendakazi wa kuunda kumbukumbu. GitHub ilichukua mabadiliko baada ya kusasisha toleo la git katika miundombinu yake. Shida ilisababishwa na ukweli kwamba kumbukumbu zilizoshinikizwa zinazotokana na utekelezaji wa gzip iliyojengwa ndani ya zlib ni tofauti na kumbukumbu zilizoundwa na matumizi ya gzip, ambayo ilisababisha ukaguzi tofauti wa kumbukumbu iliyoundwa na matoleo tofauti ya git wakati wa kutekeleza amri ya "git archive".

Ipasavyo, baada ya kusasisha git katika GitHub, kumbukumbu tofauti kidogo zilianza kuonyeshwa kwenye kurasa za kutolewa, ambazo hazikupita uthibitishaji kwa kutumia hesabu za zamani. Tatizo lilijitokeza katika mifumo mbalimbali ya ujenzi, mifumo ya ujumuishaji endelevu, na zana za kuunda vifurushi kutoka kwa msimbo wa chanzo. Kwa mfano, mkusanyiko wa bandari 5800 za FreeBSD, misimbo ya chanzo ambayo ilipakuliwa kutoka GitHub, ilivunjwa.

Kujibu malalamiko ya awali juu ya hitilafu, GitHub hapo awali alitaja ukweli kwamba ukaguzi wa kudumu wa kumbukumbu haukuwahi kuhakikishwa. Baada ya kuonyeshwa kuwa kiasi kikubwa cha kazi kitahitajika kusasisha metadata katika mifumo mbalimbali ya ikolojia ili kurejesha utendakazi wa mifumo ya ujenzi iliyoathiriwa, wawakilishi wa GitHub walibadili mawazo yao, wakageuza mabadiliko na kurudisha njia ya zamani ya kutengeneza kumbukumbu.

Watengenezaji wa Git bado hawajafikia uamuzi na wanajadili tu vitendo vinavyowezekana. Chaguo zilizozingatiwa ni pamoja na kurejea kwa kutumia matumizi chaguomsingi ya gzip; kuongeza bendera ya "--imara" ili kudumisha upatanifu na kumbukumbu za zamani; kuunganisha utekelezaji uliojengwa kwa muundo tofauti wa kumbukumbu; kutumia matumizi ya gzip kwa ahadi za zamani na utekelezaji wa ndani wa ahadi kuanzia tarehe fulani; kuhakikisha uthabiti wa umbizo kwa kumbukumbu ambazo hazijabanwa pekee.

Ugumu wa kufanya uamuzi unaelezewa na ukweli kwamba kurudi nyuma kwa simu kwa matumizi ya nje hakutatui kabisa shida ya kutobadilika kwa checksum, kwani mabadiliko katika programu ya gzip ya nje pia inaweza kusababisha mabadiliko katika muundo wa kumbukumbu. Hivi sasa, seti ya viraka imependekezwa kukaguliwa ambayo inarudisha tabia ya zamani kwa chaguo-msingi (kuiita matumizi ya gzip ya nje) na hutumia utekelezaji uliojengwa kwa kukosekana kwa matumizi ya gzip kwenye mfumo. Viraka pia huongeza kwenye hati kutaja kuwa uthabiti wa pato la "jalada la git" haujahakikishwa na umbizo linaweza kubadilika katika siku zijazo.

Chanzo: opennet.ru

Kuongeza maoni