GitHub හි සංරක්ෂිත චෙක්සම්වල වෙනස්වීම් හේතුවෙන් ගොඩනැගීමේ පද්ධතිවල අසාර්ථකවීම්

GitHub විසින් නිකුතු පිටු මත ස්වයංක්‍රීයව උත්පාදනය කරන ලද “.tar.gz” සහ “.tgz” ලේඛනාගාර උත්පාදනය කරන ආකාරය වෙනස් කරන ලද අතර, එමඟින් ඒවායේ චෙක්සම්වල වෙනස්වීම් සහ අඛණ්ඩතාව තහවුරු කිරීම සඳහා පෙර ඒවාට එරෙහිව GitHub වෙතින් බාගත කළ සංරක්ෂිත පරීක්ෂා කරන ස්වයංක්‍රීය ගොඩනැගීමේ පද්ධතිවල දැවැන්ත අසාර්ථකත්වයට හේතු විය. ගබඩා කර ඇති චෙක්සම්, උදාහරණයක් ලෙස, පැකේජ පාර-දත්ත තුළ හෝ තැනීමේ ස්ක්‍රිප්ට් වල තබා ඇත.

2.38 නිකුතුවෙන් පටන් ගෙන, Git මෙවලම් කට්ටලයට පෙරනිමියෙන් gzip ක්‍රියාත්මක කිරීම ඇතුළත් විය, එමඟින් මෙහෙයුම් පද්ධති හරහා මෙම සම්පීඩන ක්‍රමය සඳහා සහය ඒකාබද්ධ කිරීමට සහ සංරක්ෂිත නිර්මාණ කාර්ය සාධනය වැඩි දියුණු කිරීමට හැකි විය. GitHub එහි යටිතල ව්‍යුහයේ git අනුවාදය යාවත්කාලීන කිරීමෙන් පසුව වෙනස ලබා ගත්තේය. zlib මත පදනම් වූ gzip ක්‍රියාවට නැංවීම මගින් ජනනය කරන ලද සම්පීඩිත ලේඛනාගාර gzip උපයෝගීතාව විසින් නිර්මාණය කරන ලද ලේඛනාගාරවලට වඩා ද්විමය වෙනස් වීම නිසා ගැටළුව ඇති විය, එය ක්‍රියාත්මක කිරීමේදී විවිධ git අනුවාද මගින් නිර්මාණය කරන ලද සංරක්ෂිත සඳහා විවිධ චෙක්සම් ඇති විය. "git archive" විධානය.

ඒ අනුව, GitHub හි git යාවත්කාලීන කිරීමෙන් පසු, පැරණි චෙක්සම් භාවිතයෙන් සත්‍යාපනය සමත් නොවූ නිකුතු පිටුවල තරමක් වෙනස් ලේඛනාගාර ප්‍රදර්ශනය වීමට පටන් ගත්තේය. විවිධ ගොඩනැගීම් පද්ධති, අඛණ්ඩ ඒකාබද්ධතා පද්ධති සහ මූලාශ්‍ර කේතයෙන් පැකේජ තැනීමේ මෙවලම් තුළ ගැටලුව ප්‍රකාශ විය. උදාහරණයක් ලෙස, GitHub වෙතින් බාගත කර ඇති ප්‍රභව කේත වන FreeBSD ports 5800ක පමණ එකලස් කිරීම කැඩී ඇත.

දෝෂයන් පිළිබඳ මූලික පැමිණිලිවලට ප්‍රතිචාර වශයෙන්, GitHub මුලින් උපුටා දැක්වූයේ ලේඛනාගාර සඳහා ස්ථිර චෙක්සම් කිසිවිටෙක සහතික නොවූ බවය. බලපෑමට ලක් වූ ගොඩනැගීමේ පද්ධතිවල ක්‍රියාකාරිත්වය යථා තත්වයට පත් කිරීම සඳහා විවිධ පරිසර පද්ධතිවල පාර-දත්ත යාවත්කාලීන කිරීමට විශාල වැඩ ප්‍රමාණයක් අවශ්‍ය වනු ඇති බව පෙන්වූ පසු, GitHub නියෝජිතයන් ඔවුන්ගේ මනස වෙනස් කර, වෙනස ආපසු හරවා ලේඛනාගාර උත්පාදනය කිරීමේ පැරණි ක්‍රමය ආපසු ලබා දෙන ලදී.

Git සංවර්ධකයින් තවමත් තීරණයකට පැමිණ නැති අතර කළ හැකි ක්‍රියාමාර්ග ගැන පමණක් සාකච්ඡා කරමින් සිටී. පෙරනිමි gzip උපයෝගීතාව භාවිතා කිරීමට ප්‍රතිවර්තනය කිරීම ඇතුළුව සලකා බලන ලද විකල්ප; පැරණි ලේඛනාගාර සමඟ අනුකූලතාව පවත්වා ගැනීම සඳහා "--ස්ථාවර" ධජය එකතු කිරීම; බිල්ට් ක්‍රියාත්මක කිරීම වෙනම සංරක්ෂිත ආකෘතියකට සම්බන්ධ කිරීම; පැරණි කැපවීම් සඳහා gzip උපයෝගීතාව භාවිතා කිරීම සහ නියමිත දින සිට ආරම්භ වන කැපවීම් සඳහා පේළිගත ක්‍රියාත්මක කිරීම; සංකෝචනය නොකළ ලේඛනාගාර සඳහා පමණක් ආකෘති ස්ථාවරත්වය සහතික කිරීම.

බාහිර gzip වැඩසටහනේ වෙනසක් ද සංරක්ෂිත ආකෘතියේ වෙනසක් ඇති කළ හැකි බැවින්, බාහිර උපයෝගිතා සඳහා ඇමතුමක් වෙත ආපසු යාම චෙක්සම් වෙනස් නොවන බව පිළිබඳ ගැටළුව සම්පූර්ණයෙන්ම විසඳන්නේ නැති බව තීරණයක් ගැනීමේ දුෂ්කරතාවය පැහැදිලි කරයි. දැනට, පැරණි හැසිරීම පෙරනිමියෙන් ආපසු ලබා දෙන (බාහිර gzip උපයෝගිතා ඇමතීමෙන්) සහ පද්ධතියේ gzip උපයෝගීතාවයක් නොමැති විට ගොඩනඟන ලද ක්‍රියාත්මක කිරීම භාවිතා කරන පැච් කට්ටලයක් සමාලෝචනය සඳහා යෝජනා කර ඇත. "git archive" ප්‍රතිදානයේ ස්ථායීතාවය සහතික නොවන බව සහ අනාගතයේදී ආකෘතිය වෙනස් විය හැකි බවට සඳහනක් ද පැච් ලේඛනගත කිරීමට එක් කරයි.

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න