Git 2.39 මූලාශ්‍ර පාලන නිකුතුව

මාස දෙකක සංවර්ධනයෙන් පසුව, බෙදා හරින ලද මූලාශ්ර පාලන පද්ධතිය Git 2.39 නිකුත් කර ඇත. Git යනු අතු බෙදීම සහ ඒකාබද්ධ කිරීම මත පදනම්ව නම්‍යශීලී රේඛීය නොවන සංවර්ධන මෙවලම් සපයන වඩාත් ජනප්‍රිය, විශ්වාසනීය සහ ඉහළ ක්‍රියාකාරී අනුවාද පාලන පද්ධති වලින් එකකි. ඉතිහාසයේ අඛණ්ඩතාව සහ ප්‍රතික්‍රියාශීලී වෙනස්කම් වලට ඇති ප්‍රතිරෝධය සහතික කිරීම සඳහා, එක් එක් කැපවීමේදී සම්පූර්ණ පෙර ඉතිහාසයම ව්‍යංගයෙන් හෑෂ් කිරීම භාවිතා කරනු ලැබේ, එය සංවර්ධකයින්ගේ ඩිජිටල් අත්සන් සමඟ තනි ටැග් සහ කැපවීම් සහතික කිරීමට ද හැකිය.

පෙර නිකුතුව හා සසඳන විට, නව අනුවාදයේ වෙනස්කම් 483 ක් ඇතුළත් වූ අතර, සංවර්ධකයින් 86 දෙනෙකුගේ සහභාගීත්වයෙන් සකස් කරන ලද අතර, ඉන් 31 ක් පළමු වරට සංවර්ධනයට සහභාගී විය. ප්රධාන නවෝත්පාදන:

  • "git shortlog" විධානය, වෙනස්කම් ඉතිහාසයෙන් සංඛ්‍යාලේඛන සහිත සාරාංශ සංදර්ශනය කිරීමට නිර්මාණය කර ඇත, කර්තෘ හෝ කැපකරුට පමණක් සීමා නොවන ක්ෂේත්‍ර මගින් අත්තනෝමතික කැපවීම් සමූහගත කිරීම සඳහා "-group" විකල්පයක් එක් කර ඇත. උදාහරණයක් ලෙස, "Co-authored-by" ක්ෂේත්‍රයේ සඳහන් කර ඇති උපකාරකයින් සැලකිල්ලට ගනිමින් වෙනස්කම් ගණන පිළිබඳ තොරතුරු සහිත සංවර්ධකයින්ගේ ලැයිස්තුවක් ප්‍රදර්ශනය කිරීමට, ඔබට විධානය භාවිතා කළ හැකිය: git shortlog -ns --group=author - -group=ට්‍රේලරය:co-authored-by

    කෙටි සටහන ප්‍රතිදානය හැඩතල ගැන්වීමේ පිරිවිතර භාවිතයෙන් එකතු කළ හැකි අතර, “--group” විකල්පය මඟින් සංකීර්ණ වාර්තා නිර්මාණය කිරීම සැලකිය යුතු ලෙස සරල කළ හැකි අතර අමතර වර්ග කිරීමේ විධාන සඳහා අවශ්‍යතාවය ඉවත් කළ හැකිය. උදාහරණයක් ලෙස, එක් එක් මාසය තුළ දී ඇති නිකුතුවක් සඳහා කොපමණ කැපවීම් පිළිගෙන තිබේද යන්න පිළිබඳ තොරතුරු සහිත වාර්තාවක් සෑදීමට, ඔබට නියම කළ හැක: git shortlog v2.38.0.. —date='format:%Y-%m' —group=' %cd' -s 2 2022-08 47 2022-09 405 2022-10 194 2022-11 5 2022-12 මීට පෙර, සමාන මෙහෙයුමක් සිදු කිරීම සඳහා වර්ග කිරීම සහ අද්විතීය උපයෝගිතා භාවිතා කිරීම අවශ්‍ය වනු ඇත: git log v2.38.0. .. —date='ආකෘතිය:%Y -%m' —format='%cd' | වර්ග කිරීම | uniq -c

  • ගබඩාවේ සඳහන් කර නොමැති (ශාඛා හෝ ටැග් මගින් යොමු නොකෙරේ) ළඟා විය නොහැකි වස්තූන් ඇසුරුම් කිරීම සඳහා නිර්මාණය කර ඇති "cruft packs" යාන්ත්රණයේ හැකියාවන් පුළුල් කර ඇත. ළඟා විය නොහැකි වස්තූන් කසළ එකතු කරන්නා විසින් මකා දමනු ලැබේ, නමුත් ධාවන තත්ත්වයන් වළක්වා ගැනීම සඳහා ඒවා මකා දැමීමට පෙර නිශ්චිත කාලයක් ගබඩාවේ පවතී. “cruft packs” යාන්ත්‍රණය මඟින් ඔබට ළඟා විය නොහැකි සියලුම වස්තු එක් ඇසුරුම් ගොනුවක ගබඩා කිරීමටත්, එක් එක් වස්තුවේ වෙනස් කිරීමේ කාලය පිළිබඳ දත්ත වෙනම වගුවක ප්‍රදර්ශනය කිරීමටත්, “.mtimes” දිගුව සමඟ වෙනම ගොනුවක ගබඩා කිරීමටත් ඉඩ සලසයි. සම්පූර්ණ වෙනස් කිරීමේ කාලය සමඟ අතිච්ඡාදනය නොවේ.

    ළඟා විය නොහැකි වස්තූන් ඇත්ත වශයෙන්ම මකා දැමීමට පෙර ගබඩාවේ පවතින කාලය තීරණය කරනු ලබන්නේ “—prune=” විකල්පය මගිනි. " කෙසේ වෙතත්, මකාදැමීමට පෙර ප්‍රමාද කිරීම තරඟ තත්වයන් හේතුවෙන් ගබඩා දූෂණය වැළැක්වීම සඳහා තරමක් ඵලදායී හා ප්‍රායෝගික ක්‍රමයක් වන අතර එය 100% විශ්වාසදායක නොවේ. හානියට පත් ගබඩාවක් ප්‍රතිස්ථාපනය කිරීම පහසු කිරීම සඳහා, නව නිකුතුව මඟින් “git repack” විධානයට “--expire-to” විකල්පය එකතු කිරීමෙන් අතුරුදහන් වූ වස්තූන් සුරැකීමේ හැකියාව සපයයි, එමඟින් ඔබට බාහිර එකක් සෑදීමට ගොනුවක් නියම කිරීමට ඉඩ සලසයි. මකා දැමූ සියලුම වස්තූන්ගේ පිටපත. උදාහරණයක් ලෙස, backup.git ගොනුවේ පසුගිය මිනිත්තු 5 තුළ වෙනස් නොවූ ළඟා විය නොහැකි වස්තූන් සුරැකීමට, ඔබට විධානය භාවිතා කළ හැකිය: git repack --cruft --cruft-expiration=5.minutes.ago -d --expire -to=../backup.git

  • අර්ධ ක්ලෝනකරණය (විරල-පරීක්ෂා කිරීම) භාවිතා කරන සහ අර්ධ දර්ශක (විරල දර්ශක) ඇති ප්‍රදේශවල සෙවීමේදී "git grep -cached" මෙහෙයුමේ වේගය සැලකිය යුතු ලෙස වැඩි (70% දක්වා). මීට පෙර, “-හැඹිලිගත” විකල්පය සඳහන් කිරීමේදී, සෙවීම පළමුව සාමාන්‍ය දර්ශකයේ සිදු කරන ලද අතර පසුව අර්ධ වශයෙන් විශාල ගබඩාවල සෙවීමේදී සැලකිය යුතු ප්‍රමාදයන් ඇති විය.
  • "git push" මෙහෙයුමේදී ගබඩාවේ තැන්පත් කිරීමට පෙර නව වස්තුවල සහසම්බන්ධතාවය පිළිබඳ සේවාදායකයේ සත්‍යාපනය වේගවත් කර ඇත. තල්ලු කිරීමේ මෙහෙයුමෙන් ආවරණය වන්නේ 7% ක් පමණක් වන සබැඳි මිලියන 3 ක් සහිත පරීක්ෂණ ගබඩාවක පරීක්ෂා කිරීමේදී ප්‍රකාශිත සබැඳි සඳහා පමණක් ගිණුම්කරණයට මාරු වීමෙන්, සිදු කරන ලද ප්‍රශස්තිකරණය මඟින් පරීක්ෂා කිරීමේ කාලය 4.5 ගුණයකින් අඩු කිරීමට ඉඩ ලබා දේ.
  • කේතයේ විභව පූර්ණ සංඛ්‍යා පිටාර ගැලීම් වලින් ආරක්ෂා වීමට, "git apply" විධානය මඟින් සැකසිය හැකි උපරිම පැච් ප්‍රමාණය සීමා කරයි. පැච් ප්‍රමාණය 1 GB ඉක්මවන්නේ නම්, දැන් දෝෂයක් පෙන්වනු ඇත.
  • විය හැකි අවදානම් වලින් ආරක්ෂා වීමට, H2h3 මොඩියුලය GIT_TRACE_CURL=1 හෝ GIT_CURL_VERBOSE=1 විකල්පය HTTP/2 සමඟ භාවිතා කරන විට සකසා ඇති ශීර්ෂවලින් අනවශ්‍ය තොරතුරු පිරිසිදු කිරීමට වෙනස්කම් සිදු කර ඇත.
  • වෙනත් ශාඛාවකට සංකේතාත්මක සබැඳියක් වන ශාඛාවකින් පිරික්සීමක් සිදු කරන විට, "git symbolic-ref HEAD" විධානය දැන් symlink හි නමට වඩා ඉලක්ක ශාඛාවේ නම පෙන්වයි.
  • පෙර ශාඛාවක විස්තරය සංස්කරණය කිරීම සඳහා “--edit-description” විකල්පයට (“git branch —edit-description @{-1}”) @{-1} තර්කය සඳහා සහය එක් කරන ලදී.
  • සම්මත ආදානය හරහා පරාමිති ලැයිස්තුවක් සම්මත කිරීමට "git merge-tree --stdin" විධානය එක් කරන ලදී.
  • ජාල ගොනු පද්ධති වලදී, ගොනු පද්ධතියේ වෙනස්කම් නිරීක්ෂණය කරන fsmonitor හසුරුව පෙරනිමියෙන් අක්‍රීය කර ඇත.

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

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